Matthias J. Sax created KAFKA-18498:
---------------------------------------
Summary: Kafka Streams main thread does not release lock
Key: KAFKA-18498
URL: https://issues.apache.org/jira/browse/KAFKA-18498
Project: Kafka
Issue Type: Bug
Components: streams
Reporter: Matthias J. Sax
We merged [https://github.com/apache/kafka/pull/16922] which seems to introduce
a regression bug, not releasing a lock properly.
We saw a failing system test (timed out) with the following (relevant logs)
{code:java}
[2024-12-19 02:45:29,637] DEBUG stream-thread [main] standby-task [1_0]
Acquired state directory lock
(org.apache.kafka.streams.processor.internals.StandbyTask)
[2024-12-19 02:45:29,655] INFO Opening store
KSTREAM-AGGREGATE-STATE-STORE-0000000014 in regular mode
(org.apache.kafka.streams.state.internals.RocksDBTimestampedStore)
[2024-12-19 02:45:29,656] DEBUG [RocksDB Metrics Recorder for
KSTREAM-AGGREGATE-STATE-STORE-0000000014] Adding metrics recorder of task 1_0
to metrics recording trigger
(org.apache.kafka.streams.state.internals.metrics.RocksDBMetricsRecorder)
[2024-12-19 02:45:29,656] DEBUG [RocksDB Metrics Recorder for
KSTREAM-AGGREGATE-STATE-STORE-0000000014] Adding value providers for store
KSTREAM-AGGREGATE-STATE-STORE-0000000014 of task 1_0
(org.apache.kafka.streams.state.internals.metrics.RocksDBMetricsRecorder)
[2024-12-19 02:45:29,656] DEBUG stream-client
[EosTest-6cef0eeb-642f-446b-ada7-35c3d7f7121c] Registered state store
KSTREAM-AGGREGATE-STATE-STORE-0000000014 to its state manager
(org.apache.kafka.streams.processor.internals.ProcessorStateManager)
[2024-12-19 02:45:29,675] INFO Opening store
KSTREAM-AGGREGATE-STATE-STORE-0000000018 in regular mode
(org.apache.kafka.streams.state.internals.RocksDBTimestampedStore)
[2024-12-19 02:45:29,675] DEBUG [RocksDB Metrics Recorder for
KSTREAM-AGGREGATE-STATE-STORE-0000000018] Adding metrics recorder of task 1_0
to metrics recording trigger
(org.apache.kafka.streams.state.internals.metrics.RocksDBMetricsRecorder)
[2024-12-19 02:45:29,675] DEBUG [RocksDB Metrics Recorder for
KSTREAM-AGGREGATE-STATE-STORE-0000000018] Adding value providers for store
KSTREAM-AGGREGATE-STATE-STORE-0000000018 of task 1_0
(org.apache.kafka.streams.state.internals.metrics.RocksDBMetricsRecorder)
[2024-12-19 02:45:29,676] DEBUG stream-client
[EosTest-6cef0eeb-642f-446b-ada7-35c3d7f7121c] Registered state store
KSTREAM-AGGREGATE-STATE-STORE-0000000018 to its state manager
(org.apache.kafka.streams.processor.internals.ProcessorStateManager)
[2024-12-19 02:45:29,676] DEBUG stream-thread [main] standby-task [1_0]
Registered state stores
(org.apache.kafka.streams.processor.internals.StandbyTask)
[2024-12-19 02:45:29,676] INFO stream-client
[EosTest-6cef0eeb-642f-446b-ada7-35c3d7f7121c] State store
KSTREAM-AGGREGATE-STATE-STORE-0000000014 initialized from checkpoint with
offset null at changelog
EosTest-KSTREAM-AGGREGATE-STATE-STORE-0000000014-changelog-0
(org.apache.kafka.streams.processor.internals.ProcessorStateManager)
[2024-12-19 02:45:29,676] INFO stream-client
[EosTest-6cef0eeb-642f-446b-ada7-35c3d7f7121c] State store
KSTREAM-AGGREGATE-STATE-STORE-0000000018 initialized from checkpoint with
offset null at changelog
EosTest-KSTREAM-AGGREGATE-STATE-STORE-0000000018-changelog-0
(org.apache.kafka.streams.processor.internals.ProcessorStateManager)
[2024-12-19 02:45:29,676] DEBUG stream-thread [main] standby-task [1_0]
Initialized state stores
(org.apache.kafka.streams.processor.internals.StandbyTask)
[2024-12-19 02:45:29,676] INFO stream-thread [main] standby-task [1_0]
Initialized (org.apache.kafka.streams.processor.internals.StandbyTask)
[...]
[2024-12-19 02:45:32,328] INFO stream-thread [main] standby-task [1_0]
Suspended running (org.apache.kafka.streams.processor.internals.StandbyTask)
[2024-12-19 02:45:32,328] ERROR stream-thread [main] standby-task [1_0] Failed
to acquire lock while closing the state store for STANDBY task 1_0
(org.apache.kafka.streams.processor.internals.StandbyTask)
[2024-12-19 02:45:32,328] INFO stream-thread [main] standby-task [1_0] Closed
clean (org.apache.kafka.streams.processor.internals.StandbyTask)
[...]
[2024-12-19 02:45:32,374] INFO stream-thread
[EosTest-6cef0eeb-642f-446b-ada7-35c3d7f7121c-StreamThread-1] Handle new
assignment with:
New active tasks: [1_0, 1_3, 0_2]
New standby tasks: [0_4, 1_4, 0_3, 0_1, 1_2, 1_1, 0_0]
Existing active tasks: []
Existing standby tasks: [0_4, 1_4, 0_3, 0_1, 1_2, 0_0, 1_1]
(org.apache.kafka.streams.processor.internals.TaskManager)
[2024-12-19 02:45:32,376] DEBUG stream-thread
[EosTest-6cef0eeb-642f-446b-ada7-35c3d7f7121c-StreamThread-1] stream-task [1_0]
Created state store manager for task 1_0
(org.apache.kafka.streams.processor.internals.ProcessorStateManager)
[...]
[2024-12-19 02:45:32,562] INFO stream-thread
[EosTest-6cef0eeb-642f-446b-ada7-35c3d7f7121c-StreamThread-1] Encountered lock
exception. Reattempting locking the state in the next iteration. Error message
was: stream-thread
[EosTest-6cef0eeb-642f-446b-ada7-35c3d7f7121c-StreamThread-1] task [1_0] Failed
to lock the state directory for task 1_0
(org.apache.kafka.streams.processor.internals.TaskManager) {code}
The last log line keeps repeating...
I am going to revert the PR for 4.0 release, and we should fix forward on
`trunk`.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)