Stange problems with CentOS 7 and roundrobin runner
by Ingo Brand
Hello,
I am currently setting up a high available NFS server cluster with 2
nodes using pacemaker + corosync + drbd + flashcache.
The two nodes (media1 and media2) have 4 1G copper nics each.
I formed 2 teams:
team0: LACP with em1 and em2 connected to a switch for NFS services
team1: roundrobin with em3 and em4 and MTU 9000 directly connected with
copper patch cables for drbd sync
During my testing everything was working as expected. Then I started to
tranfer about 20TB from an old server to the new cluster. The copy
process was fine for about 32 hours. Then corosync and drbd started to
report errors on the roundrobin team1 interface (see logs at the end of
this email).
The drbd sync and corosync started to flap between states for several
hours on team1.
I checked the error counters with ifconfig and found a huge amount off
TX dropped packets on team1 of the drbd slave node media2.
There were NO other error counters raising but team1 on media2.
To make this a bit more clear:
- team1 on media2 (the drbd slave) showed raising TX dropped packets
- em3 and em4 on media2 (the physical interfaces of team1) did not show
any raising error counters.
- team1 on media1 (the drbd master) did not show any raising error counters.
- em3 and em4 on media1 (the physical interfaces of team1) did not show
any raising error counters.
I then thought maybe one of the two patch cables between the two
machines was not 100% ok. So I removed em4 from team1 on both machines:
"teamdctl team1 port remove em4"
The error counters stopped raising.
I thought: "Yeah! That cable must be broken!"
But just to make sure I really found the problem I re-enabled em4 on
both nodes:
"teamdctl team1 port add em4"
Ok, now both team1 interfaces had 2 links up again and the error counter
restarted to raise again.
I then stopped em3 on both nodes to force all traffic through em4:
"teamdctl team1 port remove em3"
And guess what? The error counters on team1 stopped raising!
So in short:
If I remove either one of the two physical interfaces from team1
everything is working without any errors. As soon as I enable both
physical interfaces the error counters start to raise.
After these tests I rebooted the slave node (media2) and added both
ports to team1 again (Have you tried turning it off and on again...).
After doing this, I now see TX dropped packets on the not yet rebooted
media1 team1 interface.
Why do I only see these errors on the team1 interface and not on em3 and
em4?
Currently the copy process of 20TB is still running. I think that if I
reboot media1 everything will work as expected again for some time
because it worked during my initial tests.
But I do think that I hit a bug in the teaming driver and the raising
error counters will come back.
Could anybody help?
Kind regards
Ingo
This is the used network config of team1:
media1:
cat /etc/sysconfig/network-scripts/ifcfg-team1_slave_0
# Generated by parse-kickstart
NAME=team1 slave 0
TEAM_MASTER=team1
DEVICETYPE=TeamPort
DEVICE=em3
ONBOOT=yes
UUID=b7026c5b-e9cd-457c-93d2-a2799361ed90
cat /etc/sysconfig/network-scripts/ifcfg-team1_slave_1
# Generated by parse-kickstart
NAME=team1 slave 1
TEAM_MASTER=team1
DEVICETYPE=TeamPort
DEVICE=em4
ONBOOT=yes
UUID=fbe5bc56-95f5-4f9e-a5ea-ab6b6f5e5b50
cat /etc/sysconfig/network-scripts/ifcfg-team1
# Generated by parse-kickstart
UUID=4e0090cd-32d3-4c5b-be23-9f53083da4dd
NAME="Team connection team1"
TEAM_CONFIG="{\"runner\": {\"name\": \"roundrobin\"}}"
GATEWAY=
IPV6_AUTOCONF=yes
BOOTPROTO=none
DEVICE=team1
MTU=9000
TYPE=Team
ONBOOT=yes
IPV6INIT=yes
DEVICETYPE=Team
IPADDR0=192.168.101.31
PREFIX0=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
media2:
cat /etc/sysconfig/network-scripts/ifcfg-team1_slave_0
# Generated by parse-kickstart
NAME=team1 slave 0
TEAM_MASTER=team1
DEVICETYPE=TeamPort
DEVICE=em3
ONBOOT=yes
UUID=bfd8e77e-7eb8-47ea-ab7e-95286e073202
cat /etc/sysconfig/network-scripts/ifcfg-team1_slave_1
# Generated by parse-kickstart
NAME=team1 slave 1
TEAM_MASTER=team1
DEVICETYPE=TeamPort
DEVICE=em4
ONBOOT=yes
UUID=93c5dfd8-3b81-4d1e-8ba9-c46f8daceb1a
cat /etc/sysconfig/network-scripts/ifcfg-team1
# Generated by parse-kickstart
UUID=79c843db-996c-41e4-9ee5-2a8f3da244ed
NAME="Team connection team1"
TEAM_CONFIG="{\"runner\": {\"name\": \"roundrobin\"}}"
GATEWAY=
IPV6_AUTOCONF=yes
BOOTPROTO=none
DEVICE=team1
MTU=9000
TYPE=Team
ONBOOT=yes
IPV6INIT=yes
DEVICETYPE=Team
IPADDR0=192.168.101.32
PREFIX0=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
Here are some system logs from both machines:
============================================================
media1:
============================================================
Nov 6 02:31:27 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412041 iface 192.168.100.31 to [1 of 10]
Nov 6 02:31:29 media1 corosync[3657]: [TOTEM ] ring 0 active with no faults
Nov 6 02:31:29 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412047 iface 192.168.100.31 to [1 of 10]
Nov 6 02:31:31 media1 corosync[3657]: [TOTEM ] ring 0 active with no faults
Nov 6 02:32:51 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412315 iface 192.168.101.31 to [1 of 10]
Nov 6 02:32:53 media1 corosync[3657]: [TOTEM ] ring 1 active with no faults
Nov 6 02:32:53 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412319 iface 192.168.101.31 to [1 of 10]
Nov 6 02:32:54 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412321 iface 192.168.101.31 to [2 of 10]
Nov 6 02:32:55 media1 corosync[3657]: [TOTEM ] Decrementing problem
counter for iface 192.168.101.31 to [1 of 10]
Nov 6 02:32:56 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412325 iface 192.168.101.31 to [2 of 10]
Nov 6 02:32:57 media1 corosync[3657]: [TOTEM ] Decrementing problem
counter for iface 192.168.101.31 to [1 of 10]
Nov 6 02:32:58 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412327 iface 192.168.101.31 to [2 of 10]
Nov 6 02:32:59 media1 kernel: drbd r0: PingAck did not arrive in time.
Nov 6 02:32:59 media1 kernel: drbd r0: peer( Secondary -> Unknown )
conn( Connected -> NetworkFailure ) pdsk( UpToDate -> DUnknown )
Nov 6 02:32:59 media1 kernel: block drbd0: new current UUID
0C0308FA4F94F811:59E43E5FD7B26A4F:1963884285B385E6:1962884285B385E6
Nov 6 02:32:59 media1 kernel: drbd r0: asender terminated
Nov 6 02:32:59 media1 kernel: drbd r0: Terminating drbd_a_r0
Nov 6 02:32:59 media1 kernel: drbd r0: Connection closed
Nov 6 02:32:59 media1 kernel: drbd r0: conn( NetworkFailure ->
Unconnected )
Nov 6 02:32:59 media1 kernel: drbd r0: receiver terminated
Nov 6 02:32:59 media1 kernel: drbd r0: Restarting receiver thread
Nov 6 02:32:59 media1 kernel: drbd r0: receiver (re)started
Nov 6 02:32:59 media1 kernel: drbd r0: conn( Unconnected -> WFConnection )
Nov 6 02:32:59 media1 corosync[3657]: [TOTEM ] Decrementing problem
counter for iface 192.168.101.31 to [1 of 10]
Nov 6 02:32:59 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412329 iface 192.168.101.31 to [2 of 10]
Nov 6 02:33:01 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412333 iface 192.168.101.31 to [3 of 10]
Nov 6 02:33:01 media1 corosync[3657]: [TOTEM ] Decrementing problem
counter for iface 192.168.101.31 to [2 of 10]
Nov 6 02:33:01 media1 crmd[4960]: notice: do_state_transition: State
transition S_IDLE -> S_POLICY_ENGINE [ input=I_PE_CALC
cause=C_FSA_INTERNAL origin=abort_transition_graph ]
Nov 6 02:33:01 media1 pengine[4959]: notice: unpack_config: On loss of
CCM Quorum: Ignore
Nov 6 02:33:01 media1 pengine[4959]: warning: unpack_rsc_op: Processing
failed op monitor for res_nfsserver_mediafiles on media1: unknown error
(1)
Nov 6 02:33:01 media1 pengine[4959]: warning: unpack_rsc_op: Processing
failed op monitor for res_nfsserver_mediafiles on media2: unknown error
(1)
Nov 6 02:33:01 media1 pengine[4959]: notice: process_pe_message:
Calculated Transition 144: /var/lib/pacemaker/pengine/pe-input-227.bz2
Nov 6 02:33:01 media1 crmd[4960]: notice: run_graph: Transition 144
(Complete=0, Pending=0, Fired=0, Skipped=0, Incomplete=0,
Source=/var/lib/pacemaker/pengine/pe-input-227.bz2): Complete
Nov 6 02:33:01 media1 crmd[4960]: notice: do_state_transition: State
transition S_TRANSITION_ENGINE -> S_IDLE [ input=I_TE_SUCCESS
cause=C_FSA_INTERNAL origin=notify_crmd ]
Nov 6 02:33:01 media1 kernel: drbd r0: Handshake successful: Agreed
network protocol version 101
Nov 6 02:33:01 media1 kernel: drbd r0: Agreed to support TRIM on
protocol level
Nov 6 02:33:01 media1 kernel: drbd r0: Peer authenticated using 20
bytes HMAC
Nov 6 02:33:01 media1 kernel: drbd r0: conn( WFConnection ->
WFReportParams )
Nov 6 02:33:01 media1 kernel: drbd r0: Starting asender thread (from
drbd_r_r0 [5999])
Nov 6 02:33:02 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412337 iface 192.168.101.31 to [3 of 10]
Nov 6 02:33:02 media1 kernel: block drbd0: drbd_sync_handshake:
Nov 6 02:33:02 media1 kernel: block drbd0: self
0C0308FA4F94F811:59E43E5FD7B26A4F:1963884285B385E6:1962884285B385E6
bits:192101 flags:0
Nov 6 02:33:02 media1 kernel: block drbd0: peer
59E43E5FD7B26A4E:0000000000000000:1963884285B385E6:1962884285B385E6
bits:0 flags:0
Nov 6 02:33:02 media1 kernel: block drbd0: uuid_compare()=1 by rule 70
Nov 6 02:33:02 media1 kernel: block drbd0: peer( Unknown -> Secondary )
conn( WFReportParams -> WFBitMapS ) pdsk( DUnknown -> Consistent )
Nov 6 02:33:02 media1 kernel: block drbd0: send bitmap stats
[Bytes(packets)]: plain 0(0), RLE 185(1), total 185; compression: 100.0%
Nov 6 02:33:02 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412339 iface 192.168.101.31 to [4 of 10]
Nov 6 02:33:03 media1 kernel: block drbd0: receive bitmap stats
[Bytes(packets)]: plain 0(0), RLE 185(1), total 185; compression: 100.0%
Nov 6 02:33:03 media1 kernel: block drbd0: helper command:
/sbin/drbdadm before-resync-source minor-0
Nov 6 02:33:03 media1 kernel: block drbd0: helper command:
/sbin/drbdadm before-resync-source minor-0 exit code 0 (0x0)
Nov 6 02:33:03 media1 kernel: block drbd0: conn( WFBitMapS ->
SyncSource ) pdsk( Consistent -> Inconsistent )
Nov 6 02:33:03 media1 kernel: block drbd0: Began resync as SyncSource
(will sync 919244 KB [229811 bits set]).
Nov 6 02:33:03 media1 kernel: block drbd0: updated sync UUID
0C0308FA4F94F811:59E53E5FD7B26A4F:59E43E5FD7B26A4F:1963884285B385E6
Nov 6 02:33:03 media1 corosync[3657]: [TOTEM ] Decrementing problem
counter for iface 192.168.101.31 to [3 of 10]
Nov 6 02:33:03 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412343 iface 192.168.101.31 to [4 of 10]
Nov 6 02:33:04 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412345 iface 192.168.101.31 to [5 of 10]
Nov 6 02:33:05 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412347 iface 192.168.101.31 to [6 of 10]
Nov 6 02:33:05 media1 corosync[3657]: [TOTEM ] Decrementing problem
counter for iface 192.168.101.31 to [5 of 10]
Nov 6 02:33:05 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412349 iface 192.168.101.31 to [6 of 10]
Nov 6 02:33:06 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412351 iface 192.168.101.31 to [7 of 10]
Nov 6 02:33:07 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412355 iface 192.168.101.31 to [8 of 10]
Nov 6 02:33:07 media1 corosync[3657]: [TOTEM ] Decrementing problem
counter for iface 192.168.101.31 to [7 of 10]
Nov 6 02:33:07 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412357 iface 192.168.101.31 to [8 of 10]
Nov 6 02:33:08 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412361 iface 192.168.101.31 to [9 of 10]
Nov 6 02:33:09 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412363 iface 192.168.101.31 to [10 of 10]
Nov 6 02:33:09 media1 corosync[3657]: [TOTEM ] Marking seqid 412363
ringid 1 interface 192.168.101.31 FAULTY
Nov 6 02:33:11 media1 crmd[4960]: notice: do_state_transition: State
transition S_IDLE -> S_POLICY_ENGINE [ input=I_PE_CALC
cause=C_FSA_INTERNAL origin=abort_transition_graph ]
Nov 6 02:33:11 media1 pengine[4959]: notice: unpack_config: On loss of
CCM Quorum: Ignore
Nov 6 02:33:11 media1 pengine[4959]: warning: unpack_rsc_op: Processing
failed op monitor for res_nfsserver_mediafiles on media1: unknown error
(1)
Nov 6 02:33:11 media1 pengine[4959]: warning: unpack_rsc_op: Processing
failed op monitor for res_nfsserver_mediafiles on media2: unknown error
(1)
Nov 6 02:33:11 media1 pengine[4959]: notice: process_pe_message:
Calculated Transition 145: /var/lib/pacemaker/pengine/pe-input-228.bz2
Nov 6 02:33:11 media1 crmd[4960]: notice: run_graph: Transition 145
(Complete=0, Pending=0, Fired=0, Skipped=0, Incomplete=0,
Source=/var/lib/pacemaker/pengine/pe-input-228.bz2): Complete
Nov 6 02:33:11 media1 crmd[4960]: notice: do_state_transition: State
transition S_TRANSITION_ENGINE -> S_IDLE [ input=I_TE_SUCCESS
cause=C_FSA_INTERNAL origin=notify_crmd ]
Nov 6 02:33:17 media1 corosync[3657]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:18 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412387 iface 192.168.101.31 to [1 of 10]
Nov 6 02:33:20 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412389 iface 192.168.101.31 to [2 of 10]
Nov 6 02:33:20 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412391 iface 192.168.101.31 to [3 of 10]
Nov 6 02:33:21 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412393 iface 192.168.101.31 to [4 of 10]
Nov 6 02:33:22 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412397 iface 192.168.101.31 to [5 of 10]
Nov 6 02:33:22 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412399 iface 192.168.101.31 to [6 of 10]
Nov 6 02:33:24 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412403 iface 192.168.101.31 to [7 of 10]
Nov 6 02:33:31 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412421 iface 192.168.101.31 to [8 of 10]
Nov 6 02:33:32 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412423 iface 192.168.101.31 to [9 of 10]
Nov 6 02:33:34 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412429 iface 192.168.101.31 to [10 of 10]
Nov 6 02:33:34 media1 corosync[3657]: [TOTEM ] Marking seqid 412429
ringid 1 interface 192.168.101.31 FAULTY
Nov 6 02:33:36 media1 corosync[3657]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:39 media1 corosync[3657]: [TOTEM ] Incrementing problem
counter for seqid 412437 iface 192.168.101.31 to [1 of 10]
============================================================
media2:
============================================================
Nov 6 02:32:59 media2 kernel: drbd r0: sock was shut down by peer
Nov 6 02:32:59 media2 kernel: drbd r0: peer( Primary -> Unknown ) conn(
Connected -> BrokenPipe ) pdsk( UpToDate -> DUnknown )
Nov 6 02:32:59 media2 kernel: drbd r0: short read (expected size 16)
Nov 6 02:32:59 media2 kernel: drbd r0: asender terminated
Nov 6 02:32:59 media2 kernel: drbd r0: Terminating drbd_a_r0
Nov 6 02:32:59 media2 kernel: drbd r0: Connection closed
Nov 6 02:32:59 media2 kernel: drbd r0: conn( BrokenPipe -> Unconnected
)
Nov 6 02:32:59 media2 kernel: drbd r0: receiver terminated
Nov 6 02:32:59 media2 kernel: drbd r0: Restarting receiver thread
Nov 6 02:32:59 media2 kernel: drbd r0: receiver (re)started
Nov 6 02:32:59 media2 kernel: drbd r0: conn( Unconnected ->
WFConnection )
Nov 6 02:33:01 media2 attrd[4940]: notice: attrd_trigger_update:
Sending flush op to all hosts for: master-res_drbd_mediafiles (1000)
Nov 6 02:33:01 media2 attrd[4940]: notice: attrd_perform_update: Sent
update 16: master-res_drbd_mediafiles=1000
Nov 6 02:33:01 media2 kernel: drbd r0: Handshake successful: Agreed
network protocol version 101
Nov 6 02:33:01 media2 kernel: drbd r0: Agreed to support TRIM on
protocol level
Nov 6 02:33:01 media2 kernel: drbd r0: Peer authenticated using 20
bytes HMAC
Nov 6 02:33:01 media2 kernel: drbd r0: conn( WFConnection ->
WFReportParams )
Nov 6 02:33:01 media2 kernel: drbd r0: Starting asender thread (from
drbd_r_r0 [6367])
Nov 6 02:33:01 media2 kernel: block drbd0: drbd_sync_handshake:
Nov 6 02:33:01 media2 kernel: block drbd0: self
59E43E5FD7B26A4E:0000000000000000:1963884285B385E6:1962884285B385E6
bits:0 flags:0
Nov 6 02:33:01 media2 kernel: block drbd0: peer
0C0308FA4F94F811:59E43E5FD7B26A4F:1963884285B385E6:1962884285B385E6
bits:192101 flags:0
Nov 6 02:33:01 media2 kernel: block drbd0: uuid_compare()=-1 by rule 50
Nov 6 02:33:01 media2 kernel: block drbd0: peer( Unknown -> Primary )
conn( WFReportParams -> WFBitMapT ) disk( UpToDate -> Outdated ) pdsk(
DUnknown -> UpToDate )
Nov 6 02:33:02 media2 kernel: block drbd0: receive bitmap stats
[Bytes(packets)]: plain 0(0), RLE 185(1), total 185; compression: 100.0%
Nov 6 02:33:03 media2 kernel: block drbd0: send bitmap stats
[Bytes(packets)]: plain 0(0), RLE 185(1), total 185; compression: 100.0%
Nov 6 02:33:03 media2 kernel: block drbd0: conn( WFBitMapT ->
WFSyncUUID )
Nov 6 02:33:03 media2 kernel: block drbd0: updated sync uuid
59E53E5FD7B26A4E:0000000000000000:1963884285B385E6:1962884285B385E6
Nov 6 02:33:03 media2 kernel: block drbd0: helper command:
/sbin/drbdadm before-resync-target minor-0
Nov 6 02:33:03 media2 kernel: block drbd0: helper command:
/sbin/drbdadm before-resync-target minor-0 exit code 0 (0x0)
Nov 6 02:33:03 media2 kernel: block drbd0: conn( WFSyncUUID ->
SyncTarget ) disk( Outdated -> Inconsistent )
Nov 6 02:33:03 media2 kernel: block drbd0: Began resync as SyncTarget
(will sync 919244 KB [229811 bits set]).
Nov 6 02:33:10 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412364 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:10 media2 corosync[3690]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:10 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412366 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:11 media2 corosync[3690]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:11 media2 attrd[4940]: notice: attrd_trigger_update:
Sending flush op to all hosts for: master-res_drbd_mediafiles (10)
Nov 6 02:33:11 media2 attrd[4940]: notice: attrd_perform_update: Sent
update 18: master-res_drbd_mediafiles=10
Nov 6 02:33:11 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412368 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:12 media2 corosync[3690]: [TOTEM ] ring 1 active with no
faults
Nov 6 02:33:12 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412370 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:12 media2 corosync[3690]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:12 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412372 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:13 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412374 iface 192.168.101.32 to [2 of 10]
Nov 6 02:33:14 media2 corosync[3690]: [TOTEM ] Decrementing problem
counter for iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:14 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412376 iface 192.168.101.32 to [2 of 10]
Nov 6 02:33:15 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412378 iface 192.168.101.32 to [3 of 10]
Nov 6 02:33:15 media2 corosync[3690]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:15 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412380 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:16 media2 corosync[3690]: [TOTEM ] ring 1 active with no
faults
Nov 6 02:33:16 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412382 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:16 media2 corosync[3690]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:17 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412384 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:17 media2 corosync[3690]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:17 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412386 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:18 media2 corosync[3690]: [TOTEM ] ring 1 active with no
faults
Nov 6 02:33:19 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412388 iface 192.168.100.32 to [1 of 10]
Nov 6 02:33:20 media2 corosync[3690]: [TOTEM ] ring 0 active with no
faults
Nov 6 02:33:35 media2 corosync[3690]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:36 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412430 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:36 media2 corosync[3690]: [TOTEM ] Automatically recovered
ring 1
Nov 6 02:33:37 media2 corosync[3690]: [TOTEM ] Incrementing problem
counter for seqid 412432 iface 192.168.101.32 to [1 of 10]
Nov 6 02:33:38 media2 corosync[3690]: [TOTEM ] ring 1 active with no
faults
6 years, 8 months
[PATCH] Fix sending duplicate LACP frames at the start of establishing a logical channel.
by Samudrala, Sridhar
This issue can be seen with the following test script. It creates 2 net
namespaces connected via a veth pair and then creates team over the veth
interface in each namespace. tcpdump is run in background to collect the
lacp frames. The trace shows 11 lacp frames exchanged with multiple duplicates
within the first second.
================================================================================
#!/bin/bash
set -x
set -e
# create 2 network namespaces: ns1 & ns2
ip netns add ns1
ip netns add ns2
# create veth pair (veth-ns1 and veth-ns2)
ip link add veth-ns1 type veth peer name veth-ns2
# move veth-ns1 to ns1
ip link set veth-ns1 netns ns1
# move veth-ns2 to ns2
ip link set veth-ns2 netns ns2
# create and configure team-veth-ns1 in ns1
ip netns exec ns1 ./teamd -d -c '{"device": "team-veth-ns1", "hwaddr": "00:55:BB:BB:BB:01", "runner": {"name": "lacp", "active": true, "fast_rate": true}, "ports": {"veth-ns1": {}}}'
# capture lacp frames in ns1
ip netns exec ns1 tcpdump -w lacp.pcap -c 20 -n -i veth-ns1 -e ether proto 0x8809 &
# create and configure team-veth-ns2 ns2
ip netns exec ns2 ./teamd -d -c '{"device": "team-veth-ns2", "hwaddr": "00:55:BB:BB:BB:02", "runner": {"name": "lacp", "active": true, "fast_rate": true}, "ports": {"veth-ns2": {}}}'
sleep 10
================================================================================
With this patch only 3 lacp frames are exchanged in the first second with no
duplicates.
Signed-off-by: Sridhar Samudrala <sridhar.samudrala(a)intel.com>
---
teamd/teamd_runner_lacp.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c
index b35e427..b34f057 100644
--- a/teamd/teamd_runner_lacp.c
+++ b/teamd/teamd_runner_lacp.c
@@ -903,6 +903,10 @@ static int lacp_port_actor_update(struct lacp_port *lacp_port)
teamd_log_dbg("%s: lacp info state: 0x%02X.", lacp_port->tdport->ifname,
state);
lacp_port->actor.state = state;
+
+ if (lacp_port->periodic_on)
+ return 0;
+
return lacpdu_send(lacp_port);
}
@@ -1056,7 +1060,8 @@ static int lacpdu_recv(struct lacp_port *lacp_port)
return err;
/* Check if the other side has correct info about us */
- if (memcmp(&lacpdu.partner, &lacp_port->actor,
+ if (!lacp_port->periodic_on &&
+ memcmp(&lacpdu.partner, &lacp_port->actor,
sizeof(struct lacpdu_info))) {
err = lacpdu_send(lacp_port);
if (err)
--
2.1.0
7 years, 10 months
[jpirko/libteam] b2de61: Fix sending duplicate LACP frames at the start of ...
by GitHub
Branch: refs/heads/master
Home: https://github.com/jpirko/libteam
Commit: b2de61b39696c9158e725a691aee5a6f16a64137
https://github.com/jpirko/libteam/commit/b2de61b39696c9158e725a691aee5a6f...
Author: Sridhar Samudrala <sridhar.samudrala(a)intel.com>
Date: 2015-07-24 (Fri, 24 Jul 2015)
Changed paths:
M teamd/teamd_runner_lacp.c
Log Message:
-----------
Fix sending duplicate LACP frames at the start of establishing a logical channel.
This issue can be seen with the following test script. It creates 2 net
namespaces connected via a veth pair and then creates team over the veth
interface in each namespace. tcpdump is run in background to collect the
lacp frames. The trace shows 11 lacp frames exchanged with multiple duplicates
within the first second.
================================================================================
#!/bin/bash
set -x
set -e
# create 2 network namespaces: ns1 & ns2
ip netns add ns1
ip netns add ns2
# create veth pair (veth-ns1 and veth-ns2)
ip link add veth-ns1 type veth peer name veth-ns2
# move veth-ns1 to ns1
ip link set veth-ns1 netns ns1
# move veth-ns2 to ns2
ip link set veth-ns2 netns ns2
# create and configure team-veth-ns1 in ns1
ip netns exec ns1 ./teamd -d -c '{"device": "team-veth-ns1", "hwaddr": "00:55:BB:BB:BB:01", "runner": {"name": "lacp", "active": true, "fast_rate": true}, "ports": {"veth-ns1": {}}}'
# capture lacp frames in ns1
ip netns exec ns1 tcpdump -w lacp.pcap -c 20 -n -i veth-ns1 -e ether proto 0x8809 &
# create and configure team-veth-ns2 ns2
ip netns exec ns2 ./teamd -d -c '{"device": "team-veth-ns2", "hwaddr": "00:55:BB:BB:BB:02", "runner": {"name": "lacp", "active": true, "fast_rate": true}, "ports": {"veth-ns2": {}}}'
sleep 10
================================================================================
With this patch only 3 lacp frames are exchanged in the first second with no
duplicates.
Signed-off-by: Sridhar Samudrala <sridhar.samudrala(a)intel.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
7 years, 10 months
[PATCH] Fix teamd memory corruption issues seen by missing port unlink in ifinfo_destroy()
by Samudrala, Sridhar
This fixes teamd coredumps similar to these
systemd-coredump[11692]: Process 11345 (teamd) of user 0 dumped core.
Stack trace of thread 11345:
0 0x00007f7e6e1078d7 raise (libc.so.6)
1 0x00007f7e6e10953a abort (libc.so.6)
2 0x00007f7e6e14ada3 __libc_message (libc.so.6)
3 0x00007f7e6e1569f5 __libc_free (libc.so.6)
4 0x00007f7e6ed2779d link_free_data (libnl-route-3.so.200)
5 0x00007f7e6eafe6f0 nl_object_free (libnl-3.so.200)
6 0x00007f7e6f5a0df2 obj_input_newlink (libteam.so.5)
7 0x00007f7e6eafb0fe parse_cb (libnl-3.so.200)
8 0x00007f7e6ed2933c link_msg_parser (libnl-route-3.so.200)
9 0x00007f7e6eaf84c9 nl_cache_parse (libnl-3.so.200)
10 0x00007f7e6eafc99b nl_msg_parse (libnl-3.so.200)
11 0x00007f7e6f5a0fea ifinfo_event_handler (libteam.so.5)
12 0x00007f7e6eafdfcf nl_recvmsgs_report (libnl-3.so.200)
13 0x00007f7e6eafe339 nl_recvmsgs (libnl-3.so.200)
14 0x00007f7e6f59d8d0 cli_sock_event_handler (libteam.so.5)
15 0x00007f7e6f59e476 team_handle_events (libteam.so.5)
16 0x00000000004055d5 teamd_run_loop_run (teamd)
17 0x0000000000406a90 main (teamd)
18 0x00007f7e6e0f2fe0 __libc_start_main (libc.so.6)
19 0x000000000040755a _start (teamd)
Signed-off-by: Sridhar Samudrala <sridhar.samudrala(a)intel.com>
---
libteam/ifinfo.c | 2 ++
libteam/ports.c | 8 +++++++-
libteam/team_private.h | 1 +
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/libteam/ifinfo.c b/libteam/ifinfo.c
index afe32da..fe370e3 100644
--- a/libteam/ifinfo.c
+++ b/libteam/ifinfo.c
@@ -213,6 +213,8 @@ static struct team_ifinfo *ifinfo_find_create(struct team_handle *th,
static void ifinfo_destroy(struct team_ifinfo *ifinfo)
{
+ if (ifinfo->linked && ifinfo->port)
+ port_unlink(ifinfo->port);
list_del(&ifinfo->list);
free(ifinfo);
}
diff --git a/libteam/ports.c b/libteam/ports.c
index 52d0c9a..9ebf30f 100644
--- a/libteam/ports.c
+++ b/libteam/ports.c
@@ -83,7 +83,8 @@ static struct team_port *port_create(struct team_handle *th,
static void port_destroy(struct team_handle *th,
struct team_port *port)
{
- ifinfo_unlink(port->ifinfo);
+ if (port->ifinfo)
+ ifinfo_unlink(port->ifinfo);
list_del(&port->list);
free(port);
}
@@ -226,6 +227,11 @@ void port_list_free(struct team_handle *th)
flush_port_list(th);
}
+void port_unlink(struct team_port *port)
+{
+ port->ifinfo = NULL;
+}
+
/* \endcond */
/**
diff --git a/libteam/team_private.h b/libteam/team_private.h
index 801f107..a07632f 100644
--- a/libteam/team_private.h
+++ b/libteam/team_private.h
@@ -105,6 +105,7 @@ int get_port_list_handler(struct nl_msg *msg, void *arg);
int port_list_alloc(struct team_handle *th);
int port_list_init(struct team_handle *th);
void port_list_free(struct team_handle *th);
+void port_unlink(struct team_port *port);
int ifinfo_event_handler(struct nl_msg *msg, void *arg);
int ifinfo_list_alloc(struct team_handle *th);
int ifinfo_list_init(struct team_handle *th);
--
2.1.0
7 years, 10 months
[jpirko/libteam] 5e4452: Fix teamd memory corruption issues seen by missing...
by GitHub
Branch: refs/heads/master
Home: https://github.com/jpirko/libteam
Commit: 5e445200f1441e0f217952fd308a3a714c20b65c
https://github.com/jpirko/libteam/commit/5e445200f1441e0f217952fd308a3a71...
Author: Sridhar Samudrala <sridhar.samudrala(a)intel.com>
Date: 2015-07-19 (Sun, 19 Jul 2015)
Changed paths:
M libteam/ifinfo.c
M libteam/ports.c
M libteam/team_private.h
Log Message:
-----------
Fix teamd memory corruption issues seen by missing port unlink in ifinfo_destroy()
This fixes teamd coredumps similar to these
systemd-coredump[11692]: Process 11345 (teamd) of user 0 dumped core.
Stack trace of thread 11345:
0 0x00007f7e6e1078d7 raise (libc.so.6)
1 0x00007f7e6e10953a abort (libc.so.6)
2 0x00007f7e6e14ada3 __libc_message (libc.so.6)
3 0x00007f7e6e1569f5 __libc_free (libc.so.6)
4 0x00007f7e6ed2779d link_free_data (libnl-route-3.so.200)
5 0x00007f7e6eafe6f0 nl_object_free (libnl-3.so.200)
6 0x00007f7e6f5a0df2 obj_input_newlink (libteam.so.5)
7 0x00007f7e6eafb0fe parse_cb (libnl-3.so.200)
8 0x00007f7e6ed2933c link_msg_parser (libnl-route-3.so.200)
9 0x00007f7e6eaf84c9 nl_cache_parse (libnl-3.so.200)
10 0x00007f7e6eafc99b nl_msg_parse (libnl-3.so.200)
11 0x00007f7e6f5a0fea ifinfo_event_handler (libteam.so.5)
12 0x00007f7e6eafdfcf nl_recvmsgs_report (libnl-3.so.200)
13 0x00007f7e6eafe339 nl_recvmsgs (libnl-3.so.200)
14 0x00007f7e6f59d8d0 cli_sock_event_handler (libteam.so.5)
15 0x00007f7e6f59e476 team_handle_events (libteam.so.5)
16 0x00000000004055d5 teamd_run_loop_run (teamd)
17 0x0000000000406a90 main (teamd)
18 0x00007f7e6e0f2fe0 __libc_start_main (libc.so.6)
19 0x000000000040755a _start (teamd)
Signed-off-by: Sridhar Samudrala <sridhar.samudrala(a)intel.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
7 years, 10 months