Skip to content

[To dev/1.3] [Fix] Guard stopped ConfigNode Pipe polling (#18913) - #18922

Merged
jt2594838 merged 1 commit into
apache:dev/1.3from
Caideyipi:cp/18913-dev-1.3
Oct 20, 2026
Merged

jt2594838 merged 1 commit into
apache:dev/1.3from
Caideyipi:cp/18913-dev-1.3

Conversation

@Caideyipi

Copy link
Copy Markdown
Collaborator

Description

Backport the ConfigNode fix from #18913 (4943c730d7aac7612b6a5c700625e94628a970cb) to dev/1.3.

When STOP PIPE finishes while a ConfigNode subtask is waiting in extractor.supply(), the subtask can still transfer the returned event. Check the stop flag before polling and again after polling returns. Retain the fetched event for restart, and release it without committing if the task was dropped during polling.

Adapt the regression tests to the 1.3 field names, extractor and outputPipeConnector.

Backport scope

The LOAD retention changes from #18913 do not apply to this branch. In dev/1.3, LoadTsFileDispatcherImpl sends pieces and terminal commands directly to every replica. The branch does not contain LoadTsFileConsensusNode, LoadTaskRetention, or LoadTsFileCleaner, or the staged-payload WAL references addressed by the original fix.

Validation

  • All three new regression tests fail against the original dev/1.3 implementation.
  • With the fix, PipeConfigNodeSubtaskTest and PipeConfigNodeSubtaskExecutorTest pass: 8 tests, no failures or errors. Dependencies, including Thrift sources, are built from this branch using the reactor.
  • Spotless, Checkstyle, and git diff --check pass.
mvn -B -nsu test -pl iotdb-core/confignode -am -Dtest=PipeConfigNodeSubtaskTest,PipeConfigNodeSubtaskExecutorTest -Dsurefire.failIfNoSpecifiedTests=false -DfailIfNoTests=false

This PR has:

  • been self-reviewed, including concurrent polling, stop, and close behavior.
  • added deterministic unit tests for stop, restart, and drop during polling.

Partially backport 4943c73.

Check the stop flag before and after polling, retain fetched events for
restart, and release events returned after the task is dropped. Adapt the
regression tests to the 1.3 extractor and outputPipeConnector fields.

The LOAD retention changes do not apply because 1.3 sends LOAD payloads
and terminal commands directly to all replicas instead of replicating
staged-payload references through the WAL.
@jt2594838
jt2594838 merged commit f90fc12 into apache:dev/1.3 Oct 20, 2026
15 of 16 checks passed
@jt2594838
jt2594838 deleted the cp/18913-dev-1.3 branch October 20, 2026 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants