Opened 11 years ago

Closed 9 years ago

#2353 closed bug (fixed)

double lock of "usb busmanager lock"

Reported by: monni Owned by: oruizdorantes
Priority: normal Milestone: R1
Component: Network & Internet/Bluetooth Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

Crashed while restart

Last holder: bluetooth_server

<uhci>:Lock10BusManager + 0x001b <uhci>:AddPendingTransfer4UHCIP8TransferP5QueueP7uhci_qhP7uhci_tdT4b + 0x00ba <uhci>:SubmitTransfer4UHCIP8Transfer + 0x013c <usb>:QueueInterrupt13InterruptPipePvUlPFPvlPvUl_vT1 + 0x008f <usb>:queue_interruptFUlPvUlPFPvlPvUl_vT1 + 0x0071 <usb>:queue_interrupt_v2FPCvPvUlPFPvlPvUl_vT1 + 0x0031 </boot/beos/system/add-ons/kernel/drivers/bluetooth/dev/bluetooth/h2generic>:event_complete + 0x006d <uhci>:Finished8TransferUlUl + 0x0027 <usb>:CancelQueuedTransfers4Pipeb + 0x002b <usb>:cancel_queued_transfersFUl + 0x0067 <usb>:cancel_queued_transfers_v2FPCv + 0x001f </boot/beos/system/add-ons/kernel/drivers/bluetooth/dev/bluetooth/h2generic>:device_close + 0x00a6 <kernel>:devfs_closeFP9fs_volumeP8fs_vnodePv + 0x0035 <kernel>:file_closeFP15file_descriptor + 0x004c <kernel>:close_fd + 0x0044 <kernel>:vfs_free_io_context + 0x006f <kernel>:team_delete_team + 0x01f0 <kernel>:thread_exit + 0x035c <kernel>:handle_signals + 0x0384 <kernel>:thread_at_exit_kernel + 0x0076 <kernel>:kernel_exit_handle_signals + 0x0006

Change History (4)

comment:1 by mmlr, 11 years ago

This is also a USB problem to some extent. The HCD (UHCI in this case) does not allow transfers to be scheduled while canceling transfers at the same time. Generally you would not want to do that anyway and in this case it definitely looks like a bug in h2generic, as when explicitly canceling transfers, no resubmit should happen (checking for B_CANCELED status in event_complete would be correct). But I see that in a timeout + cancel + reset operation it could be a valid use case and the HCD should not disallow it. Will try to correct that from a USB standpoint, but h2generic needs be fixed for this case and with this bug report.

comment:2 by mmlr, 11 years ago

The USB part is fixed in hrev25861, though this only hides the probably incorrect handling of the cancel case within h2generic.

comment:3 by oruizdorantes, 11 years ago

Status: newassigned

Totally,

All the process of unplug, remove, cleanups and so on. I might just be able to say that there is just some code for handling it. But is not yet tested, or meant to work.

I keep the bug :)

comment:4 by oruizdorantes, 9 years ago

Resolution: fixed
Status: in-progressclosed

Fixed in hrev31053

Note: See TracTickets for help on using tickets.