Bug 358800

Summary: sysp -s <something> segfaults in libhd
Product: [openSUSE] openSUSE 11.0 Reporter: Michal Marek <mmarek>
Component: SaX2Assignee: Marcus Schaefer <ms>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Blocker    
Priority: P5 - None CC: casualprogrammer, coolo, snwint
Version: Alpha 2   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: full backtrace

Description Michal Marek 2008-02-05 11:26:00 UTC
# strace -feexecve sax2
...
SaX: initializing please wait...
SaX: your current configuration will not be read in
...
SaX: no X-Server is running
SaX: will start own server if needed
...
[pid  3483] execve("/usr/sbin/sysp", ["/usr/sbin/sysp"..., "-s"..., "mouse"...], [/* 69 vars */]) = 0
[pid  3483] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 3483 detached
...
[pid  3486] execve("/usr/sbin/sysp", ["/usr/sbin/sysp"..., "-s"..., "keyboard"...], [/* 69 vars */]) = 0
[pid  3486] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 3486 detached
...
[pid  3489] execve("/usr/sbin/sysp", ["/usr/sbin/sysp"..., "-s"..., "server"..., "-C"..., "all"..., "-M"..., "none"..., "-A"..., "no"...], [/* 69 vars */]) = 0
Process 3489 detached
(did not crash)
...
[pid  3492] execve("/usr/sbin/sysp", ["/usr/sbin/sysp"..., "-s"..., "xstuff"...], [/* 69 vars */]) = 0
[pid  3492] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 3492 detached
# gdb /usr/sbin/sysp
...
(gdb) r -s mouse
Starting program: /usr/sbin/sysp -s mouse

Program received signal SIGSEGV, Segmentation fault.
hd_free_hal_devices (dev=0x732a6362) at hd.c:980
980         free_mem(dev->udi);
(gdb) p dev->udi
Cannot access memory at address 0x732a636a
(gdb) bt
#0  hd_free_hal_devices (dev=0x732a6362) at hd.c:980
#1  0xb7dec679 in hd_scan (hd_data=0x897a058) at hd.c:1916
#2  0xb7dee40a in hd_list (hd_data=0x897a058, item=hw_mouse, rescan=1, 
    hd_old=0x0) at hd.c:3236
#3  0x08087065 in MouseGetData () at mouse.c:66
#4  0x08055521 in ScanMouse::Scan (this=0xbfb98dd0) at mouse.c:69
#5  0x080504ba in ScanModule (name=0x80962e0 "mouse") at sysp.c:249
#6  0x080512ba in main (argc=3, argv=0xbfb9bfc4) at sysp.c:211
(gdb)
Comment 1 Michal Marek 2008-02-05 11:28:13 UTC
Created attachment 193182 [details]
full backtrace
Comment 2 Steffen Winterfeldt 2008-02-05 11:46:13 UTC
If you are using hwinfo > alpha1 but < alpha2: there slipped an
unnoticed api incompatibility in. Meanwhile I increased the major version
so things will be fine again in alpha2.

If you think that's not it: please run 'hwinfo --version' and tell me
the exact version number.
Comment 3 Michal Marek 2008-02-05 12:56:39 UTC
I already have libhd.so.14 if you mean the .13 -> .14 change:
# hwinfo --version
14.0
# sax2 --version
SaX2 version 8.1 - SVN Release: 1.49 2003/03/17
# rpm -q --qf '%{name}-%{version}-%{release} %{buildtime:date}\n' hwinfo sax2
hwinfo-14.0-3 Sun Feb  3 03:41:25 2008
sax2-8.1-341 Mon Feb  4 20:22:27 2008
# sysp -s mouse
Segmentation fault

I don't see any newer RPMS in autobuild.
Comment 5 Steffen Winterfeldt 2008-02-05 13:35:00 UTC
sax2 comes with its own libhd copy. I think that interferes here.
Marcus, could you please correct this?
Comment 6 Marcus Schaefer 2008-02-05 14:51:44 UTC
no I don't use my own copy if the package is built for suse you can check
that with ldd. the binary uses the libhd of the system 
Comment 7 Steffen Winterfeldt 2008-02-05 15:12:33 UTC
That's not correct. You include the local copy of hd.h. The backtrace
in comment 0 is almost identical to the one I got when I hit the problem
myself.
Comment 8 Michal Marek 2008-02-05 15:14:14 UTC
Exactly. A build with 'rm -rf sysp/lib/libhd' in %prep just ended with:

make[3]: Entering directory `/usr/src/packages/BUILD/sax/sysp/lib/hw'
g++ -Wall -fpic -O2 -c -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -O2 -fpic -Wall mouse.c
In file included from mouse.c:17:
hwdata.h:25:28: error: ../libhd/hd/hd.h: No such file or directory
make[3]: *** [mouse.o] Error 1
make[3]: Leaving directory `/usr/src/packages/BUILD/sax/sysp/lib/hw'
make[2]: *** [libsysp.a] Error 2
make[2]: Leaving directory `/usr/src/packages/BUILD/sax/sysp/lib'
make[1]: *** [sysp] Error 2
make[1]: Leaving directory `/usr/src/packages/BUILD/sax/sysp'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.8141 (%build)
Comment 9 Stephan Kulow 2008-02-05 15:38:20 UTC
*** Bug 357285 has been marked as a duplicate of this bug. ***
Comment 10 Stephan Kulow 2008-02-05 15:43:40 UTC
I can't release alpha2 this way
Comment 11 Steffen Winterfeldt 2008-02-05 16:54:00 UTC
Following commment 8, replacing sysp/lib/libhd/hd/hd.h with the one
from /usr/include in %prep would probably do the trick. But it's deadugly.
Comment 12 Marcus Schaefer 2008-02-05 17:03:02 UTC
fixed, package submitted
Comment 13 Marcus Schaefer 2008-02-07 09:39:39 UTC
*** Bug 359450 has been marked as a duplicate of this bug. ***
Comment 14 Casual J. Programmer 2008-02-07 10:50:36 UTC
Continued from Bug 359450:

Can't be that old, it was only submitted to factory 04-Feb-2008 03:10.

http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/i586/sax2-8.1-339.i586.rpm

A bit more responsibility towards people spending their time on testing would be greatly appreciated.
Comment 15 Marcus Schaefer 2008-02-07 10:55:17 UTC
I understand your point unfortunately this problem appears very late
and I guess the tree couldn't be updated in time. I have fixed this
as fast as it was possible so I'm sorry for any problems you had
Comment 16 Stephan Kulow 2008-02-07 11:51:11 UTC
Casual J, "old" is relative.