abdessalems commented on PR #11727:
URL: https://github.com/apache/seatunnel/pull/11727#issuecomment-5691955264
@SEZ9 — all three, checked against the diff rather than from memory:
1. F2 — confirmed. TaskExecutionService.java:1294:
ClassLoader taskClassLoader =
taskGroupExecutionTracker.context.getClassLoaders().get(t.getTaskID());
That field is @NonNull and pinned in the tracker's constructor, so a
reused
TaskGroupLocation cannot hand this worker another generation's loader. The
shared-map lookup that used to sit before the try block is gone, and with
it
the null-context branch.
2. F7 (reflection) — I couldn't find a non-reflective seam that still races
the
deployment: the map is private, and the public surface (deployTask,
cancelTaskGroup) only removes an entry as part of tearing the task group
down,
which would stop the deploy rather than race it. A package-private
accessor
would widen the production API for test-only visibility, which is what you
ruled against earlier. So I've kept the reflection and added a Javadoc on
executionContextsOf() explaining exactly that — pushed in 2dc214681.
3. F4 / F6 / F8 — not touched by this diff. grep over the diff gives zero
occurrences of finishExecutionContext, finishOwnedResources,
synchronized (TaskExecutionService.this) and
cancelOwnedAsyncFunctionsInPlace.
The whole diff is three hunks: one import removal, and two inside
BlockingWorker.run(). So those belong with F1/F3/F5 against dev.
--
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]