On Mon, 15 Sep 2025 19:23:20 +0100 Peter Krefting <[email protected]>
wrote:
Package: lxpanel
Version: 0.11.1-1
Severity: normal
Dear Maintainer,
after upgrading the Debian 13, lxpanel repeatedly crashes. I am using an
LXDE setup, with lightdm as the login handler.
Looking at the times, it seems to be related to returning to the desktop
from xscreensaver:
Hello,
I tried to get some more information from the backtrace combined with the
dbgsym package.
And I think the crashing strftime call is in function `dclock_update_display`
[1].
A crash may be possible if `current_time` is a null pointer,
which may be possible when searching the net for it.
Installing the lxpanel-dbgsym package and inspecting a core file
by `systemd-coredump gdb [PID]` and executing the command `bt`
may be able to prove this.
Kind regards,
Bernhard
[1] https://github.com/lxde/lxpanel/blob/master/plugins/dclock.c#L194
# 2025-10-19 Trixie/stable amd64 qemu VM
apt install systemd-coredump xserver-xorg slim jwm xterm htop btop tmux gdb mc
quilt lxpanel lxpanel-dbgsym
From https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1115333 :
Stack trace of thread 14098:
#0 0x00007f0da2beb524 __strftime_internal (libc.so.6 + 0xd7524)
#1 0x00007f0da2bed948 __GI___strftime_l (libc.so.6 + 0xd9948)
#2 0x000055ef78d88170 n/a (/usr/bin/lxpanel + 0x12170)
#3 0x00007f0da2eb144e n/a (libglib-2.0.so.0 + 0x5f44e)
#4 0x00007f0da2eae3c5 n/a (libglib-2.0.so.0 + 0x5c3c5)
#5 0x00007f0da2eb05f7 n/a (libglib-2.0.so.0 + 0x5e5f7)
#6 0x00007f0da2eb105f g_main_loop_run (libglib-2.0.so.0 +
0x5f05f)
#7 0x00007f0da360705d gtk_main (libgtk-3.so.0 + 0x20705d)
#8 0x000055ef78d85626 main (/usr/bin/lxpanel + 0xf626)
benutzer@debian:~$ gdb -q
(gdb) file /usr/bin/lxpanel
Reading symbols from /usr/bin/lxpanel...
Reading symbols from
/usr/lib/debug/.build-id/36/37aad31c3695831ef2dccb2705ff9405d8d7df.debug...
(gdb) tb main
Temporary breakpoint 1 at 0xf220: file ./src/main.c, line 464.
(gdb) run
Starting program: /usr/bin/lxpanel
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Temporary breakpoint 1, main (argc=1, argv=0x7fffffffe408, env=0x7fffffffe418)
at ./src/main.c:464
warning: 464 ./src/main.c: Datei oder Verzeichnis nicht gefunden
(gdb) info inferior
Num Description Connection Executable
* 1 process 36918 1 (native) /usr/bin/lxpanel
(gdb) shell cat /proc/36918/maps | grep -i lxpanel
555555554000-555555561000 r--p 00000000 08:02 702110
/usr/bin/lxpanel
555555561000-555555573000 r-xp 0000d000 08:02 702110
/usr/bin/lxpanel
555555573000-555555579000 r--p 0001f000 08:02 702110
/usr/bin/lxpanel
555555579000-55555557b000 r--p 00024000 08:02 702110
/usr/bin/lxpanel
55555557b000-55555557c000 rw-p 00026000 08:02 702110
/usr/bin/lxpanel
7ffff7f91000-7ffff7f9f000 r--p 00000000 08:02 802477
/usr/lib/x86_64-linux-gnu/lxpanel/liblxpanel.so.0.0.0
7ffff7f9f000-7ffff7fb5000 r-xp 0000e000 08:02 802477
/usr/lib/x86_64-linux-gnu/lxpanel/liblxpanel.so.0.0.0
7ffff7fb5000-7ffff7fbc000 r--p 00024000 08:02 802477
/usr/lib/x86_64-linux-gnu/lxpanel/liblxpanel.so.0.0.0
7ffff7fbc000-7ffff7fbe000 r--p 0002a000 08:02 802477
/usr/lib/x86_64-linux-gnu/lxpanel/liblxpanel.so.0.0.0
7ffff7fbe000-7ffff7fbf000 rw-p 0002c000 08:02 802477
/usr/lib/x86_64-linux-gnu/lxpanel/liblxpanel.so.0.0.0
(gdb) print/x 0x555555554000 + 0xf626
$1 = 0x555555563626
(gdb) b *0x555555563626
Breakpoint 2 at 0x555555563626: file ./src/main.c, line 574.
(gdb) disassemble 0x555555563626-32,0x555555563626+10
Dump of assembler code from 0x555555563606 to 0x555555563630:
0x0000555555563606 <main+998>: call 0x555555565770
<_start_panels_from_dir>
0x000055555556360b <main+1003>: mov %rbx,%rdi
0x000055555556360e <main+1006>: call 0x5555555631f0 <g_free@plt>
0x0000555555563613 <main+1011>: cmpq $0x0,0x18265(%rip) #
0x55555557b880 <all_panels>
0x000055555556361b <main+1019>: je 0x5555555637cb <main+1451>
0x0000555555563621 <main+1025>: call 0x555555562500 <gtk_main@plt>
0x0000555555563626 <main+1030>: call 0x555555561750
<gdk_x11_get_default_root_xwindow@plt>
0x000055555556362b <main+1035>: mov %rax,%rbx
0x000055555556362e <main+1038>: call 0x555555561f80
<gdk_display_get_default@plt>
End of assembler dump.
(gdb) info b
Num Type Disp Enb Address What
2 breakpoint keep y 0x0000555555563626 in main at ./src/main.c:574
(gdb) print/x 0x555555554000 + 0x12170
$2 = 0x555555566170
(gdb) b *0x555555566170
Breakpoint 3 at 0x555555566170: file ./plugins/dclock.c, line 199.
(gdb) disassemble 0x555555566170-32,0x555555566170+10
Dump of assembler code from 0x555555566150 to 0x55555556617a:
0x0000555555566150 <dclock_update_display+240>: cmp %al,%dh
0x0000555555566152 <dclock_update_display+242>: rex.R and $0x50,%al
0x0000555555566155 <dclock_update_display+245>: add
%cl,0x64(%rbp,%rcx,4)
0x0000555555566159 <dclock_update_display+249>: and $0x50,%al
0x000055555556615b <dclock_update_display+251>: test %rdx,%rdx
0x000055555556615e <dclock_update_display+254>: je 0x555555566170
<dclock_update_display+272>
0x0000555555566160 <dclock_update_display+256>: mov %rbp,%rcx
0x0000555555566163 <dclock_update_display+259>: mov $0x40,%esi
0x0000555555566168 <dclock_update_display+264>: mov %r12,%rdi
0x000055555556616b <dclock_update_display+267>: call 0x555555561d80
<strftime@plt>
0x0000555555566170 <dclock_update_display+272>: mov 0x4c(%rbx),%edx
0x0000555555566173 <dclock_update_display+275>: test %edx,%edx
0x0000555555566175 <dclock_update_display+277>: jne 0x555555566279
<dclock_update_display+537>
End of assembler dump.
(gdb) dele 3
(gdb) b *0x000055555556616b
Breakpoint 4 at 0x55555556616b: file ./plugins/dclock.c, line 194.
(gdb) info b
Num Type Disp Enb Address What
2 breakpoint keep y 0x0000555555563626 in main at ./src/main.c:574
4 breakpoint keep y 0x000055555556616b in dclock_update_display at
./plugins/dclock.c:194
(gdb)
https://sources.debian.org/src/lxpanel/0.11.1-1/plugins/dclock.c#L194
https://github.com/lxde/lxpanel/blob/master/plugins/dclock.c#L194