forked from WebKit/WebKit-http
-
Notifications
You must be signed in to change notification settings - Fork 143
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
Webprocess is hanged (Deadlock) in parkConditionallyImpl #430
Comments
zdobersek
added a commit
to WebPlatformForEmbedded/WPEBackend-rdk
that referenced
this issue
Jan 16, 2018
In order to avoid potential lockups in handling Wayland protocol event dispatching, adopt the same procedures that are used in src/wayland/display.cpp. EventSource callbacks are enhanced: - prepare() now dispatches pending events as long as there are prepared events being provided, - check() returns TRUE if new events can in fact be read, - dispatch() only dispatches the pending events. This is a speculative fix that attempts to address lockups that are reported in issue #430 of the WPEWebKit repository. WebPlatformForEmbedded/WPEWebKit#430
zdobersek
added a commit
to WebPlatformForEmbedded/WPEBackend-rdk
that referenced
this issue
Jan 16, 2018
In order to avoid potential lockups in handling Wayland protocol event dispatching, adopt the same procedures that are used in src/wayland/display.cpp. EventSource callbacks are enhanced: - prepare() now dispatches pending events as long as there are prepared events being provided, - check() returns TRUE if new events can in fact be read, - dispatch() only dispatches the pending events. This is a speculative fix that attempts to address lockups that are reported in issue #430 of the WPEWebKit repository. WebPlatformForEmbedded/WPEWebKit#430
zdobersek
added a commit
to WebPlatformForEmbedded/WPEBackend-rdk
that referenced
this issue
Feb 1, 2018
In order to avoid potential lockups in handling Wayland protocol event dispatching, adopt the same procedures that are used in src/wayland/display.cpp. EventSource callbacks are enhanced: - prepare() now dispatches pending events as long as there are prepared events being provided, - check() returns TRUE if new events can in fact be read, - dispatch() only dispatches the pending events. Previous code was prone to race conditions that occur while reading from wl_display and dispatching those read events. Here we do this by leveraging the default dispatch queue, but other components (e.g. the graphics drivers or Westeros) are utilizing the same Wayland display connection through different dispatch queues on other threads. Previous code was thus prone to thread lockups, while these changes take up the approach already utilized by other Wayland backends via Wayland::EventSource::sourceFuncs (src/wayland/display.cpp). More detail on this issue and the appropriate approach is described in the Wayland documentation: https://wayland.freedesktop.org/docs/html/apb.html#Client-classwl__display This attempts to address lockups that are reported in issue #430 of the WPEWebKit repository. WebPlatformForEmbedded/WPEWebKit#430
@nambirajang is this issue still valid with the wpe-2017 branch, if so can you supply a bit more details so we can reopen if needed. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
We are seeing WebProcess hang in stable WPE version.
This hang is because of deadlock in parkConditionallyImpl.
The text was updated successfully, but these errors were encountered: