sangkyoonnam opened a new issue, #1309: URL: https://github.com/apache/flink-agents/issues/1309
### Search before asking - [x] I searched in the [issues](https://github.com/apache/flink-agents/issues) and found nothing similar. ### Description When an Action trigger condition leaves an input without any matching Action, the next input already queued for the same key can stay unprocessed on continuation execution (JDK 21+) and on serial execution. Without a later input to restart processing for that key, `endInput()` can return while the queued input remains unprocessed. `processActionTaskForKey` handles an input with no Action tasks in its `actionTask == null` branch: it removes the processing key and returns. When an input finishes its Actions, `processActionTask` also starts the next pending input for that key; this branch doesn't. The parallel engine gives such inputs an internal no-op task, which retires through the normal finish path, so it isn't affected. The reproducer below uses CEL field filtering, added in #821; release-0.3 dispatches Actions by event type only, so this condition-based sequence doesn't apply there. The runtime fix adds four executable lines to start the next pending input, with a regression test for both affected engines. I'll file `max-in-flight-input-records` on JDK 21 separately, because that one changes how these engines admit inputs. This bug reproduces with the default configuration on JDK 21, and on JDK 17 when serial execution is selected (`parallel-execution.enabled: false` or a plan with Python Actions). cc @wenjin272 ### How to reproduce In `ActionExecutionOperatorTest`, with `parallel-execution.enabled: false` (serial execution on JDK 17; on JDK 21 the flag is ignored and continuation execution runs): 1. Register one Action with the trigger condition `type == EventType.InputEvent && input != 2` that emits one `OutputEvent` for each matching input. 2. Use a key selector that returns the same key for every input, then process inputs 1, 2 and 3 without draining the mailbox between inputs. 3. Call `endInput()` and `waitInFlightEventsFinished()`. Expected outputs for inputs 1 and 3; actual output only for input 1. ### Version and environment flink-agents main at `60bf8cd0`, on Corretto 17.0.14 (serial execution) and Corretto 21.0.11 (continuation execution), macOS 15.3.1 on Apple M4. I've reproduced this sequence only in the operator test harness. ### Are you willing to submit a PR? - [x] I'm willing to submit a PR! -- 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]
