Doris-Breakwater commented on issue #69085: URL: https://github.com/apache/doris/issues/69085#issuecomment-6179962952
Breakwater-GitHub-Analysis-Slot: slot_ce2522762e32 Additional validation of the namespace decoding defect and the separate metadata-loading failure path: ### Source and executable validation I verified the public `4.1.4.1` tag resolves to commit `5dbec55b399c2c4323f565bb2c6745cacb574416` (the tag object is `d2ffc9bcfa363287e4949829f4b8a2ee674149f7`), and inspected master at `2137067cccd3d647ffa36e6363e2365856864838`. A standalone Java probe executing the extracted schema encoder/decoder methods from **both** snapshots reproduced these results: | Full-name setting | Raw database | Emitted schema | Database lookup | | --- | --- | --- | --- | | OFF | `reporting` | `reporting` | `reporting` | | OFF | `gold.reporting` | `gold.reporting` | `reporting` | | ON | `gold.reporting` | `cat.gold.reporting` | `cat.gold.reporting` | This confirms a broken round trip in the shared external-schema decoder. It explains the reported missing-`reporting` warning and why the full-name setting does not fix the lookup. A three-level raw namespace round-trips with the setting OFF, but fails with it ON; regression coverage needs both namespace depth and presentation mode. Source: [release encoder/decoder](https://github.com/apache/doris/blob/5dbec55b399c2c4323f565bb2c6745cacb574416/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java#L568-L587), [master encoder/decoder](https://github.com/apache/doris/blob/2137067cccd3d647ffa36e6363e2365856864838/fe/fe-core/src/main/java/org/apache/doris/catalog/InfoSchemaDb.java#L39-L58). The paths require a shared fix: `tables` uses `listTableStatus`; `columns` uses `getTableNames` and then `describeTables`, both of which also decode the schema. `SHOW TABLE STATUS` queries `information_schema.tables`. Plain `SHOW TABLES` resolves the raw database directly. Thus a change limited to `listTableStatus` would leave column discovery broken. See [FE metadata RPCs](https://github.com/apache/doris/blob/5dbec55b399c2c4323f565bb2c6745cacb574416/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java#L589-L796), [column description](https://github.com/apache/doris/blob/5dbec55b399c2c4323f565bb2c6745cacb574416/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java#L942-L1026). ### Separate failure isolation concern The status loop calls Iceberg `getComment()` unconditionally, which obtains properties through remote table/view metadata loading. Its outer exception handler stops subsequent enumeration, but **keeps rows already appended**. Zero rows are possible when the first processed table fails; later failures produce partial results. Separately, table-list acquisition can become an empty list through `getTablesIgnoreException()`. The specific remote failure remains unverified without its exception chain. Source: [status loop](https://github.com/apache/doris/blob/5dbec55b399c2c4323f565bb2c6745cacb574416/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java#L690-L796), [Iceberg properties loading](https://github.com/apache/doris/blob/5dbec55b399c2c4323f565bb2c6745cacb574416/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java#L432-L445). ### Maintainer next steps and remaining evidence - Preserve raw database identity independently of displayed schema qualification; audit all decoder callers, including `listTableMetadataNameIds`, and SHOW-generated schema filters. Counting dots cannot distinguish catalog qualification from namespace components. - Test single-level and nested namespaces with the setting OFF/ON, internal catalogs, dotted catalog names, catalog-prefix collisions, and root/restricted users. Include **both `reporting` and `gold.reporting`** to detect silent resolution to a different database, not only empty results. - Isolate individual metadata failures while preserving privilege checks, lock release, healthy rows, and useful diagnostics. Define whether unavailable optional metadata yields a fallback row or skips that table. Test a failing table before and after a healthy table, separately from table-list acquisition failure. - For end-to-end confirmation, provide exact FE/BE build commits, sanitized catalog DDL/effective properties (especially `iceberg.rest.nested-namespace-enabled` and name mappings), and timestamp-correlated SQL outputs/FE logs under each full-name setting. For the unreadable-table case, provide a minimal healthy-plus-failing-table reproduction and the complete exception chain identifying the failing REST/storage operation. The probe verifies conversion behavior; a running Doris/Nessie reproduction has not been performed. Plain `SHOW TABLES`, already reported to work, remains an interim enumeration path. No Doris repository source files were modified. Suggested routing remains FE information-schema/external-catalog metadata; the issue is currently unlabeled. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
