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]

Reply via email to