Skip to content
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

x11: shutdown deadlock when X window closed #3032

Open
Saviq opened this issue Sep 1, 2023 · 2 comments
Open

x11: shutdown deadlock when X window closed #3032

Saviq opened this issue Sep 1, 2023 · 2 comments

Comments

@Saviq
Copy link
Collaborator

Saviq commented Sep 1, 2023

This may well be a separate shutdown issue that just gets surfaced through this fix.

Here's another deadlock I've found - just close (×, or Alt+F4) the X window when GLMark2 is running.

$ ./bin/mir_performance_tests --gtest_filter=Hosted*
LD_LIBRARY_PATH=./build-Debug/bin/../lib/
MIR_SERVER_PLATFORM_PATH=./build-Debug/bin/../lib/server-modules/
exec=./build-Debug/bin/mir_performance_tests.bin
Running main() from main.cpp
Note: Google Test filter = Hosted*
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from HostedGLMark2Wayland
[ RUN      ] HostedGLMark2Wayland.fullscreen
Saving host output to: /tmp/HostedGLMark2Wayland_fullscreen_host.log
Saving server logs to: /tmp/HostedGLMark2Wayland_fullscreen_server.log
Saving GLMark2 detailed results to: /tmp/HostedGLMark2Wayland_fullscreen.log
^C
[1]    335565 killed     ./build-Debug/bin/mir_performance_tests --gtest_filter=Hosted*

Originally posted by @Saviq in #3030 (comment)

@AlanGriffiths
Copy link
Collaborator

AlanGriffiths commented Sep 1, 2023

I don't think the log with ^c matches the description "close (×, or Alt+F4) the X window"?

The log I get from closing the X window is:

$ cmake-build-release/bin/mir_performance_tests --gtest_filter=Hosted*
LD_LIBRARY_PATH=cmake-build-release/bin/../lib/
MIR_SERVER_PLATFORM_PATH=cmake-build-release/bin/../lib/server-modules/
exec=cmake-build-release/bin/mir_performance_tests.bin
Running main() from main.cpp
Note: Google Test filter = Hosted*
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from HostedGLMark2Wayland
[ RUN      ] HostedGLMark2Wayland.fullscreen
Saving host output to: /tmp/HostedGLMark2Wayland_fullscreen_host.log
Saving server logs to: /tmp/HostedGLMark2Wayland_fullscreen_server.log
Saving GLMark2 detailed results to: /tmp/HostedGLMark2Wayland_fullscreen.log
Mir fatal error: Critical error in Wayland platform: /home/alan/CLionProjects/mir/src/platforms/wayland/display.cpp(290): Throw in function void mir::graphics::wayland::Display::run()
Dynamic exception type: boost::wrapexcept<std::system_error>
std::exception::what: Failed to read Wayland events: Broken pipe


!!! Fatal signal received. Attempting cleanup, but deadlock may occur
Mir fatal error: Unsupported attempt to continue after a fatal signal: SIGABRT
Aborted (core dumped)

Which is less tidy than it should be, but not a deadlock

@Saviq
Copy link
Collaborator Author

Saviq commented Sep 1, 2023

The ^C was after the Alt+F4, and the deadlock.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants
@Saviq @AlanGriffiths and others