Caideyipi opened a new pull request, #18307:
URL: https://github.com/apache/iotdb/pull/18307

   ## Description
   
   A tree-model TsFile may contain a segmented device ID with an empty path 
node, for example `root.` represented as `["root", ""]`. LOAD previously copied 
those segments into a `PartialPath` without structural validation and could 
auto-create an invalid `root.` database. Once persisted, later LOAD operations 
failed while parsing the existing database list.
   
   This PR:
   
   - rejects null or empty device path nodes before LOAD contacts ConfigNode or 
derives a database path;
   - adds a defense-in-depth check in `ConfigMTree#setStorageGroup` so invalid 
segmented paths cannot be persisted through another caller;
   - adds regression tests for both the LOAD preflight and ConfigNode 
metadata-tree guard.
   
   ## Tests
   
   - `mvn spotless:apply -pl iotdb-core/datanode,iotdb-core/confignode`
   - `mvn -pl iotdb-core/confignode -Dtest=ConfigMTreeTest test` (15 tests 
passed)
   - `LoadTsFileAnalyzerTest` compiled against the current module dependencies 
and run with JUnitCore (6 tests passed). The normal DataNode Maven lifecycle is 
currently blocked locally by unrelated stale generated Freemarker sources and 
SNAPSHOT dependency mismatches.
   
   This PR has:
   - [x] been self-reviewed.
   - [x] added unit tests to cover the new code paths.
   
   ##### Key changed/added classes
   
   - `TreeSchemaAutoCreatorAndVerifier`
   - `ConfigMTree`
   


-- 
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]

Reply via email to