Github user vanzin commented on the issue:
https://github.com/apache/spark/pull/18004
> But for all the other listeners it works very well.
You can't make that statement. Listeners are a public API, and anyone can
install their own listeners, and they may not be aware of the damage they're
doing. It may very well be that internal listeners are mostly well behaved, but
at least separating user listeners from internal listeners is a worthy goal.
Also, the current UI listeners do synchronization. If someone makes a UI /
API request in the middle of an event storm, that will block the listener bus
and cause a lot of events to be lost. I've seen the stage page take several
seconds in the render code while holding that lock.
> For the EventLogListener I think that I have in this changelist a pretty
simple fix
I don't have an issue with adding code that makes it easy to write
asynchronous listeners, but I do have an issue that you've made that change
non-reusable. If instead you make that into an abstract class, or move the
logic to some place where other listeners can make use of it, that's a *much*
better change, and serves as a building block for fixing other issues with the
event bus.
(That's not saying your current implementation does not have problems, just
that regardless of it having problems, it should not live inside a single
listener implementation.)
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]