Bug 1531845 - Animated cursor causes xorg-x11-server to deadlock
Summary: Animated cursor causes xorg-x11-server to deadlock
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-server
Version: 27
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Adam Jackson
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-01-06 05:23 UTC by Eric Work
Modified: 2018-11-30 19:10 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-11-30 19:10:31 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Patch series from email thread (8.65 KB, text/plain)
2018-01-06 05:23 UTC, Eric Work
no flags Details

Description Eric Work 2018-01-06 05:23:08 UTC
Created attachment 1377773 [details]
Patch series from email thread

When launching nautilus from the "Location" menu (when that add-on is enabled) the cursor will spin while it's busy loading.  If done multiple times quickly in succession then it will cause the xserver to hang.  My best guess is that when it tries to animate the cursor and it's already animated it freezes.  Here is the backtrace snippet when it's deadlocked:

(gdb) bt
#0 0x00007f9bfc116877 in ioctl () from /lib64/libc.so.6
#1 0x00007f9bf691b7d1 in ?? () from /usr/lib64/xorg/modules/drivers/nvidia_drv.so
#2 0x00007f9bf691710a in ?? () from /usr/lib64/xorg/modules/drivers/nvidia_drv.so
#3 0x00007f9bf6919e79 in ?? () from /usr/lib64/xorg/modules/drivers/nvidia_drv.so
#4 0x00007f9bf68ad26b in ?? () from /usr/lib64/xorg/modules/drivers/nvidia_drv.so
#5 0x00007f9bf6e2ab44 in ?? () from /usr/lib64/xorg/modules/drivers/nvidia_drv.so
#6 0x00000000020e9660 in ?? ()
#7 0x00000000020f9278 in ?? ()
#8 0x00000000028bb720 in ?? ()
#9 0x00000020f6919e85 in ?? ()
#10 0x0000000000000080 in ?? ()
#11 0x000000000219f650 in ?? ()
#12 0x0000000000000553 in ?? ()
#13 0x000000000000049d in ?? ()
#14 0x000000000219b4c0 in ?? ()
#15 0x00000000020d85a0 in ?? ()
#16 0x00000000027219d0 in ?? ()
#17 0x00000000004ba187 in xf86ScreenSetCursor ()
#18 0x00000000004ba484 in xf86SetCursor ()
#19 0x00000000004b8ec0 in xf86CursorSetCursor ()
#20 0x000000000058580a in miPointerUpdateSprite ()
#21 0x0000000000585a5a in miPointerDisplayCursor ()
#22 0x00000000004c73f0 in CursorDisplayCursor ()
#23 0x0000000000516c06 in AnimCurTimerNotify ()
...

The environment here is the NVIDIA 387.34 driver with an NVIDIA Titan V and xorg-x11-server-Xorg-1.19.5-1.fc27.x86_64.  When I previously had a GeForce 1070 in the system this problem never occured.

It was suggested by NVIDIA that this email thread might be related.

https://lists.x.org/archives/xorg-devel/2017-November/055144.html

So, I applied the patch series (along with the free() fix that was recommended) and rebuilt xorg-x11-server using mock starting with the xorg-x11-server-1.19.6-1.fc27.src.rpm package from koji and the attached patch.  Then it just kills the server when the cursor might be animating.

If I SSH to the machine when it's hung and run the following suggested command I can unfreeze the desktop:

pkill -STOP Xorg; sleep 1; pkill -CONT Xorg

See the NVIDIA thread below for more information from another user which is experiencing the same problem, but with Ubuntu 16.04.

https://devtalk.nvidia.com/default/topic/1028172/linux/titan-v-ubuntu-16-04lts-and-387-34-driver-crashes-badly

It's possible this might be an NVIDIA driver issue, but I believe it's an xserver issue.

Comment 1 Eric Work 2018-01-06 11:21:08 UTC
It appears to me that the xserver hangs upon completion of the full animation cycle for an animated cursor.  Something must happen when the cycle is ending or when the next animation cycle beins that cause this hang.  A few more details were put on the NVIDIA page.

Comment 2 Eric Work 2018-01-10 07:21:46 UTC
Your animcur patches to the xserver git has fixed this xserver freeze then applied to the latest 1.19.6 package.  I suppose since this is not wide spread I'll have to wait until 1.19.7 to get this fixed in the normal Fedora package.

Comment 3 Ben Cotton 2018-11-27 17:31:25 UTC
This message is a reminder that Fedora 27 is nearing its end of life.
On 2018-Nov-30  Fedora will stop maintaining and issuing updates for
Fedora 27. It is Fedora's policy to close all bug reports from releases
that are no longer maintained. At that time this bug will be closed as
EOL if it remains open with a Fedora  'version' of '27'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 27 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 4 Ben Cotton 2018-11-30 19:10:31 UTC
Fedora 27 changed to end-of-life (EOL) status on 2018-11-30. Fedora 27 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.