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]

Reply via email to