Bug#426970: xbase-clients: xrandr segfaults reading /lib/i686/cmov/libdl.so.2
retitle 426970 xrandr segfaults
thank you
Karsten M. Self wrote:
> Package: xbase-clients
> Version: 1:7.1.ds1-2
> Severity: normal
>
>
> xrandr segfaults when invoked.
>
Does it happen with xbase-clients 1:7.2.ds2-2
> If I'm reading strace correctly, it's failing in a read of
> /lib/i686/cmov/libdl.so.2:
>
>
> access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
> open("/lib/i686/cmov/libdl.so.2", O_RDONLY) = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\n\0\000"..., 512) = 51
> 2
> fstat64(3, {st_mode=S_IFREG|0644, st_size=9684, ...}) = 0
> mmap2(NULL, 12412, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d
> 3a000
> mmap2(0xb7d3c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRIT
> E, 3, 0x1) = 0xb7d3c000
> close(3) = 0
>
The descriptor of /lib/i686/cmov/libdl.so.2 is closed here. And
descriptor 3 is reopened below.
> socket(PF_FILE, SOCK_STREAM, 0) = 3
> uname({sys="Linux", node="lnx-kself", ...}) = 0
> uname({sys="Linux", node="lnx-kself", ...}) = 0
> connect(3, {sa_family=AF_FILE, path="/tmp/.X11-unix/X0"}, 19) = 0
> uname({sys="Linux", node="lnx-kself", ...}) = 0
> fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
> access("/home/kself/.Xauthority", R_OK) = 0
> open("/home/kself/.Xauthority", O_RDONLY) = 4
> fstat64(4, {st_mode=S_IFREG|0600, st_size=103, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7
> fa9000
> read(4, "\0\0\0\4\236\214/F\0\0010\0\22MIT-MAGIC-COOKIE-1\0"..., 4096) = 103
> read(4, "", 4096) = 0
> close(4) = 0
> munmap(0xb7fa9000, 4096) = 0
> writev(3, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"MIT-MAGIC-COOKIE-1", 18}, {"\0\0
> ", 2}, {"\23s\"+ `6/ip,dO\2N:", 16}], 4) = 48
> fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
> fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
> read(3, "\1\0\v\0\0\0c\0", 8) = 8
> read(3, "\10\250-\4\0\0`\5\377\377\37\0\0\1\0\0\24\0\377\377\1\7"..., 396) = 396
> write(3, "7\0\5\0\0\0`\5f\0\0\0\10\0\0\0\377\377\0\0b\0\5\0\f\0\0"..., 64) = 64
> read(3, "\1\0\2\0\0\0\0\0\1\205\0\0\0\0\0\0\24\0\0\0\0\0\0\0\24"..., 32) = 32
> read(3, "\1\10\3\0#\7\0\0\37\0\0\0\0\0\0\0\213\34\0\0\30\0\0\0\0"..., 32) = 32
> readv(3, [{"*VT100.Translations:\t#override ~"..., 7307}, {"\0", 1}], 2) = 7308
> write(3, "\205\0\1\0", 4) = 4
> read(3, "\1\0\4\0\0\0\0\0\377\377?\0\0\0\0\0\4\0\0\0(\0\0\0\4\0"..., 32) = 32
> writev(3, [{"b\0\5\0\t\0`\5", 8}, {"XKEYBOARD", 9}, {"\0\0\0", 3}], 3) = 20
> read(3, "\1\0\5\0\0\0\0\0\1\223n\255\0\0\0\0\24\0\0\0(\0\0\0\24"..., 32) = 32
> write(3, "\223\0\2\0\1\0\0\0", 8) = 8
> read(3, "\1\1\6\0\0\0\0\0\1\0\0\0\0\0\0\0\240\333A\n\23\0\0\0\10"..., 32) = 32
> writev(3, [{"b\0\4\0\5\0\0\0", 8}, {"RANDR", 5}, {"\0\0\0", 3}], 3) = 16
> read(3, "\1\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0(\0\0\0\20\0\0"..., 32) = 32
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> +++ killed by SIGSEGV +++
> Process 19634 detached
>
Descriptor 3 is a socket a this point, probably the socket to the server.
I have seen xrandr segfault a couple times, without ever being able to
reproduce. Is it easy to reproduce on your side? Can you get a backtrace
with gdb? What command line argument did you pass to it?
Brice
Reply to: