Skip to content

Commit

Permalink
Revert "ovn-controller: fix a crash when deleting a port claimed when…
Browse files Browse the repository at this point in the history
… sb was ro"

This commit fixed a crash that occurred in branch-22.09 and forward. I
mistakenly applied this to earlier branches, where it is now causing a
compilation error.

Signed-off-by: Mark Michelson <mmichels@redhat.com
  • Loading branch information
putnopvut committed Sep 19, 2022
1 parent dc1288a commit c2e8de3
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 94 deletions.
2 changes: 0 additions & 2 deletions controller/ovn-controller.c
Expand Up @@ -3580,8 +3580,6 @@ main(int argc, char *argv[])
/* Reuse the same handler for any previously postponed ports. */
engine_add_input(&en_runtime_data, &en_postponed_ports,
runtime_data_sb_port_binding_handler);
/* Run sb_ro_handler after port_binding_handler in case port get deleted */
engine_add_input(&en_runtime_data, &en_sb_ro, runtime_data_sb_ro_handler);

/* The OVS interface handler for runtime_data changes MUST be executed
* after the sb_port_binding_handler as port_binding deletes must be
Expand Down
92 changes: 0 additions & 92 deletions tests/ovn.at
Expand Up @@ -30471,95 +30471,3 @@ check ovn-nbctl lrp-del lr0-sw1
OVN_CLEANUP([hv1],[hv2])
AT_CLEANUP
])

OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn-controller: deleting a port being claimed])
ovn_start
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
check ovs-vsctl add-port br-int p0
check ovs-vsctl add-port br-int p1

ovn-nbctl ls-add sw0
ovn-nbctl lsp-add sw0 sw0-port0 -- lsp-set-addresses sw0-port0 "50:54:00:00:00:01 192.168.0.2"
ovn-nbctl lsp-add sw0 sw0-port1 -- lsp-set-addresses sw0-port1 "50:54:00:00:00:02 192.168.0.3"
check ovn-nbctl --wait=hv sync

# Pause SB
AT_CHECK([kill -STOP $(cat ovn-sb/ovsdb-server.pid)])

# Make us claim psw0-port0. This will make SB ro
ovs-vsctl set interface p0 external-ids:iface-id=sw0-port0
sleep 0.5
# Make us claim sw0-port1. Claim should be delayed
ovs-vsctl set interface p1 external-ids:iface-id=sw0-port1
# Delete sw0-port1
ovn-nbctl lsp-del sw0-port1
sleep 0.5
# Restart SB
AT_CHECK([kill -CONT $(cat ovn-sb/ovsdb-server.pid)])
check ovn-nbctl --wait=hv sync
ovn-nbctl ls-del sw0
check ovn-nbctl --wait=hv sync
OVN_CLEANUP([hv1])
AT_CLEANUP
])

OVN_FOR_EACH_NORTHD([
AT_SETUP([ovn-controller: checking flows after delaying port claims])
ovn_start
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
check ovs-vsctl add-port br-int p0
check ovs-vsctl add-port br-int p1

ovn-nbctl ls-add sw0
ovn-nbctl lsp-add sw0 sw0-port0 -- lsp-set-addresses sw0-port0 "50:54:00:00:00:01 192.168.0.2"
check ovn-nbctl --wait=hv sync
ovn-nbctl lsp-add sw0 sw0-port1 -- lsp-set-addresses sw0-port1 "50:54:00:00:00:02 192.168.0.3"
ovs-vsctl set interface p0 external-ids:iface-id=sw0-port0
ovs-vsctl set interface p1 external-ids:iface-id=sw0-port1
check ovn-nbctl --wait=hv sync
as hv1 ovs-ofctl dump-flows br-int | sed 's/cookie=0x.*, duration=.*, table/cookie=??, duration=??, table/' | sed 's/load:0x.->NXM_NX_REG1/load:0x?->NXM_NX_REG1/g' | sed 's/idle_age=[[0-9]], //g' | sort > offlows1

ovs-vsctl set interface p0 external-ids:iface-id=foo0
ovs-vsctl set interface p1 external-ids:iface-id=foo1
ovn-nbctl lsp-del sw0-port0
ovn-nbctl lsp-del sw0-port1
ovn-nbctl ls-del sw0
check ovn-nbctl --wait=hv sync

ovn-nbctl ls-add sw0
ovn-nbctl lsp-add sw0 sw0-port0 -- lsp-set-addresses sw0-port0 "50:54:00:00:00:01 192.168.0.2"
check ovn-nbctl --wait=hv sync
ovn-nbctl lsp-add sw0 sw0-port1 -- lsp-set-addresses sw0-port1 "50:54:00:00:00:02 192.168.0.3"
check ovn-nbctl --wait=hv sync

# Pause SB
AT_CHECK([kill -STOP $(cat ovn-sb/ovsdb-server.pid)])

# Make us claim psw0-port0. This will make SB ro
ovs-vsctl set interface p0 external-ids:iface-id=sw0-port0
sleep 0.5
# Make us claim sw0-port1. Claim should be delayed
ovs-vsctl set interface p1 external-ids:iface-id=sw0-port1
sleep 0.5
# Restart SB
AT_CHECK([kill -CONT $(cat ovn-sb/ovsdb-server.pid)])
check ovn-nbctl --wait=hv sync
as hv1 ovs-ofctl dump-flows br-int | sed 's/cookie=0x.*, duration=.*, table/cookie=??, duration=??, table/' | sed 's/load:0x.->NXM_NX_REG1/load:0x?->NXM_NX_REG1/g' | sed 's/idle_age=[[0-9]], //g' | sort > offlows2
AT_CHECK([diff offlows1 offlows2])

ovn-nbctl ls-del sw0
check ovn-nbctl --wait=hv sync
OVN_CLEANUP([hv1])
AT_CLEANUP
])

0 comments on commit c2e8de3

Please sign in to comment.