Opened 10 years ago

Last modified 10 years ago

#10507 closed bug

Returning B_OK from DeviceAdded() callback, causing a SIGABRT — at Version 1

Reported by: codewrangler Owned by: nobody
Priority: normal Milestone: R1
Component: Kits/Device Kit Version: R1/Development
Keywords: USB Cc:
Blocked By: Blocking:
Platform: x86

Description (last modified by anevilyak)

I get (3) DeviceAdded notifications (of Types 0,9,9), which I assume are the USB 'devices' already attached to the system (VMWare Fusion 6.x). After returning B_OK, from the last callback (same for all 3), I get a SIGABRT (according to gdb).

Here is the backtrace:

(gdb) backtrace
#0  0x609a2114 in ?? ()
#1  0x006624eb in send_signal () from /boot/system/lib/libroot.so
#2  0x006624a2 in raise () from /boot/system/lib/libroot.so
#3  0x006b5c49 in abort () from /boot/system/lib/libroot.so
#4  0x00643140 in __default_terminate () from /boot/system/lib/libroot.so
#5  0x0064315d in __terminate () from /boot/system/lib/libroot.so
#6  0x00644744 in __pure_virtual () from /boot/system/lib/libroot.so
#7  0x00e59b1d in WatchedEntry::~WatchedEntry ()
   from /boot/system/lib/libdevice.so
#8  0x00e59af6 in WatchedEntry::~WatchedEntry ()
   from /boot/system/lib/libdevice.so
#9  0x00e59af6 in WatchedEntry::~WatchedEntry ()
   from /boot/system/lib/libdevice.so
#10 0x00e5a0bd in RosterLooper::Stop () from /boot/system/lib/libdevice.so
#11 0x00e5a3df in BUSBRoster::Stop () from /boot/system/lib/libdevice.so
#12 0x00e5a2b9 in BUSBRoster::~BUSBRoster () from /boot/system/lib/libdevice.so
#13 0x012821f3 in USBHandler::~USBHandler (this=0x1837d018, __in_chrg=3)
    at /boot/home/projects/MonitorCCID/MonitorCCIDApp.cpp:121
#14 0x01282015 in MonitorCCIDWindow::StartMonitoring (this=0x18382f80)
    at /boot/home/projects/MonitorCCID/MonitorCCIDApp.cpp:81
#15 0x01281e6b in MonitorCCIDWindow::MonitorCCIDWindow (this=0x18382f80)
    at /boot/home/projects/MonitorCCID/MonitorCCIDApp.cpp:48
#16 0x01281d2d in MonitorCCIDApp::ReadyToRun (this=0x72bd3444)
    at /boot/home/projects/MonitorCCID/MonitorCCIDApp.cpp:40
---Type <return> to continue, or q <return> to quit---
#17 0x0103be91 in BApplication::DispatchMessage ()
   from /boot/system/lib/libbe.so
#18 0x01046e0d in BLooper::task_looper () from /boot/system/lib/libbe.so
#19 0x0103a9fd in BApplication::Run () from /boot/system/lib/libbe.so
#20 0x01282137 in main ()
    at /boot/home/projects/MonitorCCID/MonitorCCIDApp.cpp:113

Change History (1)

comment:1 by anevilyak, 10 years ago

Component: - GeneralKits/Device Kit
Description: modified (diff)
Priority: blockernormal

It'd be helpful to be able to see the code in question, as the backtrace hints at mem corruption, such as a double delete.

Note: See TracTickets for help on using tickets.