From: Tuong Lien <tuong.t.l...@dektech.com.au> Date: Wed, 8 Jan 2020 09:18:15 +0700
> When a socket is suddenly shutdown or released, it will reject all the > unreceived messages in its receive queue. This applies to a connected > socket too, whereas there is only one 'FIN' message required to be sent > back to its peer in this case. > > In case there are many messages in the queue and/or some connections > with such messages are shutdown at the same time, the link layer will > easily get overflowed at the 'TIPC_SYSTEM_IMPORTANCE' backlog level > because of the message rejections. As a result, the link will be taken > down. Moreover, immediately when the link is re-established, the socket > layer can continue to reject the messages and the same issue happens... > > The commit refactors the '__tipc_shutdown()' function to only send one > 'FIN' in the situation mentioned above. For the connectionless case, it > is unavoidable but usually there is no rejections for such socket > messages because they are 'dest-droppable' by default. > > In addition, the new code makes the other socket states clear > (e.g.'TIPC_LISTEN') and treats as a separate case to avoid misbehaving. > > Acked-by: Ying Xue <ying....@windriver.com> > Acked-by: Jon Maloy <jon.ma...@ericsson.com> > Signed-off-by: Tuong Lien <tuong.t.l...@dektech.com.au> Applied. _______________________________________________ tipc-discussion mailing list tipc-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tipc-discussion