Re: [PATCH 1/6] Bluetooth: Fix deadlock when closing socket

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marcel,

On Thu, Sep 06, 2012 at 01:10:51PM -0700, Marcel Holtmann wrote:
> Hi Mat,
> 
> > > If we have unacked frames when closing bluetooth socket we deadlock
> > > since conn->chan_lock, chan->lock and socket lock are taken. Remove
> > > __l2cap_wait_ack completely.
> > >
> > > Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@xxxxxxxxx>
> > 
> > I don't think you want to remove this code completely, at least not 
> > without giving some thought to the problem it is solving.
> > 
> > The problem is that programs may have an open socket which they send 
> > some data on, then immediately close.  There is no feedback when data 
> > is actually sent over the air, so the socket may end up getting torn 
> > down while there is still data in the HCI tx buffer or some data was 
> > lost and needs to be retransmitted.  Waiting for an acknowledgement 
> > confirms that the application's sent data made it to the remote 
> > device.
> > 
> > Without this code, it's difficult to use l2test on a number of 
> > qualification tests.  Profiles or applications using ERTM may depend 
> > on the "wait for ack before closing" behavior in order to have a clean 
> > disconnect.
> 
> isn't that what we have SO_LINGER for?

Looking at the code I suspect that SO_LINGER is not working. Maybe we need
to merge linger code and wait_ack stuff.

Best regards 
Andrei Emeltchenko 

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux