[ovs-dev] [PATCH] replication: Be more careful about JSON parsing and simplify code.

Alin Serdean aserdean at cloudbasesolutions.com
Fri Sep 16 00:47:14 UTC 2016


Sorry to bump on this problem again, but the issue reproduces from time to time while testing under windows.

Applying (http://openvswitch.org/pipermail/dev/2016-September/079315.html) would fix the symptom.

STACK_TEXT:  
000000c0`e63cf680 00007ff7`f9306607 : 00000264`7e439f00 00000000`00000000 00000264`7e42def8 00000000`2b038801 : ovsdb_server!ovsdb_datum_compare_3way+0x1d
000000c0`e63cf6c0 00007ff7`f92df779 : 00000264`7e439f00 00000000`00000000 00000264`7e42def8 00007ff7`f92df5c5 : ovsdb_server!ovsdb_datum_equals+0x27
000000c0`e63cf700 00007ff7`f92e1034 : 00000264`7e43fb80 00000264`7e439ea0 00000000`00000000 00000264`7e4395c0 : ovsdb_server!update_monitor_row_data+0xa9
000000c0`e63cf760 00007ff7`f92e136d : 00000000`00000000 00000264`7e439ea0 00000264`7e43fb80 00000264`7e4395c0 : ovsdb_server!ovsdb_monitor_changes_update+0x114
000000c0`e63cf7c0 00007ff7`f92e6e60 : 00000000`00000000 00000264`7e439ea0 00000264`7e4394e4 000000c0`e63cf8b0 : ovsdb_server!ovsdb_monitor_change_cb+0x1dd
000000c0`e63cf840 00007ff7`f92e178c : 00000264`7e43ca90 00007ff7`f92e1190 000000c0`e63cf8b0 00000264`7e439c80 : ovsdb_server!ovsdb_txn_for_each_change+0x130
000000c0`e63cf880 00007ff7`f92ea7b9 : 00000264`7e43fab0 00000264`7e43ca90 00000000`00000000 00000000`00000001 : ovsdb_server!ovsdb_monitor_commit+0x5c
000000c0`e63cf8e0 00007ff7`f92e6aac : 00000264`7e43ca90 00000000`00000000 8f4644b3`452879f6 6eb99859`8e0f9f99 : ovsdb_server!ovsdb_txn_commit_+0x259
000000c0`e63cf930 00007ff7`f92e4a51 : 00000264`7e43ca90 00000264`7e43e500 00000264`7e438de0 00000264`7e43ca90 : ovsdb_server!ovsdb_txn_commit+0x1c
000000c0`e63cf970 00007ff7`f92e36ac : 00000264`7e43e3f0 00000264`7e438de0 00000264`7e43e5d0 00000264`7e43e5d0 : ovsdb_server!process_notification+0x131
000000c0`e63cf9d0 00007ff7`f92d3199 : 00000264`7e42dcf0 000000c0`e63cfb38 000000c0`e63cfcd0 00007ff7`f92ff89f : ovsdb_server!replication_run+0x23c
000000c0`e63cfae0 00007ff7`f92d3db3 : 00000264`7e42dcf0 000000c0`e63cfc48 00000264`7e42fdd0 000000c0`e63cfcd0 : ovsdb_server!main_loop+0x209
000000c0`e63cfb70 00007ff7`f9337f3c : 00007ff7`00000001 00000264`7e426350 00000000`00000000 00000000`00000000 : ovsdb_server!main+0x993
000000c0`e63cfd30 00007ff7`f933807e : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ovsdb_server!__tmainCRTStartup+0xec
000000c0`e63cfd80 00007ffd`5b728102 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ovsdb_server!mainCRTStartup+0xe
000000c0`e63cfdb0 00007ffd`5dc5c5b4 : 00007ffd`5b7280e0 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x22
000000c0`e63cfde0 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x34


STACK_COMMAND:  ~0s; .ecxr ; kb

FAULTING_SOURCE_LINE:  ovsdb-data.c

FAULTING_SOURCE_FILE:  ovsdb-data.c

FAULTING_SOURCE_LINE_NUMBER:  1626

FAULTING_SOURCE_CODE:  
  1622:                          const struct ovsdb_type *type)
  1623: {
  1624:     int cmp;
  1625: 
> 1626:     if (a->n != b->n) {
  1627:         return a->n < b->n ? -1 : 1;
  1628:     }
  1629: 
  1630:     cmp = atom_arrays_compare_3way(a->keys, b->keys, type->key.type, a->n);
  1631:     if (cmp) {

> > > I don't know the exact cause of the problem, but this new
> > > implementation leaves me more confident due to its simplicity.
> > >
> > > Reported-by: Joe Stringer <joe at ovn.org>
> > > Reported-at: http://openvswitch.org/pipermail/dev/2016-September/
> > > 079315.html
> > > Fixes: 60e0cd041958 ("ovsdb: Replication usability improvements")
> > > Signed-off-by: Ben Pfaff <blp at ovn.org>
> > >
> >
> > Acked-by: Andy Zhou <azhou at ovn.org>
> >
> > Thanks for tracking this down the issue and for the simplification.
> > Sorry for not jumpping on Joe's original report sonner. I did not have
> > internet access from my laptop for the last few days.
> 
> You're on vacation, no worries.
> 
> Applied to master and branch-2.6, thanks!
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev


More information about the dev mailing list