-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug][AbstractDelayEventBus] TaskRetryLifecycleEvent block other events #16976
Comments
cc @ruanwenjun |
It's great if we can move |
@ruanwenjun
and i just found the main reason is here !!: Lines 62 to 64 in 352b47b
AbstractDelayEvent use createTimeInNano to compare other event, DelayQueue will sort the events using createTimeInNano, so the retry event was first put in queue, DelayQueue will take retry event first. if i change the compared value |
Yeah, I would prefer to do it in two steps, first prioritize fixing the existing issues. then refactor the code later. how about that? |
LGTM, I create two sub issue and assigned to you. |
This is a bug 👍 . If the event is not expired then should use |
it seems only affect to new element in offer(), if event is expired, new event will also append to the end of expired event,i think use expired time to compare is still working. |
Search before asking
Description
a long time blocking will make the master server unresponsive.
so i'm thinking, how about adding a dedicated queue for delayed events?
or use PriorityBlockingQueue and manual implement DelayQueue's logic like
org.apache.dolphinscheduler.server.master.runner.queue.PriorityDelayQueue
?Are you willing to submit a PR?
Code of Conduct
The text was updated successfully, but these errors were encountered: