On Thu, Aug 25, 2016 at 5:37 AM, Andy Zhou <az...@ovn.org> wrote:

> The main purpose of this series patch 6 (OVSDB: Reimplement
> replication. Using a state machine). Patch 7 includes
> a few replication usability enhancements that has been requested
> on the mailing list.
>
> Andy Zhou (7):
>   ovsdb: Properly handle error returned from from reset_database()
>   ovsdb: Add blacklist_tables
>   ovsdb: Add request_ids
>   ovsdb: (Re)hide struct db in ovsdb-server.c
>   test: Improve replication unit tests
>   OVSDB: Reimplement replication. Using a state machine.
>   ovsdb: Replication usability improvements
>
>  Documentation/OVSDB-replication.md |   2 +-
>  ovsdb/jsonrpc-server.c             |   6 +
>  ovsdb/jsonrpc-server.h             |   1 +
>  ovsdb/ovsdb-server.1.in            |  24 +-
>  ovsdb/ovsdb-server.c               | 308 +++++++++----
>  ovsdb/replication.c                | 897 +++++++++++++++++++++++-------
> -------
>  ovsdb/replication.h                |  54 ++-
>  ovsdb/replication.man              |  16 +-
>  tests/ovsdb-replication.at         |  28 +-
>  tests/ovsdb-server.at              | 203 ++++++---
>  10 files changed, 1021 insertions(+), 518 deletions(-)
>
>
​Hi Andy,

I tested this patch series. I have noticed few core dumps

1. I am seeing the below core dump quite often, If not 100% of the time
   - I start both the ovsdb-server's as backup (both pointing to each
other) or
   - ​

​When an active server transitions to backup

**********************

(gdb) bt
#0  0x0000000000424640 in ovsdb_datum_compare_3way (a=0x10986a0, b=0x0,
type=0x107e728) at lib/ovsdb-data.c:1626
#1  0x0000000000424719 in ovsdb_datum_equals (a=a@entry=0x10986a0,
b=b@entry=0x0,
type=type@entry=0x107e728) at lib/ovsdb-data.c:1616
#2  0x000000000040e3a9 in update_monitor_row_data (mt=0x10970a0,
mt=0x10970a0, data=<optimized out>, row=0x1098640) at ovsdb/monitor.c:310
#3  ovsdb_monitor_changes_update (old=<optimized out>, new=0x1098640,
mt=0x10970a0, changes=<optimized out>) at ovsdb/monitor.c:1255
#4  0x000000000040ef09 in ovsdb_monitor_change_cb (old=0x0, new=0x1098640,
changed=<optimized out>, aux_=0x7fff1aa0ec60) at ovsdb/monitor.c:1339
#5  0x00000000004158b7 in ovsdb_txn_for_each_change (txn=<optimized out>,
cb=cb@entry=0x40edb0 <ovsdb_monitor_change_cb>,
    aux=aux@entry=0x7fff1aa0ec60) at ovsdb/transaction.c:906
#6  0x000000000040e0bc in ovsdb_monitor_commit (replica=0x10960a0,
txn=<optimized out>, durable=<optimized out>) at ovsdb/monitor.c:1553
#7  0x00000000004157ca in ovsdb_txn_commit_ (durable=<optimized out>,
txn=0x10962c0) at ovsdb/transaction.c:868
#8  ovsdb_txn_commit (txn=txn@entry=0x10962c0, durable=durable@entry=false)
at ovsdb/transaction.c:893
#9  0x0000000000410c9e in process_notification (table_updates=0x1096470,
db=0x1083b00) at ovsdb/replication.c:569
#10 0x0000000000411ca6 in process_notification (db=<optimized out>,
table_updates=<optimized out>) at ovsdb/replication.c:549
#11 replication_run () at ovsdb/replication.c:182
#12 0x0000000000406144 in main_loop (is_backup=0x7fff1aa0eee6,
exiting=0x7fff1aa0eee7, run_process=0x0, remotes=0x7fff1aa0ef30,
unixctl=0x1094980,
    all_dbs=0x7fff1aa0ef70, jsonrpc=0x1070df0) at ovsdb/ovsdb-server.c:197
#13 main (argc=1, argv=0x7fff1aa0f208) at ovsdb/ovsdb-server.c:425
(gdb) quit
​************

2. When I call unix command ovsdb-server/set-active-ovsdb-server without
passing the active ovsdb server's address.

*****
(gdb) bt
#0  0x00007f05fe75069a in strlen () from /lib64/libc.so.6
#1  0x0000000000432fd9 in xstrdup (s=0x0) at lib/util.c:151
#2  0x0000000000407fa2 in ovsdb_server_set_active_ovsdb_server
(conn=0xf5c9e0, argc=<optimized out>, argv=0xf4de60, config_=0x7fff53e12810)
    at ovsdb/ovsdb-server.c:1132
#3  0x0000000000432621 in process_command (request=0xf5dbe0, conn=0xf5c9e0)
at lib/unixctl.c:313
#4  run_connection (conn=0xf5c9e0) at lib/unixctl.c:347
#5  unixctl_server_run (server=server@entry=0xf5b980) at lib/unixctl.c:400
#6  0x0000000000405c21 in main_loop (is_backup=0x7fff53e12766,
exiting=0x7fff53e12767, run_process=0x0, remotes=0x7fff53e127b0,
unixctl=0xf5b980,
    all_dbs=0x7fff53e127f0, jsonrpc=0xf37df0) at ovsdb/ovsdb-server.c:182
#7  main (argc=1, argv=0x7fff53e12a88) at ovsdb/ovsdb-server.c:425
****



3. When I call unix command ovsdb-server/connect-active-ovsdb-server if the
active ovsdb server is not yet set.
**********
(gdb) bt
#0  0x00007fa37f08469a in strlen () from /lib64/libc.so.6
#1  0x0000000000432fd9 in xstrdup (s=s@entry=0x0) at lib/util.c:151
#2  0x0000000000411440 in replication_init (sync_from_=0x0,
exclude_tables=0x0) at ovsdb/replication.c:114
#3  0x00000000004079be in ovsdb_replication_init (sync_from=<optimized
out>, exclude=<optimized out>, all_dbs=0x7ffc530ca900)
    at ovsdb/ovsdb-server.c:142
#4  0x0000000000408183 in ovsdb_server_connect_active_ovsdb_server
(conn=0x1c6fce0, argc=<optimized out>, argv=<optimized out>,
    config_=0x7ffc530ca920) at ovsdb/ovsdb-server.c:1157
#5  0x0000000000432621 in process_command (request=0x1c6fdc0,
conn=0x1c6fce0) at lib/unixctl.c:313
#6  run_connection (conn=0x1c6fce0) at lib/unixctl.c:347
#7  unixctl_server_run (server=server@entry=0x1c6e710) at lib/unixctl.c:400
#8  0x0000000000405c21 in main_loop (is_backup=0x7ffc530ca876,
exiting=0x7ffc530ca877, run_process=0x0, remotes=0x7ffc530ca8c0,
unixctl=0x1c6e710,
    all_dbs=0x7ffc530ca900, jsonrpc=0x1c4ad60) at ovsdb/ovsdb-server.c:182
#9  main (argc=1, argv=0x7ffc530cab90) at ovsdb/ovsdb-server.c:425

******

Thanks
Numan

--
> 1.9.1
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to