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

   ## Description
   
   ### Problem
   
   IoTDBNonDataRegionSource assumed every non-minimum task progress was a 
MetaProgressIndex. Pipe task progress can also be merged into a 
HybridProgressIndex, and may be wrapped by a StateProgressIndex. This caused a 
ClassCastException while restoring a non-data-region source or calculating its 
remaining events during DataNode shutdown.
   
   ### Changes
   
   - Extract the meta progress component from direct, hybrid, and state-wrapped 
progress indexes.
   - Use that component for source recovery and remaining-event accounting.
   - Conservatively fall back to snapshot recovery or full queue size when no 
meta component exists.
   - Add unit coverage for hybrid, state-wrapped hybrid, and 
hybrid-without-meta cases.
   
   ### Verification
   
   - mvn spotless:apply -pl iotdb-core/node-commons
   - mvn test -pl iotdb-core/node-commons -Dtest=IoTDBNonDataRegionSourceTest
   
   <hr>
   
   This PR has:
   - [x] been self-reviewed.
   - [x] added unit tests to cover new code paths.
   
   <hr>
   
   ##### Key changed/added classes
   
   - IoTDBNonDataRegionSource
   - IoTDBNonDataRegionSourceTest


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