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

   ## Problem
   
   `show configuration` (table model) renders 
`ConfigurationFileUtils.lastAppliedProperties`, which is populated from the 
**raw config-file values**. Several hot-reloaded parameters have setters that 
rewrite the loaded value before it takes effect, so their displayed value 
diverged from the effective in-memory value:
   
   - `if (x > 0) setX(x)` skips non-positive values → keeps the default, but 
the display still showed the raw `0` / negative file value
   - `loadFixedSizeLimitForQuery` rewrites `<=0` to a computed default → the 
display still showed `0`
   
   This affects only the display layer, not actual behavior (the effective 
value is always correct in memory).
   
   Affected keys:
   
   | key | rewrite on load |
   |:---|:---|
   | `cte_buffer_size_in_bytes` | `>0` guard |
   | `max_rows_in_cte_buffer` | `>0` guard |
   | `max_sub_task_num_for_information_table_scan` | `>0` guard |
   | `sort_buffer_size_in_bytes` | `<=0` → computed default (template default 
is `0`, so it was **always** misdisplayed) |
   | `mods_cache_size_limit_per_fi_in_bytes` | `<=0` → computed default 
(template default is `0`, so it was **always** misdisplayed) |
   
   ## Fix
   
   Add `IoTDBDescriptor.overlayEffectiveConfigurationValues()`: after the 
setters run, overwrite those keys in `lastAppliedProperties` with the 
post-setter effective value (`conf.getX()` / `commonConfig.getX()`). It is 
invoked in both load paths — `loadProperties` (startup) and 
`loadHotModifiedProps` (hot-reload) — so both local `show configuration` and 
`show configuration node <id>` (remote, which reads each node's own map over 
RPC) stay correct.
   
   This is a load-side fix rather than a display-side getter map because 
remote-node display can only be corrected by fixing each node's stored 
`lastAppliedProperties`.
   
   ## Test
   
   Added 
`IoTDBLoadConfigurationTableIT#showConfigurationDisplaysEffectiveValue`:
   - non-positive guard params (`=0` / `=-1`) → display the effective defaults 
(`131072` / `1000` / `4`)
   - a valid value (`=262144`) → displayed unchanged (no false rewrite)
   - `<=0` params (template default `0`) → display a positive computed default, 
not `0`
   
   Verified: passes with the fix; without the fix the first assertion fails 
with `expected:<[131072]> but was:<[0]>` (so the test is non-vacuous and 
actually catches the bug).
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


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