Bug 53686 - synaptics-1.6.2: sporadic segmentation fault in SynapticsAccelerationProfile
Summary: synaptics-1.6.2: sporadic segmentation fault in SynapticsAccelerationProfile
Status: RESOLVED DUPLICATE of bug 52496
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/synaptics (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium critical
Assignee: Peter Hutterer
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-08-18 20:54 UTC by Ole Langbehn
Modified: 2012-08-20 00:21 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Ole Langbehn 2012-08-18 20:54:45 UTC
Sporadically my x crashes (this has been going on for some months). Most of the time it happens during a suspend cycle, sometimes it happens during usage.

The backtrace in the xorg log always contains a reference to synaptics, e.g.:

(EE) 
(EE) Backtrace:
(EE) 0: X (xorg_backtrace+0x34) [0x596bb4]
(EE) 1: X (0x400000+0x19a9e9) [0x59a9e9]
(EE) 2: /lib64/libpthread.so.0 (0x3026000000+0x10410) [0x3026010410]
(EE) 3: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x2a98) [0x7fe0230d6a98]
(EE) 4: X (BasicComputeAcceleration+0x7) [0x459af7]
(EE) 5: X (0x400000+0x5a506) [0x45a506]
(EE) 6: X (0x400000+0x506dd) [0x4506dd]
(EE) 7: X (GetPointerEvents+0xc4) [0x4518c4]
(EE) 8: X (QueuePointerEvents+0x1d) [0x451d7d]
(EE) 9: X (xf86PostMotionEvent+0xce) [0x48aa3e]
(EE) 10: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x4518) [0x7fe0230d8518]
(EE) 11: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x6580) [0x7fe0230da580]
(EE) 12: X (0x400000+0x7a357) [0x47a357]
(EE) 13: X (0x400000+0xa52a7) [0x4a52a7]
(EE) 14: /lib64/libpthread.so.0 (0x3026000000+0x10410) [0x3026010410]
(EE) 15: /lib64/libc.so.6 (__select+0x13) [0x30254e4213]
(EE) 16: X (WaitForSomething+0x19b) [0x5940fb]
(EE) 17: X (0x400000+0x3aea2) [0x43aea2]
(EE) 18: X (0x400000+0x29c3a) [0x429c3a]
(EE) 19: /lib64/libc.so.6 (__libc_start_main+0xfd) [0x30254224bd]
(EE) 20: X (0x400000+0x29f91) [0x429f91]
(EE) 
(EE) Segmentation fault at address 0x59
(EE) BUG: triggered 'if (inSignalContext)'
(EE) BUG: /var/tmp/portage/x11-base/xorg-server-1.12.99.904/work/xorg-server-1.12.99.904/os/log.c:472 in LogVMessageVerb()
(EE) Warning: attempting to log data in a signal unsafe manner while in signal context. Please update to check inSignalContext and/or use LogMessageVerbSigSafe() or ErrorFSigSafe(). The offending log format message is:

Fatal server error:

(EE) 
(EE) Backtrace:
(EE) 0: X (xorg_backtrace+0x34) [0x596bb4]
(EE) 1: X (ErrorF+0x8c) [0x5a1e9c]
(EE) 2: X (FatalError+0xf6) [0x5a21f6]
(EE) 3: X (0x400000+0x19aa3e) [0x59aa3e]
(EE) 4: /lib64/libpthread.so.0 (0x3026000000+0x10410) [0x3026010410]
(EE) 5: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x2a98) [0x7fe0230d6a98]
(EE) 6: X (BasicComputeAcceleration+0x7) [0x459af7]
(EE) 7: X (0x400000+0x5a506) [0x45a506]
(EE) 8: X (0x400000+0x506dd) [0x4506dd]
(EE) 9: X (GetPointerEvents+0xc4) [0x4518c4]
(EE) 10: X (QueuePointerEvents+0x1d) [0x451d7d]
(EE) 11: X (xf86PostMotionEvent+0xce) [0x48aa3e]
(EE) 12: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x4518) [0x7fe0230d8518]
(EE) 13: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x6580) [0x7fe0230da580]
(EE) 14: X (0x400000+0x7a357) [0x47a357]
(EE) 15: X (0x400000+0xa52a7) [0x4a52a7]
(EE) 16: /lib64/libpthread.so.0 (0x3026000000+0x10410) [0x3026010410]
(EE) 17: /lib64/libc.so.6 (__select+0x13) [0x30254e4213]
(EE) 18: X (WaitForSomething+0x19b) [0x5940fb]
(EE) 19: X (0x400000+0x3aea2) [0x43aea2]
(EE) 20: X (0x400000+0x29c3a) [0x429c3a]
(EE) 21: /lib64/libc.so.6 (__libc_start_main+0xfd) [0x30254224bd]
(EE) 22: X (0x400000+0x29f91) [0x429f91]
(EE) 
(EE) BUG: triggered 'if (inSignalContext)'
(EE) BUG: /var/tmp/portage/x11-base/xorg-server-1.12.99.904/work/xorg-server-1.12.99.904/os/log.c:472 in LogVMessageVerb()
(EE) Warning: attempting to log data in a signal unsafe manner while in signal context. Please update to check inSignalContext and/or use LogMessageVerbSigSafe() or ErrorFSigSafe(). The offending log format message is:
Caught signal %d (%s). Server aborting

(EE) 
(EE) Backtrace:
(EE) 0: X (xorg_backtrace+0x34) [0x596bb4]
(EE) 1: X (FatalError+0xcb) [0x5a21cb]
(EE) 2: X (0x400000+0x19aa3e) [0x59aa3e]
(EE) 3: /lib64/libpthread.so.0 (0x3026000000+0x10410) [0x3026010410]
(EE) 4: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x2a98) [0x7fe0230d6a98]
(EE) 5: X (BasicComputeAcceleration+0x7) [0x459af7]
(EE) 6: X (0x400000+0x5a506) [0x45a506]
(EE) 7: X (0x400000+0x506dd) [0x4506dd]
(EE) 8: X (GetPointerEvents+0xc4) [0x4518c4]
(EE) 9: X (QueuePointerEvents+0x1d) [0x451d7d]
(EE) 10: X (xf86PostMotionEvent+0xce) [0x48aa3e]
(EE) 11: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x4518) [0x7fe0230d8518]
(EE) 12: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x6580) [0x7fe0230da580]
(EE) 13: X (0x400000+0x7a357) [0x47a357]
(EE) 14: X (0x400000+0xa52a7) [0x4a52a7]
(EE) 15: /lib64/libpthread.so.0 (0x3026000000+0x10410) [0x3026010410]
(EE) 16: /lib64/libc.so.6 (__select+0x13) [0x30254e4213]
(EE) 17: X (WaitForSomething+0x19b) [0x5940fb]
(EE) 18: X (0x400000+0x3aea2) [0x43aea2]
(EE) 19: X (0x400000+0x29c3a) [0x429c3a]
(EE) 20: /lib64/libc.so.6 (__libc_start_main+0xfd) [0x30254224bd]
(EE) 21: X (0x400000+0x29f91) [0x429f91]
(EE) 
(EE) BUG: triggered 'if (inSignalContext)'
(EE) BUG: /var/tmp/portage/x11-base/xorg-server-1.12.99.904/work/xorg-server-1.12.99.904/os/log.c:472 in LogVMessageVerb()
(EE) Warning: attempting to log data in a signal unsafe manner while in signal context. Please update to check inSignalContext and/or use LogMessageVerbSigSafe() or ErrorFSigSafe(). The offending log format message is:


(EE) 
(EE) Backtrace:
(EE) 0: X (xorg_backtrace+0x34) [0x596bb4]
(EE) 1: X (ErrorF+0x8c) [0x5a1e9c]
(EE) 2: X (FatalError+0xd9) [0x5a21d9]
(EE) 3: X (0x400000+0x19aa3e) [0x59aa3e]
(EE) 4: /lib64/libpthread.so.0 (0x3026000000+0x10410) [0x3026010410]
(EE) 5: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x2a98) [0x7fe0230d6a98]
(EE) 6: X (BasicComputeAcceleration+0x7) [0x459af7]
(EE) 7: X (0x400000+0x5a506) [0x45a506]
(EE) 8: X (0x400000+0x506dd) [0x4506dd]
(EE) 9: X (GetPointerEvents+0xc4) [0x4518c4]
(EE) 10: X (QueuePointerEvents+0x1d) [0x451d7d]
(EE) 11: X (xf86PostMotionEvent+0xce) [0x48aa3e]
(EE) 12: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x4518) [0x7fe0230d8518]
(EE) 13: /usr/lib64/xorg/modules/input/synaptics_drv.so (0x7fe0230d4000+0x6580) [0x7fe0230da580]
(EE) 14: X (0x400000+0x7a357) [0x47a357]
(EE) 15: X (0x400000+0xa52a7) [0x4a52a7]
(EE) 16: /lib64/libpthread.so.0 (0x3026000000+0x10410) [0x3026010410]
(EE) 17: /lib64/libc.so.6 (__select+0x13) [0x30254e4213]
(EE) 18: X (WaitForSomething+0x19b) [0x5940fb]
(EE) 19: X (0x400000+0x3aea2) [0x43aea2]
(EE) 20: X (0x400000+0x29c3a) [0x429c3a]
(EE) 21: /lib64/libc.so.6 (__libc_start_main+0xfd) [0x30254224bd]
(EE) 22: X (0x400000+0x29f91) [0x429f91]
(EE) 
(EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information.
(EE) 


I tried to run gdb against the server, but this has proven difficult since the problem occurs sporadically. I had gdb connected once, but it exited before I could dump the stack. The only information i got out of it were (summary typed by hand):

SIGSEGV in SynapticsAccelerationProfile, synaptics.c: 839

and then a second

SIGSEGV in DeleteInputDeviceRequest, xf86Xinput.c:1010

Following is an excerpt from synaptics.c as compiled on my system (should be vanilla):

   829  #else
   830  static float
   831  SynapticsAccelerationProfile(DeviceIntPtr dev,
   832                               DeviceVelocityPtr vel,
   833                               float velocity_f, float thr_f, float acc_f)
   834  {
   835      double velocity = velocity_f;
   836      double acc = acc_f;
   837  #endif
   838      InputInfoPtr pInfo = dev->public.devicePrivate;
   839      SynapticsPrivate *priv = (SynapticsPrivate *) (pInfo->private);
   840      SynapticsParameters *para = &priv->synpara;
   841
   842      double accelfct;
   843
Comment 1 Ole Langbehn 2012-08-19 19:18:20 UTC
The crash happens about one to three times a week. I'm using the computer about 9h/day and am suspending at least once a day without reboots in between days. When trying to reproduce the issue by suspending multiple times in a row the crash didn't happen yet.

My synaptics conf:

Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "synaptics"
EndSection

I'm on a Lenovo T520.

In my .xsession I disable the trackpoint via:

xinput set-int-prop "TPPS/2 IBM TrackPoint" "Device Enabled" 8 0
Comment 2 Peter Hutterer 2012-08-20 00:21:03 UTC
See bug 52496, it's an elusive bug, any hints on reliable reproducing it appreciated.

*** This bug has been marked as a duplicate of bug 52496 ***


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.