HomeFreeBSD

In remote_send_thread, if sending a request fails don't take the

Description

In remote_send_thread, if sending a request fails don't take the
request back from the receive queue -- it might already be processed
by remote_recv_thread, which lead to crashes like below:

(primary) Unable to receive reply header: Connection reset by peer.
(primary) Unable to send request (Connection reset by peer):
    WRITE(954662912, 131072).
(primary) Disconnected from kopusha:7772.
(primary) Increasing localcnt to 1.
(primary) Assertion failed: (old > 0), function refcnt_release,
    file refcnt.h, line 62.

Taking the request back was not necessary (it would properly be
processed by the remote_recv_thread) and only complicated things.

MFC after: 2 weeks

Details

Provenance
trocinyAuthored on Dec 10 2013, 8:05 PM
Parents
rG4d70e06ffc41: Fix compiler warnings.
Branches
Unknown
Tags
Unknown

Event Timeline