package: cpqarrayd
version: 2.3-1

When checking for controllers, cpdarrayd is being hit by a SEGABRT.
Investigation by the original reporter seems to show the
cciss_event_type struct is one byte shorter than needed: 511 bytes,
instead of 512.

Increasing the struct padding by one seems to have resolved the issue.

Original Ubuntu bug:
https://bugs.edge.launchpad.net/ubuntu/+source/cpqarrayd/+bug/409060

Ubuntu 9.;10 Karmic Koala.

The reporter has proposed a patch, at
http://launchpadlibrarian.net/29912354/cpqarrayd_2.3-1ubuntu1.debdiff

Thank you,

Staktrace:

GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show
copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) handle SIG33 pass nostop noprint
Signal        Stop      Print   Pass to program Description
SIG33         No        No      Yes             Real-time event 33
(gdb) set pagination 0
(gdb) run -d -v
Starting program: /usr/sbin/cpqarrayd 
Checking for controllers.. 
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/2/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/2/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/2/0
DEBUG: Discarding old event 1/0/0
DEBUG: Discarding old event 4/0/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 1/0/1
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 1/0/0
DEBUG: Discarding old event 4/0/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 1/0/1
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/0/0
DEBUG: Discarding old event 5/0/0

Program received signal SIGABRT, Aborted.
0xb7fb6424 in __kernel_vsyscall ()
(gdb) backtrace full
#0  0xb7fb6424 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb7e766d0 in raise () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#2  0xb7e78098 in abort () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#3  0xb7eb424d in ?? () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#4  0xb7f48da8 in __fortify_fail () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#5  0xb7f48d60 in __stack_chk_fail () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#6  0x08049695 in cciss_interrogate_controller (opts={debug = 0 '\0',
verbose = 0 '\0', syslog = 0 '\0', fork = 0 '\0', traphosts = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, nr_traphosts = 0},
devicefile=0x804b5d1 "/dev/cciss/c0d0") at discover.c:336
        devicefd = 5
        logicalluns = {LUNlist_len = "\000\000\000\b", reserved = 0, luns =
{{LunAddrBytes = "\000\000\...@\000\000\000", SCSI3Lun = {{PeripDev =
{Dev = 0 '\0', Bus = 0 '\0', Mode = 0 '\0'}, LogDev = {DevLSB = 0 '\0',
DevMSB = 0 '\0', Mode = 0 '\0'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0',
Targ = 0 '\0', Mode = 0 '\0'}}, {PeripDev = {Dev = 0 '\0', Bus = 0 '\0',
Mode = 1 '\001'}, LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode = 1
'\001'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 1
'\001'}}, {PeripDev = {Dev = 0 '\0', Bus = 0 '\0', Mode = 0 '\0'},
LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode = 0 '\0'}, LogUnit =
{Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 0 '\0'}}, {PeripDev =
{Dev = 0 '\0', Bus = 0 '\0', Mode = 0 '\0'}, LogDev = {DevLSB = 0 '\0',
DevMSB = 0 '\0', Mode = 0 '\0'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0',
Targ = 0 '\0', Mode = 0 '\0'}}}, PhysDev = {TargetId = 0, Bus = 0, Mode
= 1, Target = {{PeripDev = {Dev = 0 '\0', Bus = 0 '\0', Mode = 0 '\0'},
LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode = 0 '\0'}, LogUnit =
{Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 0 '\0'}}, {PeripDev =
{Dev = 0 '\0', Bus = 0 '\0', Mode = 0 '\0'}, LogDev = {DevLSB = 0 '\0',
DevMSB = 0 '\0', Mode = 0 '\0'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0',
Targ = 0 '\0', Mode = 0 '\0'}}}}, LogDev = {VolId = 0, Mode = 1,
reserved = "\000\000\000"}}, {LunAddrBytes = "\000\000\000\000\000\000
\000", SCSI3Lun = {{PeripDev = {Dev = 0 '\0', Bus = 0 '\0', Mode = 0
'\0'}, LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode = 0 '\0'},
LogUnit = {Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 0 '\0'}},
{PeripDev = {Dev = 0 '\0', Bus = 0 '\0', Mode = 0 '\0'}, LogDev =
{DevLSB = 0 '\0', DevMSB = 0 '\0', Mode = 0 '\0'}, LogUnit = {Dev = 0
'\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 0 '\0'}}, {PeripDev = {Dev = 0
'\0', Bus = 0 '\0', Mode = 0 '\0'}, LogDev = {DevLSB = 0 '\0', DevMSB =
0 '\0', Mode = 0 '\0'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0', Targ = 0
'\0', Mode = 0 '\0'}}, {PeripDev = {Dev = 0 '\0', Bus = 0 '\0', Mode = 0
'\0'}, LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode = 0 '\0'},
LogUnit = {Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 0 '\0'}}},
PhysDev = {TargetId = 0, Bus = 0, Mode = 0, Target = {{PeripDev = {Dev =
0 '\0', Bus = 0 '\0', Mode = 0 '\0'}, LogDev = {DevLSB = 0 '\0', DevMSB
= 0 '\0', Mode = 0 '\0'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0', Targ =
0 '\0', Mode = 0 '\0'}}, {PeripDev = {Dev = 0 '\0', Bus = 0 '\0', Mode =
0 '\0'}, LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode = 0 '\0'},
LogUnit = {Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 0 '\0'}}}},
LogDev = {VolId = 0, Mode = 0, reserved = "\000\000\000"}} <repeats 15
times>}}
        event = {timestamp = 0, class = {class = 0, subclass = 0, detail = 0},
detail = {physicaldrivechange = {physicaldrivenumber = 0,
configureddriveflag = 0 '\0', sparedriveflag = 0 '\0',
bigphysicaldrivenumber = 0 '\0', enclosurebaynumber = 0 '\0'},
powersupplydetail = {port = 0, psubid = 0, box = 0}, fandatadetail =
{port = 0, fanid = 0, box = 0}, upsdetail = {port = 0, psupid = 0},
redctrldetail = {slot = 0}, temperaturedetail = {port = 0, sensorid = 0,
box = 0}, chassisdetail = {port = 0, reserved = 0, box = 0},
phystatchange = {physicaldrivenumber = 0, failurereason = 0 '\0',
configureddriveflag = 0 '\0', sparedriveflag = 0 '\0',
bigphysicaldrivenumber = 0 '\0', enclosurebaynumber = 0 '\0'},
logstatchange = {logicaldrivenumber = 0, previouslogicaldrivestate = 0
'\0', newlogicaldrivestate = 0 '\0', currentsparestatus = 0 '\0'},
rebuildaborted = {logicaldrivenumber = 0, replacementdrive = 0 '\0',
errordrive = 0 '\0', bigreplacementdrive = 0 '\0', bigerrordrive = 0
'\0'}, logfatalerrorio = {logicaldrivenumber = 0, logicalblockaddress =
0, logicalblockcount = 0, logicalcommand = 0 '\0', fataldrivebus = 0
'\0', fataldriveid = 0 '\0', biglogicalblockaddress = 0}, surfacedata =
{logicaldrivenumber = 0}, redstatchange = {preferredslotcontrol = 0
'\0', currentredundancymode = 0 '\0', redundantcontrollerstatus = 0
'\0', redundantfailurereason = 0 '\0', previousslotcontrol = 0 '\0',
previousredundancymode = 0 '\0', previousredundantctrlrstatus = 0 '\0',
previousredundantfailurereason = 0 '\0'}, loophwinfo = {bus = 0}, data =
'\0' <repeats 63 times>}, mesgstring = "No events to report.", '\0'
<repeats 59 times>, tag = 0, time = {month = 0 '\0', day = 0 '\0', year
= 0, seconds = 0}, prepowertime = 0, deviceaddr = {LunAddrBytes = "\000
\000\000\000\000\000\000", SCSI3Lun = {{PeripDev = {Dev = 0 '\0', Bus =
0 '\0', Mode = 0 '\0'}, LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode
= 0 '\0'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode =
0 '\0'}}, {PeripDev = {Dev = 0 '\0', Bus = 0 '\0', Mode = 0 '\0'},
LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode = 0 '\0'}, LogUnit =
{Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 0 '\0'}}, {PeripDev =
{Dev = 0 '\0', Bus = 0 '\0', Mode = 0 '\0'}, LogDev = {DevLSB = 0 '\0',
DevMSB = 0 '\0', Mode = 0 '\0'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0',
Targ = 0 '\0', Mode = 0 '\0'}}, {PeripDev = {Dev = 0 '\0', Bus = 0 '\0',
Mode = 0 '\0'}, LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode = 0
'\0'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 0
'\0'}}}, PhysDev = {TargetId = 0, Bus = 0, Mode = 0, Target = {{PeripDev
= {Dev = 0 '\0', Bus = 0 '\0', Mode = 0 '\0'}, LogDev = {DevLSB = 0
'\0', DevMSB = 0 '\0', Mode = 0 '\0'}, LogUnit = {Dev = 0 '\0', Bus = 0
'\0', Targ = 0 '\0', Mode = 0 '\0'}}, {PeripDev = {Dev = 0 '\0', Bus = 0
'\0', Mode = 0 '\0'}, LogDev = {DevLSB = 0 '\0', DevMSB = 0 '\0', Mode =
0 '\0'}, LogUnit = {Dev = 0 '\0', Bus = 0 '\0', Targ = 0 '\0', Mode = 0
'\0'}}}}, LogDev = {VolId = 0, Mode = 0, reserved = "\000\000\000"}},
padding = '\0' <repeats 334 times>}
        result = <value optimized out>
#7  0x08049f2d in discover_controllers (opts={debug = 0 '\0', verbose =
0 '\0', syslog = 0 '\0', fork = 0 '\0', traphosts = {0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, nr_traphosts = 0}) at discover.c:113
        cntr = 0
        foundone = 0
#8  0x08048ef8 in main (argc=1, argv=0xbf8d2624) at cpqarrayd.c:172
        option = <value optimized out>
        opts = {debug = 0 '\0', verbose = 0 '\0', syslog = 0 '\0', fork = 0
'\0', traphosts = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
nr_traphosts = 0}
        i = <value optimized out>
        pidfile = <value optimized out>
        myhandler = {__sigaction_handler = {sa_handler = 0x8, sa_sigaction =
0x8}, sa_mask = {__val = {64, 4, 4, 3085269840, 225011984, 3213697288,
3086744760, 3085292574, 3086710168, 4, 3086703280, 3086704016,
3213688834, 3086769512, 3085292550, 3086703292, 3086827508, 3086703380,
1, 3213697412, 3086745773, 1429956, 1429956, 7740, 3086827508,
3086702680, 3086811208, 3213697360, 3086763767, 2090266759, 3086702680,
65320836}}, sa_flags = 3, sa_restorer = 0xb7e4ed10}
        buffer = "\001\000\000\000ô?ý·\207ð\226|(Hý·p\"\215¿¿\002ü·`\"\215
¿ðrû·T\"\215¿ÌGý·\000\000\000\000\220]û·\000\000\000\000\000\000\000\000
\001\000\000\000 ÊDB &\215¿8Xû·\000\000\000\000ô?ý·pFý·`\"\215¿T\"\215
¿÷Fü·\001\000\000\000\000\000\000\000à#\215¿ Bý·\205uû·", '\0' <repeats
12 times>, " Fü·ô?ý·\000\000\000\0000\"\215¿\030\"\215¿õÀü·\b\000\000
\000\f\000\000\000\000[û·ð#\215¿bAü·\000[û·\020[û·\f\000\000\000ô?ý·\001
\000\000\000 Bý·\000\000\000\000 F"...
        myhost = <value optimized out>
(gdb) info registers
eax            0x0      0
ecx            0x364e   13902
edx            0x6      6
ebx            0x364e   13902
esp            0xbf8d15b8       0xbf8d15b8
ebp            0xbf8d15d0       0xbf8d15d0
esi            0x0      0
edi            0xb7fa9ff4       -1208311820
eip            0xb7fb6424       0xb7fb6424 <__kernel_vsyscall+16>
eflags         0x246    [ PF ZF IF ]
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to