Created attachment 108318 [details] screenshot of htop Description of problem: process Xorg.bin stuck # rpm -q xorg-x11-server-Xorg xorg-x11-server-Xorg-1.16.1-1.fc21.i686 [root@localhost ~]# strace -f -s 256 -p 604 Process 604 attached with 2 threads [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, <unfinished ...> [pid 702] futex(0x8705aec, FUTEX_WAIT_PRIVATE, 10749, NULL <unfinished ...> [pid 604] <... clock_gettime resumed> {52716, 40142520}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 40142520}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 40142520}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 40142520}) = 0 [pid 604] select(256, [1 3 5 6 10 24 68], [28 66], NULL, NULL) = -1 EBADF (Bad file descriptor) [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 40142520}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 40142520}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 40142520}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] select(25, [24], NULL, NULL, {0, 0}) = 1 (in [24], left {0, 0}) [pid 604] select(69, [68], NULL, NULL, {0, 0}) = 1 (in [68], left {0, 0}) [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 41142537}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] select(256, [1 3 5 6 10 24 68], [28 66], NULL, NULL) = -1 EBADF (Bad file descriptor) [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 42142555}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] select(25, [24], NULL, NULL, {0, 0}) = 1 (in [24], left {0, 0}) [pid 604] select(69, [68], NULL, NULL, {0, 0}) = 1 (in [68], left {0, 0}) [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 43142572}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] select(256, [1 3 5 6 10 24 68], [28 66], NULL, NULL) = -1 EBADF (Bad file descriptor) [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 44142589}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] clock_gettime(CLOCK_MONOTONIC_COARSE, {52716, 45142606}) = 0 [pid 604] select(25, [24], NULL, NULL, {0, 0}) = 1 (in [24], left {0, 0}) [pid 604] select(69, [68], NULL, NULL, {0, 0}) = 1 (in [68], left {0, 0}) Backtrace: (gdb) thread apply all bt Thread 2 (Thread 0xb68fab40 (LWP 702)): #0 0xb775cccc in __kernel_vsyscall () #1 0xb7140e9c in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:187 #2 0xb7259456 in __pthread_cond_wait (cond=cond@entry=0x8705ae8, mutex=mutex@entry=0x8705ad0) at forward.c:149 #3 0xb69c42b2 in __run__ (arg=0x8705acc) at sna_threads.c:70 #4 0xb713c313 in start_thread (arg=0xb68fab40) at pthread_create.c:310 #5 0xb724bc2e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122 Thread 1 (Thread 0xb6e2c8c0 (LWP 604)): #0 0xb775cccc in __kernel_vsyscall () #1 0xb7241cb1 in select () at ../sysdeps/unix/syscall-template.S:81 #2 0x081fd390 in CheckConnections () at connection.c:1012 #3 0x081f9047 in WaitForSomething (pClientsReady=pClientsReady@entry=0x89598f8) at WaitFor.c:235 #4 0x0807bdde in Dispatch () at dispatch.c:361 #5 0x080805ca in dix_main (argc=argc@entry=16, argv=argv@entry=0xbfcdc074, envp=envp@entry=0xbfcdc0b8) at main.c:296 #6 0x08068c8f in main (argc=16, argv=0xbfcdc074, envp=0xbfcdc0b8) at stubmain.c:34 (gdb) Thread 2 (Thread 0xb68fab40 (LWP 702)): #0 0xb775cccc in __kernel_vsyscall () #1 0xb7140e9c in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:187 #2 0xb7259456 in __pthread_cond_wait (cond=cond@entry=0x8705ae8, mutex=mutex@entry=0x8705ad0) at forward.c:149 #3 0xb69c42b2 in __run__ (arg=0x8705acc) at sna_threads.c:70 #4 0xb713c313 in start_thread (arg=0xb68fab40) at pthread_create.c:310 #5 0xb724bc2e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122 Thread 1 (Thread 0xb6e2c8c0 (LWP 604)): #0 0xb775cccc in __kernel_vsyscall () #1 0xb7241cb1 in select () at ../sysdeps/unix/syscall-template.S:81 #2 0x081fd390 in CheckConnections () at connection.c:1012 #3 0x081f9047 in WaitForSomething (pClientsReady=pClientsReady@entry=0x89598f8) at WaitFor.c:235 #4 0x0807bdde in Dispatch () at dispatch.c:361 #5 0x080805ca in dix_main (argc=argc@entry=16, argv=argv@entry=0xbfcdc074, envp=envp@entry=0xbfcdc0b8) at main.c:296 #6 0x08068c8f in main (argc=16, argv=0xbfcdc074, envp=0xbfcdc0b8) at stubmain.c:34 (gdb)
Created attachment 108319 [details] dmesg
I suggest strace'ing from much earlier to find the bad fd.
(In reply to Chris Wilson from comment #2) > I suggest strace'ing from much earlier to find the bad fd. What you means by 'earlier'?
From start, or there abouts. The bad fd may be any of '[1 3 5 6 10 28 66]' but the strace doesn't say. If you capture earlier system calls, we may be able to see which is at fault and the culprit piece of code.
parent process is gdm, tracing gdm not said any useful info # strace -f -s 256 -p 537 Process 537 attached with 4 threads [pid 603] rt_sigtimedwait([USR1], <unfinished ...> [pid 589] restart_syscall(<... resuming interrupted call ...> <unfinished ...> [pid 586] restart_syscall(<... resuming interrupted call ...> <unfinished ...> [pid 537] restart_syscall(<... resuming interrupted call ...>^CProcess 537 detached <detached ...> Process 586 detached Process 589 detached Process 603 detached And run Xorg under persistent strace for catch this is unimpossible :(
[root@localhost ~]# journalctl -fln 20 -u gdm -- Logs begin at Пт 2014-10-03 16:54:15 YEKT. -- окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) This device may have been added with another device file. окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) config/udev: Adding input device HDA Intel Front Headphone (/dev/input/event9) окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) No input driver specified, ignoring this device. окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) This device may have been added with another device file. окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) config/udev: Adding input device HDA Intel Rear Mic (/dev/input/event5) окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) No input driver specified, ignoring this device. окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) This device may have been added with another device file. окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) config/udev: Adding input device HDA Intel Front Mic (/dev/input/event6) окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) No input driver specified, ignoring this device. окт 23 10:55:31 localhost.localdomain gdm-Xorg-:0[604]: (II) This device may have been added with another device file. окт 23 18:28:07 localhost.localdomain gdm-Xorg-:0[604]: (II) AIGLX: Suspending AIGLX clients for VT switch окт 23 18:28:15 localhost.localdomain gdm-Xorg-:0[604]: (II) AIGLX: Resuming AIGLX clients after VT switch окт 23 18:28:15 localhost.localdomain gdm-Xorg-:0[604]: (II) intel(0): switch to mode 1920x1080@60.0 on DVI1 using pipe 0, position (0, 0), rotation normal, reflection none окт 23 18:28:34 localhost.localdomain gdm-Xorg-:0[604]: (II) AIGLX: Suspending AIGLX clients for VT switch окт 23 18:29:14 localhost.localdomain gdm-Xorg-:0[604]: (II) AIGLX: Resuming AIGLX clients after VT switch окт 23 18:29:14 localhost.localdomain gdm-Xorg-:0[604]: (II) intel(0): switch to mode 1920x1080@60.0 on DVI1 using pipe 0, position (0, 0), rotation normal, reflection none окт 23 18:29:19 localhost.localdomain gdm-Xorg-:0[604]: (II) AIGLX: Suspending AIGLX clients for VT switch окт 23 18:29:32 localhost.localdomain gdm-Xorg-:0[604]: (II) AIGLX: Resuming AIGLX clients after VT switch окт 23 18:29:32 localhost.localdomain gdm-Xorg-:0[604]: (II) intel(0): switch to mode 1920x1080@60.0 on DVI1 using pipe 0, position (0, 0), rotation normal, reflection none окт 23 18:30:36 localhost.localdomain gdm-Xorg-:0[604]: (II) AIGLX: Suspending AIGLX clients for VT switch
Any ideas how to get the information you need? This machine still work with stuck Xorg.bin process, but tomorrow I have to reboot it.
Perhaps 'ls -l /proc/604/fd' will have a nice clue.
(In reply to Chris Wilson from comment #8) > Perhaps 'ls -l /proc/604/fd' will have a nice clue. # ls -l /proc/604/fd итого 0 l-wx------. 1 root root 64 окт 24 07:33 0 -> /dev/null lrwx------. 1 root root 64 окт 24 07:33 1 -> socket:[15880] lrwx------. 1 root root 64 окт 24 07:33 10 -> /dev/dri/card0 lrwx------. 1 root root 64 окт 24 07:33 11 -> /dev/vga_arbiter lrwx------. 1 root root 64 окт 24 07:33 12 -> socket:[16259] lrwx------. 1 root root 64 окт 24 07:33 13 -> socket:[16260] lrwx------. 1 root root 64 окт 24 07:33 2 -> socket:[16780] lrwx------. 1 root root 64 окт 24 07:33 20 -> socket:[18651] lrwx------. 1 root root 64 окт 24 07:33 21 -> socket:[26994] lrwx------. 1 root root 64 окт 24 07:33 22 -> socket:[23975] lrwx------. 1 root root 64 окт 24 07:33 23 -> socket:[24087] lrwx------. 1 root root 64 окт 24 07:33 24 -> socket:[24445] lrwx------. 1 root root 64 окт 24 07:33 25 -> socket:[24447] lrwx------. 1 root root 64 окт 24 07:33 26 -> socket:[25384] lrwx------. 1 root root 64 окт 24 07:33 27 -> socket:[26671] lrwx------. 1 root root 64 окт 24 07:33 28 -> socket:[26813] lrwx------. 1 root root 64 окт 24 07:33 29 -> socket:[26884] lrwx------. 1 root root 64 окт 24 07:33 3 -> socket:[15881] lrwx------. 1 root root 64 окт 24 07:33 30 -> socket:[26378] lrwx------. 1 root root 64 окт 24 07:33 31 -> socket:[27802] lrwx------. 1 root root 64 окт 24 07:33 32 -> socket:[31925] lrwx------. 1 root root 64 окт 24 07:33 33 -> socket:[27803] lrwx------. 1 root root 64 окт 24 07:33 34 -> socket:[27815] lrwx------. 1 root root 64 окт 24 07:33 35 -> socket:[28528] lrwx------. 1 root root 64 окт 24 07:33 36 -> socket:[27826] lrwx------. 1 root root 64 окт 24 07:33 37 -> socket:[31696] lrwx------. 1 root root 64 окт 24 07:33 38 -> socket:[32821] lrwx------. 1 root root 64 окт 24 07:33 39 -> socket:[33091] lr-x------. 1 root root 64 окт 24 07:33 4 -> /usr/lib/xorg/protocol.txt lrwx------. 1 root root 64 окт 24 07:33 41 -> socket:[33804] lrwx------. 1 root root 64 окт 24 07:33 42 -> socket:[33877] lrwx------. 1 root root 64 окт 24 07:33 43 -> socket:[86849] lrwx------. 1 root root 64 окт 24 07:33 44 -> socket:[50585] lrwx------. 1 root root 64 окт 24 07:33 45 -> socket:[112842] lrwx------. 1 root root 64 окт 24 07:33 46 -> socket:[112843] lrwx------. 1 root root 64 окт 24 07:33 47 -> socket:[112879] lrwx------. 1 root root 64 окт 24 07:33 48 -> socket:[112880] lrwx------. 1 root root 64 окт 24 07:33 49 -> socket:[87152] lrwx------. 1 root root 64 окт 24 07:33 5 -> socket:[15888] lrwx------. 1 root root 64 окт 24 07:33 50 -> socket:[86731] lrwx------. 1 root root 64 окт 24 07:33 51 -> socket:[87412] lrwx------. 1 root root 64 окт 24 07:33 52 -> socket:[87414] lrwx------. 1 root root 64 окт 24 07:33 53 -> socket:[427339] lrwx------. 1 root root 64 окт 24 07:33 54 -> socket:[88003] lrwx------. 1 root root 64 окт 24 07:33 55 -> socket:[427351] lrwx------. 1 root root 64 окт 24 07:33 56 -> socket:[427353] lrwx------. 1 root root 64 окт 24 07:33 57 -> socket:[430391] lrwx------. 1 root root 64 окт 24 07:33 58 -> socket:[430402] lrwx------. 1 root root 64 окт 24 07:33 59 -> socket:[449114] lrwx------. 1 root root 64 окт 24 07:33 6 -> socket:[16147] lrwx------. 1 root root 64 окт 24 07:33 60 -> socket:[157322] lrwx------. 1 root root 64 окт 24 07:33 61 -> socket:[452849] lrwx------. 1 root root 64 окт 24 07:33 62 -> socket:[192945] lrwx------. 1 root root 64 окт 24 07:33 63 -> socket:[193093] lrwx------. 1 root root 64 окт 24 07:33 65 -> socket:[461933] lrwx------. 1 root root 64 окт 24 07:33 68 -> socket:[259847] l-wx------. 1 root root 64 окт 24 07:33 7 -> /proc/mtrr l-wx------. 1 root root 64 окт 24 07:33 8 -> /proc/mtrr lrwx------. 1 root root 64 окт 24 07:33 9 -> /dev/tty1 Good.
Anything else?
Created attachment 108329 [details] # lsof | grep Xorg.bin
# lsof | wc -l lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete. 187585
# cat /proc/604/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 31539 31539 processes Max open files 1024 4096 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 31539 31539 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us
Created attachment 108330 [details] # lsof -a -p 604
Created attachment 108485 [details] X.log
Presuming this is the same bug as 89276 which is evidently not the ddx. *** This bug has been marked as a duplicate of bug 89276 ***
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.