det101 commented on PR #18358:
URL: 
https://github.com/apache/dolphinscheduler/pull/18358#issuecomment-4785599810

   > This still does not fully replace the old Watcher.onClose failure path. In 
Fabric8 6.0, SharedIndexInformer.start() completes from 
Reflector.listSyncAndWatch(), but Reflector does not compose the watch future 
returned by startWatcher(); later non-HttpGone watch closures only set 
running=false and do not complete this start future exceptionally. For 
non-timeout tasks, awaitJobCompletion() can therefore block forever instead of 
failing the task as the old onClose(WatcherException) did. We need an explicit 
monitor/failure path for informer/watch stopping, or another way to count down 
the latch when the informer can no longer observe the Job.
   
   Hi, to address the concern that awaitJobCompletion() may block forever when 
the informer stops observing the Job in Fabric8 6.0, my approach is:
   
   Primary: SharedIndexInformer handles ADD/UPDATE/DELETE.
   Safety net: poll Job status via GET every 30s; count down the latch on 
terminal state or Job deletion if informer events are missed.
   We intentionally do not fail on isWatching()==false to avoid false failures 
during relist gaps or while the Job is still running. Task timeout remains the 
final fallback.
   
   Does this approach work for you?


-- 
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]

Reply via email to