GNOME Bugzilla – Bug 712767
gdm can get into a recursive self-destructive mode in the stop path
Last modified: 2013-12-16 22:14:39 UTC
A downstream crash got reported with this backtrace: warning: core file may not match specified executable file. [New LWP 4940] [New LWP 4943] [New LWP 4942] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Core was generated by `/usr/libexec/gdm-simple-slave --display-id /org/gnome/DisplayManager/Displays/_'. Program terminated with signal 11, Segmentation fault.
+ Trace 232809
Thread 1 (Thread 0x7fe0a6299800 (LWP 4940))
From To Syms Read Shared Object Library 0x00007fe0a5d79f60 0x00007fe0a5dfd5ac Yes (*) /lib64/libX11.so.6 0x00007fe0a5b53ba0 0x00007fe0a5b590c8 Yes (*) /lib64/libXrandr.so.2 0x00007fe0a5829970 0x00007fe0a58e1c5c Yes (*) /lib64/libgio-2.0.so.0 0x00007fe0a55b4ad0 0x00007fe0a55e1b60 Yes (*) /lib64/libgobject-2.0.so.0 0x00007fe0a5298260 0x00007fe0a533112c Yes (*) /lib64/libglib-2.0.so.0 0x00007fe0a50732d0 0x00007fe0a5078ca4 Yes (*) /lib64/libsystemd-login.so.0 0x00007fe0a4e6dda0 0x00007fe0a4e6eb3a Yes (*) /lib64/libsystemd-daemon.so.0 0x00007fe0a4c568a0 0x00007fe0a4c61544 Yes (*) /lib64/libpthread.so.0 0x00007fe0a48af3c0 0x00007fe0a49f2aa0 Yes (*) /lib64/libc.so.6 0x00007fe0a467ba00 0x00007fe0a46870a8 Yes (*) /lib64/libxcb.so.1 0x00007fe0a446eed0 0x00007fe0a446f9d0 Yes (*) /lib64/libdl.so.2 0x00007fe0a425f760 0x00007fe0a4268e70 Yes (*) /lib64/libXext.so.6 0x00007fe0a4053b00 0x00007fe0a40597c8 Yes (*) /lib64/libXrender.so.1 0x00007fe0a3e4b870 0x00007fe0a3e4ff58 Yes (*) /lib64/libffi.so.6 0x00007fe0a3c47120 0x00007fe0a3c47fd8 Yes (*) /lib64/libgmodule-2.0.so.0 0x00007fe0a3a32190 0x00007fe0a3a3e620 Yes (*) /lib64/libz.so.1 0x00007fe0a3813270 0x00007fe0a3825088 Yes (*) /lib64/libselinux.so.1 0x00007fe0a35f6a40 0x00007fe0a36056dc Yes (*) /lib64/libresolv.so.2 0x00007fe0a33ed2c0 0x00007fe0a33f00ac Yes (*) /lib64/librt.so.1 0x00007fe0a31d7af0 0x00007fe0a31e71f8 Yes (*) /lib64/libgcc_s.so.1 0x00007fe0a6097ae0 0x00007fe0a60b1c9a Yes (*) /lib64/ld-linux-x86-64.so.2 0x00007fe0a2fd1ec0 0x00007fe0a2fd2b3c Yes (*) /lib64/libXau.so.6 0x00007fe0a2d725f0 0x00007fe0a2db7248 Yes (*) /lib64/libpcre.so.1 0x00007fe096df31e0 0x00007fe096dfa3cc Yes (*) /lib64/libnss_files.so.2 (*): Shared library is missing debugging information. $1 = 0x0 No symbol table is loaded. Use the "file" command. rax 0x0 0 rbx 0x7fff3643d620 140734103803424 rcx 0xfca9 64681 rdx 0x1 1 rsi 0x7fe0a62f49af 140602837518767 rdi 0x7fff3643d620 140734103803424 rbp 0x7fff3643d5f0 0x7fff3643d5f0 rsp 0x7fff3643d000 0x7fff3643d000 r8 0x7fe0a4c4ca00 140602813762048 r9 0x7fe0a62f49ac 140602837518764 r10 0x7fe0a62f49af 140602837518767 r11 0x0 0 r12 0x1 1 r13 0x7fe0a62eb860 140602837481568 r14 0x1 1 r15 0x7fff3643fd48 140734103813448 rip 0x7fe0a490971a 0x7fe0a490971a <__GI__IO_default_xsputn+10> eflags 0x10202 [ IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 Dump of assembler code for function __GI__IO_default_xsputn: 0x00007fe0a4909710 <+0>: push %r14 0x00007fe0a4909712 <+2>: xor %eax,%eax 0x00007fe0a4909714 <+4>: test %rdx,%rdx 0x00007fe0a4909717 <+7>: mov %rdx,%r14 => 0x00007fe0a490971a <+10>: push %r13 0x00007fe0a490971c <+12>: push %r12 0x00007fe0a490971e <+14>: push %rbp 0x00007fe0a490971f <+15>: push %rbx 0x00007fe0a4909720 <+16>: je 0x7fe0a4909816 <__GI__IO_default_xsputn+262> 0x00007fe0a4909726 <+22>: mov %rdi,%r12 0x00007fe0a4909729 <+25>: mov %rsi,%rbp 0x00007fe0a490972c <+28>: mov %rdx,%rbx 0x00007fe0a490972f <+31>: jmpq 0x7fe0a49097d8 <__GI__IO_default_xsputn+200> 0x00007fe0a4909734 <+36>: nopl 0x0(%rax) 0x00007fe0a4909738 <+40>: test %r13,%r13 0x00007fe0a490973b <+43>: je 0x7fe0a49097ae <__GI__IO_default_xsputn+158> 0x00007fe0a490973d <+45>: lea 0x10(%rbp),%rax 0x00007fe0a4909741 <+49>: cmp %rax,%rdi 0x00007fe0a4909744 <+52>: lea 0x10(%rdi),%rax 0x00007fe0a4909748 <+56>: setae %dl 0x00007fe0a490974b <+59>: cmp %rax,%rbp 0x00007fe0a490974e <+62>: setae %al 0x00007fe0a4909751 <+65>: or %al,%dl 0x00007fe0a4909753 <+67>: je 0x7fe0a4909820 <__GI__IO_default_xsputn+272> 0x00007fe0a4909759 <+73>: cmp $0xf,%r13 0x00007fe0a490975d <+77>: jbe 0x7fe0a4909820 <__GI__IO_default_xsputn+272> 0x00007fe0a4909763 <+83>: movdqu 0x0(%rbp),%xmm0 0x00007fe0a4909768 <+88>: cmp $0x10,%r13 0x00007fe0a490976c <+92>: movdqu %xmm0,(%rdi) 0x00007fe0a4909770 <+96>: je 0x7fe0a49097a3 <__GI__IO_default_xsputn+147> 0x00007fe0a4909772 <+98>: movzbl 0x10(%rbp),%eax 0x00007fe0a4909776 <+102>: mov %al,0x10(%rdi) 0x00007fe0a4909779 <+105>: mov %r13,%rax 0x00007fe0a490977c <+108>: sub $0x12,%rax 0x00007fe0a4909780 <+112>: js 0x7fe0a49097a3 <__GI__IO_default_xsputn+147> 0x00007fe0a4909782 <+114>: movzbl 0x11(%rbp),%eax 0x00007fe0a4909786 <+118>: cmp $0x12,%r13 0x00007fe0a490978a <+122>: mov %al,0x11(%rdi) 0x00007fe0a490978d <+125>: je 0x7fe0a49097a3 <__GI__IO_default_xsputn+147> 0x00007fe0a490978f <+127>: movzbl 0x12(%rbp),%eax 0x00007fe0a4909793 <+131>: cmp $0x14,%r13 0x00007fe0a4909797 <+135>: mov %al,0x12(%rdi) 0x00007fe0a490979a <+138>: jne 0x7fe0a49097a3 <__GI__IO_default_xsputn+147> 0x00007fe0a490979c <+140>: movzbl 0x13(%rbp),%eax 0x00007fe0a49097a0 <+144>: mov %al,0x13(%rdi) 0x00007fe0a49097a3 <+147>: add %r13,%rdi 0x00007fe0a49097a6 <+150>: add %r13,%rbp 0x00007fe0a49097a9 <+153>: mov %rdi,0x28(%r12) 0x00007fe0a49097ae <+158>: sub %r13,%rbx 0x00007fe0a49097b1 <+161>: test %rbx,%rbx 0x00007fe0a49097b4 <+164>: je 0x7fe0a4909810 <__GI__IO_default_xsputn+256> 0x00007fe0a49097b6 <+166>: mov 0xd8(%r12),%rax 0x00007fe0a49097be <+174>: movzbl 0x0(%rbp),%esi 0x00007fe0a49097c2 <+178>: mov %r12,%rdi 0x00007fe0a49097c5 <+181>: lea 0x1(%rbp),%r13 0x00007fe0a49097c9 <+185>: callq *0x18(%rax) 0x00007fe0a49097cc <+188>: cmp $0xffffffff,%eax 0x00007fe0a49097cf <+191>: je 0x7fe0a4909810 <__GI__IO_default_xsputn+256> 0x00007fe0a49097d1 <+193>: sub $0x1,%rbx 0x00007fe0a49097d5 <+197>: mov %r13,%rbp 0x00007fe0a49097d8 <+200>: mov 0x28(%r12),%rdi 0x00007fe0a49097dd <+205>: mov 0x30(%r12),%r13 0x00007fe0a49097e2 <+210>: cmp %r13,%rdi 0x00007fe0a49097e5 <+213>: jae 0x7fe0a49097b1 <__GI__IO_default_xsputn+161> 0x00007fe0a49097e7 <+215>: sub %rdi,%r13 0x00007fe0a49097ea <+218>: cmp %r13,%rbx 0x00007fe0a49097ed <+221>: cmovbe %rbx,%r13 0x00007fe0a49097f1 <+225>: cmp $0x14,%r13 0x00007fe0a49097f5 <+229>: jbe 0x7fe0a4909738 <__GI__IO_default_xsputn+40> 0x00007fe0a49097fb <+235>: mov %rbp,%rsi 0x00007fe0a49097fe <+238>: mov %r13,%rdx 0x00007fe0a4909801 <+241>: add %r13,%rbp 0x00007fe0a4909804 <+244>: callq 0x7fe0a491a1d0 <__mempcpy_sse2> 0x00007fe0a4909809 <+249>: mov %rax,0x28(%r12) 0x00007fe0a490980e <+254>: jmp 0x7fe0a49097ae <__GI__IO_default_xsputn+158> 0x00007fe0a4909810 <+256>: mov %r14,%rax 0x00007fe0a4909813 <+259>: sub %rbx,%rax 0x00007fe0a4909816 <+262>: pop %rbx 0x00007fe0a4909817 <+263>: pop %rbp 0x00007fe0a4909818 <+264>: pop %r12 0x00007fe0a490981a <+266>: pop %r13 0x00007fe0a490981c <+268>: pop %r14 0x00007fe0a490981e <+270>: retq 0x00007fe0a490981f <+271>: nop 0x00007fe0a4909820 <+272>: xor %eax,%eax 0x00007fe0a4909822 <+274>: nopw 0x0(%rax,%rax,1) 0x00007fe0a4909828 <+280>: movzbl 0x0(%rbp,%rax,1),%edx 0x00007fe0a490982d <+285>: mov %dl,(%rdi,%rax,1) 0x00007fe0a4909830 <+288>: add $0x1,%rax 0x00007fe0a4909834 <+292>: cmp %r13,%rax 0x00007fe0a4909837 <+295>: jne 0x7fe0a4909828 <__GI__IO_default_xsputn+280> 0x00007fe0a4909839 <+297>: jmpq 0x7fe0a49097a3 <__GI__IO_default_xsputn+147> End of assembler dump.
Created attachment 264365 [details] [review] slave: fix infinite loop on shutdown we stop something that calls stop in some circumstances. This commit breaks the loop.
Attachment 264365 [details] pushed as e19b881 - slave: fix infinite loop on shutdown