You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There seems to be a problem with synchronization between the two entities. UI + PushConnection and locked by the VaadinSession lock, while PushHandler + Atmosphere are synchronized the way Atmosphere synchronizes. Set up this way, there is no way for PushHandler to immediately update the connection status when it changes and consequently the UI code can't react according to the current status.
With the initial fix for #15330 (vaadin/vaadin@3c07368) which tries to ensure all events are triggered in the correct order for long polling, this problem becomes obvious. The UI in https://dev.vaadin.com/review/7599 which does two push() calls in the same access block causes assertion errors because the state updates for PushConnection are not the expected
This should not be a huge issue as the "connected" state is used only to know that the connection might be available, and Atmosphere does the actual connection tracking.
This causes #6943 and is an issue because servers tend to lock the WebSocket connection when processing a message. This can lead to a deadlock where one thread has the VaadinSession lock and tries to disconnect the websocket connection and another thread has the websocket connection lock and tries to get the VaadinSession lock to be able to update the connection state
Originally by @Artur-
Today there are two entities regarding push
There seems to be a problem with synchronization between the two entities. UI + PushConnection and locked by the VaadinSession lock, while PushHandler + Atmosphere are synchronized the way Atmosphere synchronizes. Set up this way, there is no way for PushHandler to immediately update the connection status when it changes and consequently the UI code can't react according to the current status.
With the initial fix for #15330 (vaadin/vaadin@3c07368) which tries to ensure all events are triggered in the correct order for long polling, this problem becomes obvious. The UI in https://dev.vaadin.com/review/7599 which does two push() calls in the same access block causes assertion errors because the state updates for PushConnection are not the expected
but instead
Imported from https://dev.vaadin.com/ issue #16919
The text was updated successfully, but these errors were encountered: