Branch: refs/heads/sctp-fixes
Home: https://github.com/kronosnet/kronosnet
Commit: 1b3649063b3459a509223b512ba7427318d1b9e8
https://github.com/kronosnet/kronosnet/commit/1b3649063b3459a509223b512ba74…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/threads_rx.c
Log Message:
-----------
[rx] send reply packets only when transport is connected
Signed-off-by: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Commit: 2f5d9ae8eab5461137dc634abda1131af24a4aa1
https://github.com/kronosnet/kronosnet/commit/2f5d9ae8eab5461137dc634abda11…
Author: Christine Caulfield <ccaulfie(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/transport_common.c
M libknet/transport_sctp.c
Log Message:
-----------
[rx] Don't return 512 EOF messages from _recvmmsg
If recvmsg() returns 0 for EOF then it's going to do so
until the error is rectified or read with getsockopt(). But
the _recvmmsg() wrapper keeps reading until the vector is full
thus returning a block of 512 EOF messages all of which the caller
has to plough through.
This patch causes _recvmmsg() to return as soon as it has got
the first EOF so the the caller can deal with it in good time
and not spin looking at the same thing over and over again.
I've also fixed a couple of typos in related comments
Commit: 1c2c8981a8fc19407139eb7e0dc0d6b3f349e4fc
https://github.com/kronosnet/kronosnet/commit/1c2c8981a8fc19407139eb7e0dc0d…
Author: Christine Caulfield <ccaulfie(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/transport_common.c
Log Message:
-----------
[tx] Don't Clear out msghdr for all transports.
When sending a message to multiple links, if one of those links
is not connection-oriented then msg_name & msg_namelen would be cleared,
thus breaking the send to any subsequent non-connection-oriented links.
So now, if we need to clear out msg_name & msg_namelen, we take a copy of the
msghdr and edit that instead,
Commit: 523661592053a983f3d2d92e5e1037ab7369a5b7
https://github.com/kronosnet/kronosnet/commit/523661592053a983f3d2d92e5e103…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/threads_rx.c
M libknet/transport_udp.c
M libknet/transports.h
Log Message:
-----------
[rx] use defines to determine RX data types vs random numbers
also extend a bit to make ready for SCTP extra return codes
Signed-off-by: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Commit: a785aa9b5b2f101adbc275e950147f46aa22905c
https://github.com/kronosnet/kronosnet/commit/a785aa9b5b2f101adbc275e950147…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/transport_sctp.c
Log Message:
-----------
[sctp] major surgery to use only SCTP events to determine socket status
- drop concept of on_connected_epoll to determine if socket is ready or not
- provide much better debugging output at all levels
- incorporate fix from Xin Long <lxin(a)redhat.com> to gather socket status
at the right time
- deal with a recent kernel change on SCTP socket that broke knet (from rhel7):
[net] sctp: allow delivering notifications after receiving SHUTDOWN
Signed-off-by: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Compare: https://github.com/kronosnet/kronosnet/compare/142f6fb4c758...a785aa9b5b2f
Branch: refs/heads/master
Home: https://github.com/kronosnet/kronosnet
Commit: d2a30ac0135c15eebce25a89f943e9062e1b3f6c
https://github.com/kronosnet/kronosnet/commit/d2a30ac0135c15eebce25a89f943e…
Author: Christine Caulfield <ccaulfie(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/transport_udp.c
Log Message:
-----------
[udp] don't make socket spin if a network I/F is down
UDP treats ENETUNREACH as a temporary error and just retries,
but this causes the TX thread to spin just doing sendto() therefore
blocking all other traffic.
(To reproduce this try starting corosync with 2 links configured in
corosync.conf but only one of them configured to the 'right' address
- it will spin in a tight loop and need to be killed with -9)
SCTP does not seem to suffer from this.
Commit: e40c7cb51e25af25bc967210e4ec0a7fb5d46b42
https://github.com/kronosnet/kronosnet/commit/e40c7cb51e25af25bc967210e4ec0…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/transport_udp.c
Log Message:
-----------
Merge pull request #278 from kronosnet/dont-spin-enetunreach
[udp] don't make socket spin if a network I/F is down
Compare: https://github.com/kronosnet/kronosnet/compare/fa6565c72aa7...e40c7cb51e25
Branch: refs/heads/dont-spin-enetunreach
Home: https://github.com/kronosnet/kronosnet
Commit: d2a30ac0135c15eebce25a89f943e9062e1b3f6c
https://github.com/kronosnet/kronosnet/commit/d2a30ac0135c15eebce25a89f943e…
Author: Christine Caulfield <ccaulfie(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/transport_udp.c
Log Message:
-----------
[udp] don't make socket spin if a network I/F is down
UDP treats ENETUNREACH as a temporary error and just retries,
but this causes the TX thread to spin just doing sendto() therefore
blocking all other traffic.
(To reproduce this try starting corosync with 2 links configured in
corosync.conf but only one of them configured to the 'right' address
- it will spin in a tight loop and need to be killed with -9)
SCTP does not seem to suffer from this.
Branch: refs/heads/dont-spin-enetunreach
Home: https://github.com/kronosnet/kronosnet
Commit: 5a11955f722dc950ab5fffaf074c8942d13bf86d
https://github.com/kronosnet/kronosnet/commit/5a11955f722dc950ab5fffaf074c8…
Author: Christine Caulfield <ccaulfie(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/transport_udp.c
Log Message:
-----------
[udp] don't make socket spin if a network I/F is down
UDP treats ENETUNREACH as a temporary error and just retries,
but this causes the TX thread to spin just doing sendto() therefore
blocking all other traffic.
(To reproduce this try starting corosync with 2 links configured in
corosync.conf but only one of them configured to the 'right' address
- it will spin in a tight loop and need to be killed with -9)
SCTP does not seem to suffer from this.
Branch: refs/heads/dont-spin-enetunreach
Home: https://github.com/kronosnet/kronosnet
Commit: e961b6bed9f3f2e3fee9720a984eb795d2bc31bb
https://github.com/kronosnet/kronosnet/commit/e961b6bed9f3f2e3fee9720a984eb…
Author: Christine Caulfield <ccaulfie(a)redhat.com>
Date: 2020-01-24 (Fri, 24 Jan 2020)
Changed paths:
M libknet/transport_udp.c
Log Message:
-----------
[udp] don't make socket spin if a network I/F is down
UDP treats ENETUNREACH as a temporary error and just retries,
but this causes the TX thread to spin just down sendto() therefore
blocking all other traffic.
(To reproduce this try starting corosync with 2 links configured in
corosync/conf but only one of them configured to the 'right' address
- it will spin in a tight loop and need to be killed with -9)
SCTP does not seem to suffer from this.