On Thu, Aug 25, 2016 at 5:37 AM, Andy Zhou <[email protected]> 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
> [email protected]
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev