# FE Core Module — Review Guide ## Locking - [ ] Metadata-locking paths avoid RPC, external IO, and journal waits while holding catalog/database/table locks? - [ ] Multiple tables locked in ID-sorted order? - [ ] Existing `tryLock(timeout)` patterns preserved, not replaced with unbounded blocking? - [ ] No database/catalog locks taken inside broad `synchronized` blocks or async callbacks? - [ ] Shared `Map`/`List` traversals protected by locking, snapshots, or concurrent containers against `ConcurrentModificationException`? ## Exceptions - [ ] FE-common `AnalysisException` (checked) vs Nereids' `AnalysisException` (unchecked) distinguished correctly? - [ ] User-visible errors use `ErrorReport`/`ErrorCode` with custom codes starting at 5000? - [ ] RPC boundaries convert to `TStatusCode`/`PStatus`, not leaking Java exceptions? ## Visible Version - [ ] `OlapTable.getVisibleVersion()` respects cloud/non-cloud split: local in shared-nothing, RPC+TTL cache in cloud? - [ ] Cloud `VERSION_NOT_FOUND` normalized to `PARTITION_INIT_VERSION` — "missing" and version 1 intentionally indistinguishable?