gmc-holle / xfdashboard

Maybe a Gnome shell like dashboard for Xfce
GNU General Public License v2.0
120 stars 14 forks source link

crashes on 2bwm #196

Open vredesbyyrd opened 3 years ago

vredesbyyrd commented 3 years ago

Hi,

This tool looks great. I am using 2bwm + arch and unfortunately XFdashboard segfaults when trying to run it. It brings down the wm dropping me back to tty. I initially assumed XFdashboard was only compatible with xfce but looking through the issues I see people using it with various wm, so figured I would give it a go.

I read through the doc and am unsure about debugging, so I just ran a strace, its long:

strace -o xfdashboard.log xfdashboard

strace

If you have any ideas I would love to hear them. Thanks.

EDIT: clutter = 1.26.4-1

Anything that could be helpful for debugging this please let me know.

vredesbyyrd commented 3 years ago

By starting my window manager differently I was at least able to keep x from completely crashing. xfdashboard will run once, but the wm prevents the window from going fullscreen. I can see the window previews and animations working properly. But trying to run a second time it will not start:

The program 'xfdashboard' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 373 error_code 3 request_code 20 (core protocol) minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it. 
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)

I tried setting GDK_SYNCHRONIZE=1 but did not receive any different output.

Lastly, I assume this is a window manager problem not a xfdashboard problem. I'm just posting this here for input. If anyone has seen something similar or has ideas on how to get actionable debug output I am all ears. Thanks for your time!

gmc-holle commented 3 years ago

Hi,

thanks for testing xfdashboard with our preferred window manager although it does not work :( It is known that xfdashboard works with other window managers but not all and is only tested against Xfce's default window manager xfwm4.

Sadly an strace will not help here. If you could run xfdashboard with gdb (the GNU debugger) and copy the backtrace at the moment it crashes, there might be a little chance to see what may go wrong.

To run xfdashboard in gdb:

$ gdb -ex run --args /path/to/xfdashboard
[wait for xfdashboard to crash]
(gdb) bt
[copy the output to this issue]
(gdb) quit

I hope I can help then.

Regards, Stephan

vredesbyyrd commented 3 years ago

Hi, thanks for info!

First, just for some context, I am avoiding the crash from dropping me into to tty by following these directions in the 2bwm doc.

To prevent X to crash you can start the X session over your favorite terminal emulator. Here's an example of a .xinitrc file that will do that:

2bwm &
exec xterm

On the first run of xfdashboard things appear go alright:

Reading symbols from /usr/bin/xfdashboard...
(No debugging symbols found in /usr/bin/xfdashboard)
Starting program: /usr/bin/xfdashboard 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff329d640 (LWP 120657)]
[New Thread 0x7ffff2a9c640 (LWP 120658)]
[New Thread 0x7fffebe4e640 (LWP 120663)]
[New Thread 0x7fffeb63d640 (LWP 120664)]
[Thread 0x7fffeb63d640 (LWP 120664) exited]
[New Thread 0x7fffeb63d640 (LWP 120665)]
** Use environment variable XFDASHBOARD_DEBUG to enable debug messages
** To get a list of debug categories set XFDASHBOARD_DEBUG=help

(xfdashboard:120653): xfdashboard-WARNING **: 14:02:12.664: Failed to connect to session manager: Failed to connect to the session manager: SESSION_MANAGER environment variable not defined
** Use environment variable XFDASHBOARD_DEBUG to enable debug messages
** To get a list of debug categories set XFDASHBOARD_DEBUG=help
[New Thread 0x7fffea4df640 (LWP 120666)]
[Thread 0x7fffea4df640 (LWP 120666) exited]
[New Thread 0x7fffea4df640 (LWP 120667)]
[New Thread 0x7fffe9a7e640 (LWP 120668)]
[Thread 0x7fffea4df640 (LWP 120667) exited]
[Thread 0x7fffe9a7e640 (LWP 120668) exited]

(xfdashboard:120653): xfdashboard-WARNING **: 14:02:12.746: Keep window fullscreen on primary monitor because window manager does not support _NET_WM_FULLSCREEN_MONITORS.
[New Thread 0x7fffe9a7e640 (LWP 120671)]
[New Thread 0x7fffea4df640 (LWP 120677)]
[New Thread 0x7fffdd520640 (LWP 120678)]
[Thread 0x7fffea4df640 (LWP 120677) exited]
[New Thread 0x7fffea4df640 (LWP 120679)]
[New Thread 0x7fffdccd8640 (LWP 120680)]
[Thread 0x7fffea4df640 (LWP 120679) exited]
[Thread 0x7fffdd520640 (LWP 120678) exited]
[Thread 0x7fffdccd8640 (LWP 120680) exited]
[Thread 0x7fffeb63d640 (LWP 120665) exited]
[Thread 0x7fffebe4e640 (LWP 120663) exited]
[Thread 0x7ffff2a9c640 (LWP 120658) exited]
[Thread 0x7ffff329d640 (LWP 120657) exited]
[Thread 0x7ffff32a0f40 (LWP 120653) exited]
[Inferior 1 (process 120653) exited normally]

2nd run:

Reading symbols from /usr/bin/xfdashboard...
(No debugging symbols found in /usr/bin/xfdashboard)
Starting program: /usr/bin/xfdashboard 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff329d640 (LWP 120852)]
[New Thread 0x7ffff2a9c640 (LWP 120853)]
[New Thread 0x7fffebe4e640 (LWP 120854)]
[New Thread 0x7fffeb63d640 (LWP 120855)]
[Thread 0x7fffeb63d640 (LWP 120855) exited]
[New Thread 0x7fffeb63d640 (LWP 120856)]
** Use environment variable XFDASHBOARD_DEBUG to enable debug messages
** To get a list of debug categories set XFDASHBOARD_DEBUG=help

(xfdashboard:120848): xfdashboard-WARNING **: 14:04:46.618: Failed to connect to session manager: Failed to connect to the session manager: SESSION_MANAGER environment variable not defined
** Use environment variable XFDASHBOARD_DEBUG to enable debug messages
** To get a list of debug categories set XFDASHBOARD_DEBUG=help
[New Thread 0x7fffea4df640 (LWP 120857)]
[Thread 0x7fffea4df640 (LWP 120857) exited]
[New Thread 0x7fffea4df640 (LWP 120858)]
[New Thread 0x7fffe9a7e640 (LWP 120859)]
[Thread 0x7fffea4df640 (LWP 120858) exited]
[Thread 0x7fffe9a7e640 (LWP 120859) exited]

(xfdashboard:120848): Gdk-WARNING **: 14:04:46.689: The program 'xfdashboard' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 440 error_code 3 request_code 20 (core protocol) minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
[Thread 0x7fffeb63d640 (LWP 120856) exited]
[Thread 0x7fffebe4e640 (LWP 120854) exited]
[Thread 0x7ffff2a9c640 (LWP 120853) exited]
[Thread 0x7ffff32a0f40 (LWP 120848) exited]
[Inferior 1 (process 120848) exited with code 01] 

(gdb) bt
No stack.

Although something is not visible in this output - I think 2bwm is crashing on exit from the first run of xfdashboard. The wm's keybindings stop working at that point, so its crashed already to some degree.

Apologies for the questions, but would compiling xfdashboard with debug symbols be helpful in possibly narrowing this issue down?

Thanks for your time.

gmc-holle commented 3 years ago

Sorry for the delay. Sadly your debug session does not help as the application has crashed before the debugger could interrupt its execution to provide a backtrace. I haven't tried it yet (as it does not crash this way on my computer) but maybe setting the enviroment variable GDK_SYNCHRONIZE before starting the debug session could help as the error message suggests. Without a meaningful backtrace I will not be able to help or get a clue what is going wrong. And yes, debugging symbols should be available.

vredesbyyrd commented 3 years ago

No worries, thanks for the info. I dont have the time at the moment, but I will definitely come back to this asap and try to get a meaningful backtrace.