-
Bug
-
Resolution: Done
-
High
-
19.01
-
None
-
None
-
Linux fdio-cavium6 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:37:14 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux
NAME="Ubuntu"
VERSION="16.04.5 LTS (Xenial Xerus)"
gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609
The debug build of vpp produces a core. Some gdb debugging is attached, but here's the gist of it:
(gdb) down
#10 0x0000ffff9b43c644 in pg_stream_fill (pg=0xffff9b7c0908 <pg_main>,
s=0xffff5c166eac, n_buffers=256)
at /home/jlinkes/vpp/src/vnet/pg/input.c:1284
1284 ASSERT (l == e);
(gdb) info locals
l = 0
e = 201
bi = 0xffff5c02d1d4
i = 281472212662768
n_in_fifo = 0
n_alloc = 256
n_free = -6210407222506865408
n_added = 2765958939180
tail = 0xffff9ad17308 <vlib_global_main+392>
start = 0xffff5b3ffa40
end = 0xffff9b43d340 <pg_generate_packets+52>
last_tail = 0xffff5ba2551c
last_start = 0xffff5c197c00
_FUNCTION_ = "pg_stream_fill"
(gdb) p s->buffer_indices
$9 = (pg_buffer_index_t *) 0xffff5c02d18c
(gdb) p *bi
$10 =
(gdb) p *s->buffer_indices
$11 =
The assert fails because bi and s->buffer_indices each point to a different pg_buffer_index_t, if I understand it correctly.
The test passes in x86 ubuntu1804 in ci, but fails in a variety of other environments. I observed this failure on x86 VMs - ubuntu 1604 and 1804, Debian 9 and then on ARM ubuntu 1604, 1804 (directly on host)
==============================================================================
L2 FIB Test Case
==============================================================================
L2 FIB - program 100 + 100 MACs OK
L2 FIB - program 100 + delete 12 MACs ERROR [ temp dir used by test case: /tmp/vpp-unittest-TestL2fib-LEe3wc ]
L2 FIB - flush all ERROR [ temp dir used by test case: /tmp/vpp-unittest-TestL2fib-LEe3wc ]
L2 FIB - flush BD ERROR [ temp dir used by test case: /tmp/vpp-unittest-TestL2fib-LEe3wc ]
L2 FIB - flush interface ERROR [ temp dir used by test case: /tmp/vpp-unittest-TestL2fib-LEe3wc ]
L2 FIB - mac learning events FAIL [ temp dir used by test case: /tmp/vpp-unittest-TestL2fib-LEe3wc ]
L2 FIB - mac learning max macs in event FAIL [ temp dir used by test case: /tmp/vpp-unittest-TestL2fib-LEe3wc ]
L2 FIB - program 100 MACs ERROR [ temp dir used by test case: /tmp/vpp-unittest-TestL2fib-LEe3wc ]
L2 FIB - Program 10 MACs, learn 10 ERROR [ temp dir used by test case: /tmp/vpp-unittest-TestL2fib-LEe3wc ]
==============================================================================
ERROR: L2 FIB - program 100 + delete 12 MACs
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 402, in test_l2_fib_delete12
self.run_verify_test(bd_id, hosts, hosts)
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 354, in run_verify_test
capture = i.get_capture()
File "/home/jlinkes/vpp/test/vpp_pg_interface.py", line 240, in get_capture
(len(capture.res), expected_count, name))
Exception: Captured packets mismatch, captured 88 packets, expected 264 packets on pg0
==============================================================================
ERROR: L2 FIB - flush all
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 469, in test_l2_fib_flush_all
self.run_verify_test(bd1, hosts, lhosts)
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 354, in run_verify_test
capture = i.get_capture()
File "/home/jlinkes/vpp/test/vpp_pg_interface.py", line 242, in get_capture
raise Exception("No packets captured on %s" % name)
Exception: No packets captured on pg0
==============================================================================
ERROR: L2 FIB - flush BD
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 453, in test_l2_fib_flush_bd
self.run_verify_test(bd1, lhosts, hosts)
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 354, in run_verify_test
capture = i.get_capture()
File "/home/jlinkes/vpp/test/vpp_pg_interface.py", line 242, in get_capture
raise Exception("No packets captured on %s" % name)
Exception: No packets captured on pg0
==============================================================================
ERROR: L2 FIB - flush interface
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 439, in test_l2_fib_flush_int
self.run_verify_test(bd1, lhosts, hosts)
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 354, in run_verify_test
capture = i.get_capture()
File "/home/jlinkes/vpp/test/vpp_pg_interface.py", line 242, in get_capture
raise Exception("No packets captured on %s" % name)
Exception: No packets captured on pg0
==============================================================================
ERROR: L2 FIB - program 100 MACs
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 391, in test_l2_fib_program100
self.run_verify_test(bd_id, hosts, hosts)
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 354, in run_verify_test
capture = i.get_capture()
File "/home/jlinkes/vpp/test/vpp_pg_interface.py", line 242, in get_capture
raise Exception("No packets captured on %s" % name)
Exception: No packets captured on pg0
==============================================================================
ERROR: L2 FIB - Program 10 MACs, learn 10
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 427, in test_l2_fib_program10_learn10
self.run_verify_test(bd1, lhosts, hosts)
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 354, in run_verify_test
capture = i.get_capture()
File "/home/jlinkes/vpp/test/vpp_pg_interface.py", line 242, in get_capture
raise Exception("No packets captured on %s" % name)
Exception: No packets captured on pg0
==============================================================================
FAIL: L2 FIB - mac learning events
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 495, in test_l2_fib_mac_learn_evs
self.assertEqual(len(learned_macs ^ macs), 0)
AssertionError: 40 != 0
==============================================================================
FAIL: L2 FIB - mac learning max macs in event
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/jlinkes/vpp/test/test_l2_fib.py", line 512, in test_l2_fib_macs_learn_max
self.assertGreater(len(evs), 0)
AssertionError: 0 not greater than 0
Ran 9 tests in 77.590s
FAILED (failures=2, errors=6)