jscal crashed with signal 7 in __libc_start_main()

Bug #595767 reported by Jordan Braughler
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
joystick (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: joystick

The "joystick" in question is a Microsoft Corp. Digital Media Pro Keyboard.

ProblemType: Crash
DistroRelease: Ubuntu 10.04
Package: joystick 20051019-9
ProcVersionSignature: Ubuntu 2.6.32-22.36-generic 2.6.32.11+drm33.2
Uname: Linux 2.6.32-22-generic x86_64
NonfreeKernelModules: nvidia
Architecture: amd64
Date: Wed Jun 16 13:29:15 2010
ExecutablePath: /usr/bin/jscal
ProcCmdline: jscal -c /dev/input/js0
ProcEnviron:
 SHELL=/bin/bash
 LANG=en_US.UTF-8
 LANGUAGE=
Signal: 7
SourcePackage: joystick
StacktraceTop:
 ?? ()
 ?? ()
 ?? ()
 __libc_start_main () from /lib/libc.so.6
 ?? ()
Title: jscal crashed with signal 7 in __libc_start_main()
UserGroups: adm admin audio avahi avahi-autoipd backup cdrom crontab dialout dip disk fax floppy fuse games gnats haldaemon irc klog kmem kqemu libuuid list lp lpadmin mail man messagebus mlocate netdev news ntpd nvram operator plugdev polkituser prosody proxy sambashare saned sasl scanner shadow src ssh ssl-cert sudo syslog tape timidity tty users utmp uucp video voice www-data

Revision history for this message
Jordan Braughler (inclusive-disjunction) wrote :
visibility: private → public
Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Thanks for reporting the crash!

Unfortunately the backtraces contain no debugging information, which is to be expected since the binaries in the joystick package contain no such information. Could you possible rebuild the package with debugging information, and try running jscal again? Here's the sequence of commands to do this (in a terminal window):
    apt-get source joystick
    sudo apt-get build-dep joystick
    sudo apt-get install build-essential
    cd joystick-20051019
    DEB_BUILD_OPTIONS=nostrip dpkg-buildpackage -us -uc
This will produce an unstripped jscal binary in utils; simply run it with
    ./utils/jscal -c /dev/input/js0

Thanks in advance!

Revision history for this message
Jordan Braughler (inclusive-disjunction) wrote :

That doesn't seem to create a core dump, though, and apport doesn't detect the crash.

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Does the newly-built jscal still crash, or does it work correctly?

Revision history for this message
Jordan Braughler (inclusive-disjunction) wrote :

Yes, it still crashes, with the same error. It just doesn't seem to generate a crash report or any debug output.

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

OK, so it should be possible to get a backtrace with gdb. Could you try running
    gdb --args ./utls/jscal -c /dev/input/js0
(from the joystick-20051019 directory), then typing
    run
at the gdb prompt? When jscal crashes gdb should stop it and tell you about the crash; typing
    bt
at that point should produce the backtrace including source code.

Thanks!

Revision history for this message
Jordan Braughler (inclusive-disjunction) wrote :

#0 wait_for_event (d=-32767, s=0x6048c0) at jscal.c:104
#1 0x0000000000402080 in calibrate () at jscal.c:235
#2 0x0000000000402823 in main (argc=<value optimized out>, argv=0x7fffffffe768) at jscal.c:754

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Thanks, it looks like the keyboard is reporting more axes than jscal supports; could you show me the output of jscal before it crashes? It should print out a bunch of information starting with "Joystick has ... axes and ... buttons", then "Correction for axis ... is ..., precision is ..." etc.

Revision history for this message
Jordan Braughler (inclusive-disjunction) wrote :
Download full text (3.4 KiB)

Joystick has 37 axes and 127 buttons.
Correction for axis 0 is none (raw), precision is 0.
Correction for axis 1 is none (raw), precision is 0.
Correction for axis 2 is none (raw), precision is 0.
Correction for axis 3 is none (raw), precision is 0.
Correction for axis 4 is none (raw), precision is 0.
Correction for axis 5 is none (raw), precision is 0.
Correction for axis 6 is none (raw), precision is 0.
Correction for axis 7 is none (raw), precision is 0.
Correction for axis 8 is none (raw), precision is 0.
Correction for axis 9 is none (raw), precision is 0.
Correction for axis 10 is none (raw), precision is 0.
Correction for axis 11 is none (raw), precision is 0.
Correction for axis 12 is none (raw), precision is 0.
Correction for axis 13 is none (raw), precision is 0.
Correction for axis 14 is none (raw), precision is 0.
Correction for axis 15 is none (raw), precision is 0.
Correction for axis 16 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 17 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 18 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 19 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 20 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 21 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 22 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 23 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 24 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 25 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 26 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 27 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 28 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 29 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 30 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 31 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 32 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 33 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 34 is broken line, precision is 0.
Coeficients are: 127, 127, 4227330, 4227330
Correction for axis 35 is broken line,...

Read more...

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Could you please try the attached file? It replaces jscal.c in joystick-20051019; to rebuild jscal using this file, simply do (starting from the joystick-20051019 directory)
    cd utils
    make
and then
    ./jscal -c /dev/input/js0
(rebuilding using dpkg-buildpackage will not work because of the patch-system in use).

Revision history for this message
Jordan Braughler (inclusive-disjunction) wrote :

That seems to fix the crash. Unfortunately, I just realized that none of the axes seem to be tied to an actual switch on my keyboard, so I can't calibrate it or stop it from throwing some games out of control. Yet another brilliant product by Microsoft :)

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Thanks for the feedback, I'll upload a fixed version to Debian one of these days, and it will make its way to Ubuntu on its own (I'd like to address #497835 as well).

I had a look at some photos of your keyboard, and it is indeed hard to figure out how it would support 37 axes! If you want to disable the joystick support to avoid problems in games, assuming you don't actually have another joystick or gamepad, you can add a file to /etc/modprobe.d to blacklist the joydev driver, named for example blacklist-joydev.conf and simply containing
    blacklist joydev
This will stop /dev/input/js0 from being created. You can try the fix by running
    sudo rmmod joydev
from a command-line.

Revision history for this message
Jordan Braughler (inclusive-disjunction) wrote :

No problem. Thanks for the tip about joydev.

Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 ?? ()
 ?? ()
 ?? ()
 __libc_start_main () from /lib/libc.so.6
 ?? ()

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
tags: added: apport-failed-retrace
tags: removed: need-amd64-retrace
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package joystick - 20051019-12

---------------
joystick (20051019-12) unstable; urgency=low

  * Use the correct maximum number of axes. LP: #595767.
  * Small fixes to the manpages.
  * Correct all remaining ioctl() checks. Closes: #587439.
  * Explain the purpose of calibration and how to determine whether a
    joystick is calibrated. LP: #497835.
  * Standards-Version 3.9.0: use Breaks rather than Conflits, and
    incidentally move the Breaks on dvb-utils to evtest where it really
    belongs.
 -- Alessio Treglia <email address hidden> Sun, 11 Jul 2010 00:13:43 +0200

Changed in joystick (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.