[ovs-discuss] Failing ovs tests on big-endian system

Mijo Safradin mijo at linux.vnet.ibm.com
Thu Nov 27 14:41:56 UTC 2014


>> For instance, by looking at the testcase 79 "flow classifier -
>> lookup segmentation" it shows that at lib/classifier.c the function
>> miniflow_and_mask_matches_flow_wc() does process the bitwise OR in
>> wrong order. By introducing the function le32toh(), the test does
>> pass on a little and big endian system.
>
> I don't understand why you need to do this.  OVS internally does use
> host byte order and network byte order, but it doesn't intentionally
> maintain any data in little-endian order.  Can you explain further?
>

I haven't digged further. I can only share the fact that the byte order 
differs here on a x86 compared to a power/s390 system. Because, you 
say this shouldn't be the case, I can try to debug this further.

> Does this only happen on master?  Version 2.3.x passes all of the
> tests on big-endian and little-endian systems:
> https://buildd.debian.org/status/logs.php?pkg=openvswitch&ver=2.3.0%2Bgit20140819-2&suite=sid

It fails on master and on older git versions as well. Even using Debian 
Sid, the same errors could be observed. Can you provide hardware details 
about the power/s390 machines the mentioned test has been executed on?

When using the openvswitch-2.3.0.tar.gz release, most of the failed test 
do pass, but other tests do fail.

...
1522: managers                                        ok

## ------------- ##
## Test results. ##
## ------------- ##

ERROR: All 1522 tests were run,
34 failed unexpectedly.
## -------------------------- ##
## testsuite.log was created. ##
## -------------------------- ##

Please send `tests/testsuite.log' and all information you think might 
help:

    To: <bugs at openvswitch.org>
    Subject: [openvswitch 2.3.0] testsuite: 372 373 374 375 376 377 711 
1281 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 
1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 failed

You may investigate any problem if you feel able to do so, in which
case the test suite provides a good starting point.  Its output may
be found below `tests/testsuite.dir'.


  372: vconn.at:23        ssl vconn - read hello
  373: vconn.at:23        ssl vconn - send plain hello
  374: vconn.at:23        ssl vconn - send long hello
  375: vconn.at:23        ssl vconn - send echo hello
  376: vconn.at:23        ssl vconn - send short hello
  377: vconn.at:23        ssl vconn - send invalid version hello
  711: ofproto-dpif.at:57 ofproto-dpif, active-backup bonding
  1281: ovsdb-server.at:480 SSL db: implementation
       ovsdb server positive ssl $5
  1284: ovsdb-server.at:792 insert default row, query table
       ovsdb server positive ssl
  1285: ovsdb-server.at:792 insert row, query table
       ovsdb server positive ssl
  1286: ovsdb-server.at:792 insert rows, query by value
       ovsdb server positive ssl
  1287: ovsdb-server.at:792 insert rows, query by named-uuid
       ovsdb server positive ssl
  1288: ovsdb-server.at:792 insert rows, update rows by value
       ovsdb server positive ssl
  1289: ovsdb-server.at:792 insert rows, mutate rows
       ovsdb server positive ssl
  1290: ovsdb-server.at:792 insert rows, delete by named-uuid
       ovsdb server positive ssl
  1291: ovsdb-server.at:792 insert rows, delete rows by value
       ovsdb server positive ssl
  1292: ovsdb-server.at:792 insert rows, delete by (non-matching) value
       ovsdb server positive ssl
  1293: ovsdb-server.at:792 insert rows, delete all
       ovsdb server positive ssl
  1294: ovsdb-server.at:792 insert row, query table, commit
       ovsdb server positive ssl
  1295: ovsdb-server.at:792 insert row, query table, commit durably
       ovsdb server positive ssl
  1296: ovsdb-server.at:792 equality wait with correct rows
       ovsdb server positive ssl
  1297: ovsdb-server.at:792 equality wait with extra row
       ovsdb server positive ssl
  1298: ovsdb-server.at:792 equality wait with missing row
       ovsdb server positive ssl
  1299: ovsdb-server.at:792 inequality wait with correct rows
       ovsdb server positive ssl
  1300: ovsdb-server.at:792 inequality wait with extra row
       ovsdb server positive ssl
  1301: ovsdb-server.at:792 inequality wait with missing row
       ovsdb server positive ssl
  1302: ovsdb-server.at:792 insert and update constraints
       ovsdb server positive ssl
  1303: ovsdb-server.at:792 index uniqueness checking
       ovsdb server positive ssl
  1304: ovsdb-server.at:792 referential integrity -- simple
       ovsdb server positive ssl
  1305: ovsdb-server.at:792 referential integrity -- mutual references
       ovsdb server positive ssl
  1306: ovsdb-server.at:792 weak references
       ovsdb server positive ssl
  1307: ovsdb-server.at:792 immutable columns
       ovsdb server positive ssl
  1308: ovsdb-server.at:792 garbage collection
       ovsdb server positive ssl
  1309: ovsdb-server.at:831 insert default row, query table
       ovsdb server positive ssl6


Here's a subset of test which do fail on master and passed on 2.3.0

785. ofproto-dpif megaflow - port classification (ofproto-dpif.at:3881): 
ok     (0m0.028s 0m0.107s)
786. ofproto-dpif megaflow - L2 classification (ofproto-dpif.at:3899): ok 
(0m0.029s 0m0.108s)
787. ofproto-dpif megaflow - L3 classification (ofproto-dpif.at:3917): ok 
(0m0.032s 0m0.121s)
788. ofproto-dpif megaflow - IPv6 classification (ofproto-dpif.at:3936): 
ok     (0m0.032s 0m0.119s)
789. ofproto-dpif megaflow - L4 classification (ofproto-dpif.at:3955): ok 
(0m0.029s 0m0.111s)
790. ofproto-dpif megaflow - normal (ofproto-dpif.at:3973): ok 
(0m0.030s 0m0.111s)
791. ofproto-dpif megaflow - mpls (ofproto-dpif.at:3988): ok     (0m0.029s 
0m0.109s)
792. ofproto-dpif megaflow - netflow - IPv4 collector 
(ofproto-dpif.at:4037): ok     (0m0.034s 0m0.128s)
793. ofproto-dpif megaflow - netflow - IPv6 collector 
(ofproto-dpif.at:4038): ok     (0m0.034s 0m0.126s)
794. ofproto-dpif megaflow - normal, active-backup bonding 
(ofproto-dpif.at:4040): ok     (0m0.030s 0m0.111s)
795. ofproto-dpif megaflow - normal, balance-slb bonding 
(ofproto-dpif.at:4061): ok     (0m0.029s 0m0.110s)
796. ofproto-dpif megaflow - normal, balance-tcp bonding 
(ofproto-dpif.at:4082): ok     (0m0.034s 0m0.128s)
797. ofproto-dpif megaflow - resubmit port action (ofproto-dpif.at:4120): 
ok     (0m0.030s 0m0.108s)
798. ofproto-dpif megaflow - resubmit table action (ofproto-dpif.at:4139): 
ok     (0m0.030s 0m0.114s)
799. ofproto-dpif megaflow - goto_table action (ofproto-dpif.at:4159): ok 
(0m0.029s 0m0.116s)
800. ofproto-dpif megaflow - mirroring, select_all (ofproto-dpif.at:4178): 
ok     (0m0.030s 0m0.116s)
801. ofproto-dpif megaflow - mirroring, select_vlan 
(ofproto-dpif.at:4201): ok     (0m0.031s 0m0.113s)
802. ofproto-dpif megaflow - move action (ofproto-dpif.at:4224): ok 
(0m0.030s 0m0.110s)
803. ofproto-dpif megaflow - push action (ofproto-dpif.at:4244): ok 
(0m0.028s 0m0.106s)
804. ofproto-dpif megaflow - learning (ofproto-dpif.at:4262): ok 
(0m0.035s 0m0.132s)
805. ofproto-dpif megaflow - tunnels (ofproto-dpif.at:4289): ok 
(0m0.037s 0m0.136s)
806. ofproto-dpif megaflow - dec_ttl (ofproto-dpif.at:4322): ok 
(0m0.031s 0m0.119s)
807. ofproto-dpif megaflow - set dl_dst (ofproto-dpif.at:4341): ok 
(0m0.029s 0m0.110s)
808. ofproto-dpif megaflow - disabled (ofproto-dpif.at:4369): ok 
(0m0.043s 0m0.169s)






More information about the discuss mailing list