Accelio hangs for more than 2 hours when closing a connection, that has been closed by the peer already.

Bug #1328330 reported by Dmitry Kiselev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Accelio
Invalid
High
Unassigned

Bug Description

The general expectation (correct me, if not, please) is that if the xio_disconnect is called twice, there is no hang and the second call just returns with an error (or even without).

If that's not the case, then we have to maintain a more complex state machine duplicating the Accelio states on the caller's side.

That is specifically important for a synchronous usage pattern, where the event loops are not spinned permanently and we have to save the statuses.

On a side note, if I call xio_connection_destroy twice, I get a crash (Signal 11).

All that is on a Linux platform.

Best regards,
Dmitry

description: updated
Eyal Salomon (esalomon)
Changed in accelio:
importance: Undecided → High
Revision history for this message
Eyal Salomon (esalomon) wrote :

Dmitry,

few observations:
1. calling xio_disconnect can be called more then one time. since calling disconnect change the state of the connection,
calling it again should return immediately, and this is safe to do.
2. calling xio_connection_destroy is not allowed, since connection is destroyed by this function, and calling this function again with freed (but not NULL) pointer will result in crash

I haven`t succeed in reproducing this bug. if you can send a clear flow that would be very helpful

Revision history for this message
Dmitry Kiselev (dmitri-kiselev) wrote :

Eyal,

thanks for your response.
I think we can close it for now, since it is quite specific to the implementation on our side and I did modify it, so it works now.
It is not easy to reproduce it, since there is a lot of code potentially involved.
If it pops up again, I'll report it with more detail.

Revision history for this message
Dmitry Kiselev (dmitri-kiselev) wrote :

Very hard to reproduce. After a few changes on our side, the problem dissapeared.

Changed in accelio:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.