Jess Jin created KAFKA-20902:
--------------------------------

             Summary: Streams metered stores: oldest-iterator-open-since-ms can 
be wrong when two iterators open in the same millisecond
                 Key: KAFKA-20902
                 URL: https://issues.apache.org/jira/browse/KAFKA-20902
             Project: Kafka
          Issue Type: Bug
          Components: streams
            Reporter: Jess Jin


{{openIterators}} is a {{ConcurrentSkipListSet}} keyed only by 
{{startTimestamp()}} (ms resolution). Two iterators opened in the same 
millisecond compare equal, so the second {{add()}} is a silent no-op and a 
{{remove()}} on close can evict the still-open one — the 
{{oldest-iterator-open-since-ms}} gauge then under-reports (may skip a 
still-open iterator or return 0). {{num-open-iterators}} is unaffected 
(separate {{LongAdder}}); iterators still close correctly, so it's a 
metric-accuracy issue, not a leak. Affects all metered store wrappers. *Fix:* 
make the comparator total (tie-break on a per-iterator sequence id). Found in 
PR [#22975|https://github.com/apache/kafka/pull/22975] review 
[{{r3730260330}}|https://github.com/apache/kafka/pull/22975#discussion_r3730260330].



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to