KKcorps commented on PR #19632: URL: https://github.com/apache/pinot/pull/19632#issuecomment-5795582748
One possible approach for the earlier-offset case in [my comment](https://github.com/apache/pinot/pull/19632#discussion_r4079166764) is to keep the gauge removal after a successful `goOnlineFromConsuming()` and additionally require `_currentOffset.compareTo(committedEndOffset) == 0` alongside `_endOfPartitionGroup`. Here, `committedEndOffset` is parsed from `segmentZKMetadata.getEndOffset()` using the stream offset factory. For example, a replica could observe EOF at offset 200 while the winning segment commits at 150. Downloading the winning segment leaves the local EOF flag true, but the successor still needs to consume the remaining records. The offset check would skip the new EOF removal in this case. Could we add a regression test for that mismatch, alongside the matching-EOF and failed-ONLINE-transition cases? This approach addresses the earlier-offset case specifically. Existing late `set(0)`/offload races remain, and matching offsets alone do not establish gauge ownership if the controller creates a successor after an inconclusive EOF probe. -- 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]
