Message ID | 1562774836-27253-1-git-send-email-twilson@redhat.com |
---|---|
State | Superseded |
Headers | show |
Series | [ovs-dev] Shutdown SSL connection before closing socket | expand |
An example of a reproducer script attached. If you enable SSL and OVN w/ the sandbox and run it, looking in the sandbox/nb1.log you'll see the disconnect errors that the patch makes go away. On Wed, Jul 10, 2019 at 11:07 AM Terry Wilson <twilson@redhat.com> wrote: > Without shutting down the SSL connection, log messages like: > > stream_ssl|WARN|SSL_read: unexpected SSL connection close > jsonrpc|WARN|ssl:127.0.0.1:47052: receive error: Protocol error > reconnect|WARN|ssl:127.0.0.1:47052: connection dropped (Protocol error) > > would occur whenever the socket is closed. This just adds an > SSLStream.close() that calls shutdown() and ignores read/write > errors. > > Signed-off-by: Terry Wilson <twilson@redhat.com> > --- > python/ovs/stream.py | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/python/ovs/stream.py b/python/ovs/stream.py > index c15be4b..fd1045e 100644 > --- a/python/ovs/stream.py > +++ b/python/ovs/stream.py > @@ -825,6 +825,14 @@ class SSLStream(Stream): > except SSL.SysCallError as e: > return -ovs.socket_util.get_exception_errno(e) > > + def close(self): > + if self.socket: > + try: > + self.socket.shutdown() > + except (SSL.WantReadError, SSL.WantWriteError): > + pass > + return super(SSLStream, self).close() > + > > if SSL: > # Register SSL only if the OpenSSL module is available > -- > 1.8.3.1 > >
On 7/10/19 12:11 PM, Terry Wilson wrote: > An example of a reproducer script attached. If you enable SSL and OVN w/ > the sandbox and run it, looking in the sandbox/nb1.log you'll see the > disconnect errors that the patch makes go away. > Hi Terry. It looks like the mailing list has eaten your attachment. If possible, can you include it in-line? > On Wed, Jul 10, 2019 at 11:07 AM Terry Wilson <twilson@redhat.com> wrote: > >> Without shutting down the SSL connection, log messages like: >> >> stream_ssl|WARN|SSL_read: unexpected SSL connection close >> jsonrpc|WARN|ssl:127.0.0.1:47052: receive error: Protocol error >> reconnect|WARN|ssl:127.0.0.1:47052: connection dropped (Protocol error) >> >> would occur whenever the socket is closed. This just adds an >> SSLStream.close() that calls shutdown() and ignores read/write >> errors. >> >> Signed-off-by: Terry Wilson <twilson@redhat.com> >> --- >> python/ovs/stream.py | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/python/ovs/stream.py b/python/ovs/stream.py >> index c15be4b..fd1045e 100644 >> --- a/python/ovs/stream.py >> +++ b/python/ovs/stream.py >> @@ -825,6 +825,14 @@ class SSLStream(Stream): >> except SSL.SysCallError as e: >> return -ovs.socket_util.get_exception_errno(e) >> >> + def close(self): >> + if self.socket: >> + try: >> + self.socket.shutdown() >> + except (SSL.WantReadError, SSL.WantWriteError): >> + pass >> + return super(SSLStream, self).close() >> + >> >> if SSL: >> # Register SSL only if the OpenSSL module is available >> -- >> 1.8.3.1 >> >> >> >> _______________________________________________ >> dev mailing list >> dev@openvswitch.org >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
from __future__ import print_function import sys from ovs import jsonrpc from ovs import stream from ovs.unixctl import client URI='ssl:127.0.0.1:6641' PRIV='sandbox/ovnnb-privkey.pem' CERT='sandbox/ovnnb-cert.pem' CACERT='sandbox/pki/switchca/cacert.pem' stream.Stream.ssl_set_private_key_file(PRIV) stream.Stream.ssl_set_certificate_file(CERT) stream.Stream.ssl_set_ca_cert_file(CACERT) class SSLClient(client.UnixctlClient): @classmethod def create(cls, uri): error, _stream = stream.Stream.open_block( stream.Stream.open(uri)) if error: client.vlog.warn("failed to connect to %s" % path) return error, None return 0, cls(jsonrpc.Connection(_stream)) _, c = SSLClient.create(URI) print(c.transact("echo", ["hello world"])) c.close() On Wed, Jul 10, 2019 at 12:17 PM Mark Michelson <mmichels@redhat.com> wrote: > On 7/10/19 12:11 PM, Terry Wilson wrote: > > An example of a reproducer script attached. If you enable SSL and OVN w/ > > the sandbox and run it, looking in the sandbox/nb1.log you'll see the > > disconnect errors that the patch makes go away. > > > > Hi Terry. It looks like the mailing list has eaten your attachment. If > possible, can you include it in-line? > > > On Wed, Jul 10, 2019 at 11:07 AM Terry Wilson <twilson@redhat.com> > wrote: > > > >> Without shutting down the SSL connection, log messages like: > >> > >> stream_ssl|WARN|SSL_read: unexpected SSL connection close > >> jsonrpc|WARN|ssl:127.0.0.1:47052: receive error: Protocol error > >> reconnect|WARN|ssl:127.0.0.1:47052: connection dropped (Protocol error) > >> > >> would occur whenever the socket is closed. This just adds an > >> SSLStream.close() that calls shutdown() and ignores read/write > >> errors. > >> > >> Signed-off-by: Terry Wilson <twilson@redhat.com> > >> --- > >> python/ovs/stream.py | 8 ++++++++ > >> 1 file changed, 8 insertions(+) > >> > >> diff --git a/python/ovs/stream.py b/python/ovs/stream.py > >> index c15be4b..fd1045e 100644 > >> --- a/python/ovs/stream.py > >> +++ b/python/ovs/stream.py > >> @@ -825,6 +825,14 @@ class SSLStream(Stream): > >> except SSL.SysCallError as e: > >> return -ovs.socket_util.get_exception_errno(e) > >> > >> + def close(self): > >> + if self.socket: > >> + try: > >> + self.socket.shutdown() > >> + except (SSL.WantReadError, SSL.WantWriteError): > >> + pass > >> + return super(SSLStream, self).close() > >> + > >> > >> if SSL: > >> # Register SSL only if the OpenSSL module is available > >> -- > >> 1.8.3.1 > >> > >> > >> > >> _______________________________________________ > >> dev mailing list > >> dev@openvswitch.org > >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev > >
On Wed, Jul 10, 2019 at 11:07:16AM -0500, Terry Wilson wrote: > Without shutting down the SSL connection, log messages like: > > stream_ssl|WARN|SSL_read: unexpected SSL connection close > jsonrpc|WARN|ssl:127.0.0.1:47052: receive error: Protocol error > reconnect|WARN|ssl:127.0.0.1:47052: connection dropped (Protocol error) > > would occur whenever the socket is closed. This just adds an > SSLStream.close() that calls shutdown() and ignores read/write > errors. > > Signed-off-by: Terry Wilson <twilson@redhat.com> Thanks for the patch. With this applied, I get two test failures, details below. ## ------------------------ ## ## Summary of the failures. ## ## ------------------------ ## Failed tests: openvswitch 2.11.90 test suite test groups: NUM: FILE-NAME:LINE TEST-GROUP-NAME KEYWORDS 2108: ovsdb-idl.at:351 simple idl, initially empty, various ops - Python2 - SSL ovsdb server idl positive python with ssl socket 2439: ovsdb-idl.at:1452 simple idl verify notify - Python2 - SSL ovsdb server idl positive python with ssl socket notify ## ---------------------- ## ## Detailed failed tests. ## ## ---------------------- ## # -*- compilation -*- 2108. ovsdb-idl.at:351: testing simple idl, initially empty, various ops - Python2 - SSL ... ../../tests/ovsdb-idl.at:351: ovsdb-tool create db $abs_srcdir/idltest.ovsschema stderr: stdout: ../../tests/ovsdb-idl.at:351: ovsdb-server -vconsole:warn --log-file --detach --no-chdir \ --pidfile \ --private-key=$PKIDIR/testpki-privkey2.pem \ --certificate=$PKIDIR/testpki-cert2.pem \ --ca-cert=$PKIDIR/testpki-cacert.pem \ --remote=pssl:0:127.0.0.1 db ovsdb-idl.at:351: waiting until TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"... ovsdb-idl.at:351: wait succeeded immediately ../../tests/ovsdb-idl.at:351: $PYTHON $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema \ ssl:127.0.0.1:$TCP_PORT $PKIDIR/testpki-privkey.pem \ $PKIDIR/testpki-cert.pem $PKIDIR/testpki-cacert.pem '["idltest", {"op": "insert", "table": "simple", "row": {"i": 1, "r": 2.0, "b": true, "s": "mystring", "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"], "ia": ["set", [1, 2, 3]], "ra": ["set", [-0.5]], "ba": ["set", [true]], "sa": ["set", ["abc", "def"]], "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"], ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}}, {"op": "insert", "table": "simple", "row": {}}]' \ '["idltest", {"op": "update", "table": "simple", "where": [], "row": {"b": true}}]' \ '["idltest", {"op": "update", "table": "simple", "where": [], "row": {"r": 123.5}}]' \ '["idltest", {"op": "insert", "table": "simple", "row": {"i": -1, "r": 125, "b": false, "s": "", "ia": ["set", [1]], "ra": ["set", [1.5]], "ba": ["set", [false]], "sa": ["set", []], "ua": ["set", []]}}]' \ '["idltest", {"op": "update", "table": "simple", "where": [["i", "<", 1]], "row": {"s": "newstring"}}]' \ '["idltest", {"op": "delete", "table": "simple", "where": [["i", "==", 0]]}]' \ 'reconnect' stderr: 2019-07-10T19:57:50Z | 0 | reconnect | DBG | ssl:127.0.0.1:38627: entering BACKOFF 2019-07-10T19:57:50Z | 1 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 2 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 3 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 4 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 5 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 6 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 7 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 8 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 9 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 10 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 11 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 12 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 13 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 14 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:50Z | 15 | reconnect | INFO | ssl:127.0.0.1:38627: connecting... 2019-07-10T19:57:50Z | 16 | reconnect | DBG | ssl:127.0.0.1:38627: entering CONNECTING 2019-07-10T19:57:50Z | 17 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 18 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 19 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 20 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 21 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 22 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 23 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 24 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 25 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 26 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:50Z | 27 | reconnect | INFO | ssl:127.0.0.1:38627: connected 2019-07-10T19:57:50Z | 28 | reconnect | DBG | ssl:127.0.0.1:38627: entering ACTIVE 2019-07-10T19:57:50Z | 29 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="get_schema", params=["_Server","ff61df02-a34c-11e9-9ea0-34e12ddfbbd2"], id=0 2019-07-10T19:57:50Z | 30 | poller | DBG | [POLLIN] on fd 4 2019-07-10T19:57:50Z | 31 | poller | DBG | [POLLIN] on fd 4 2019-07-10T19:57:50Z | 32 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result={"cksum":"3236486585 698","name":"_Server","tables":{"Database":{"columns":{"cid":{"type":{"key":"uuid","min":0}},"connected":{"type":"boolean"},"index":{"type":{"key":"integer","min":0}},"leader":{"type":"boolean"},"model":{"type":{"key":{"enum":["set",["clustered","standalone"]],"type":"string"}}},"name":{"type":"string"},"schema":{"type":{"key":"string","min":0}},"sid":{"type":{"key":"uuid","min":0}}}}},"version":"1.1.0"}, id=0 2019-07-10T19:57:50Z | 33 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="monitor", params=["_Server","ff61df03-a34c-11e9-9ea0-34e12ddfbbd2",{"Database":[{"columns":["index","name","cid","connected","sid","model","leader","schema"]}]}], id=1 2019-07-10T19:57:50Z | 34 | poller | DBG | [POLLIN] on fd 4 2019-07-10T19:57:50Z | 35 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result={"Database":{"869cda25-6f0d-42db-b423-fca0b2f2c0f3":{"new":{"cid":["set",[]],"connected":true,"index":["set",[]],"leader":true,"model":"standalone","name":"idltest","schema":"{\"name\":\"idltest\",\"tables\":{\"link1\":{\"columns\":{\"i\":{\"type\":\"integer\"},\"k\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"}}},\"ka\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"},\"max\":\"unlimited\",\"min\":0}},\"l2\":{\"type\":{\"key\":{\"refTable\":\"link2\",\"type\":\"uuid\"},\"min\":0}}},\"isRoot\":true},\"link2\":{\"columns\":{\"i\":{\"type\":\"integer\"},\"l1\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"},\"min\":0}}},\"isRoot\":true},\"simple\":{\"columns\":{\"b\":{\"type\":\"boolean\"},\"ba\":{\"type\":{\"key\":\"boolean\",\"min\":0}},\"i\":{\"type\":\"integer\"},\"ia\":{\"type\":{\"key\":\"integer\",\"max\":\"unlimited\",\"min\":0}},\"r\":{\"t ype\":\"real\"},\"ra\":{\"type\":{\"key\":\"real\",\"max\":\"unlimited\",\"min\":0}},\"s\":{\"type\":\"string\"},\"sa\":{\"type\":{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0}},\"u\":{\"type\":\"uuid\"},\"ua\":{\"type\":{\"key\":\"uuid\",\"max\":\"unlimited\",\"min\":0}}},\"isRoot\":true},\"simple2\":{\"columns\":{\"imap\":{\"type\":{\"key\":{\"maxInteger\":4095,\"minInteger\":0,\"type\":\"integer\"},\"max\":\"unlimited\",\"min\":0,\"value\":\"string\"}},\"name\":{\"type\":\"string\"},\"smap\":{\"type\":{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0,\"value\":\"string\"}}},\"isRoot\":true},\"simple3\":{\"columns\":{\"name\":{\"type\":\"string\"},\"uref\":{\"type\":{\"key\":{\"refTable\":\"simple4\",\"type\":\"uuid\"},\"max\":\"unlimited\",\"min\":0}},\"uset\":{\"type\":{\"key\":\"uuid\",\"max\":\"unlimited\",\"min\":0}}},\"isRoot\":true},\"simple4\":{\"columns\":{\"name\":{\"type\":\"string\"}}},\"singleton\":{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot \":true,\"maxRows\":1}},\"version\":\"1.2.3\"}","sid":["set",[]]}},"8b4cbe1b-4468-4fee-abde-3b7d47768609":{"new":{"cid":["set",[]],"connected":true,"index":["set",[]],"leader":true,"model":"standalone","name":"_Server","schema":"{\"cksum\":\"3236486585 698\",\"name\":\"_Server\",\"tables\":{\"Database\":{\"columns\":{\"cid\":{\"type\":{\"key\":\"uuid\",\"min\":0}},\"connected\":{\"type\":\"boolean\"},\"index\":{\"type\":{\"key\":\"integer\",\"min\":0}},\"leader\":{\"type\":\"boolean\"},\"model\":{\"type\":{\"key\":{\"enum\":[\"set\",[\"clustered\",\"standalone\"]],\"type\":\"string\"}}},\"name\":{\"type\":\"string\"},\"schema\":{\"type\":{\"key\":\"string\",\"min\":0}},\"sid\":{\"type\":{\"key\":\"uuid\",\"min\":0}}}}},\"version\":\"1.1.0\"}","sid":["set",[]]}}}}, id=1 2019-07-10T19:57:50Z | 36 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="monitor_cond", params=["idltest","ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"link1":[{"columns":["i","k","l2","ka"]}],"link2":[{"columns":["i","l1"]}],"simple":[{"columns":["b","ba","i","s","r","u","ra","ia","sa","ua"]}],"simple2":[{"columns":["smap","name","imap"]}],"simple3":[{"columns":["uset","uref","name"]}],"simple4":[{"columns":["name"]}],"singleton":[{"columns":["name"]}]}], id=2 2019-07-10T19:57:50Z | 37 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="set_db_change_aware", params=[true], id=3 2019-07-10T19:57:50Z | 38 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result={}, id=2 2019-07-10T19:57:50Z | 39 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result={}, id=3 2019-07-10T19:57:50Z | 40 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="transact", params=["idltest",{"op":"insert","row":{"b":true,"ba":["set",[true]],"i":1,"ia":["set",[1,2,3]],"r":2,"ra":["set",[-0.5]],"s":"mystring","sa":["set",["abc","def"]],"u":["uuid","84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],"ua":["set",[["uuid","69443985-7806-45e2-b35f-574a04e720f9"],["uuid","aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]},"table":"simple"},{"op":"insert","row":{},"table":"simple"}], id=4 2019-07-10T19:57:50Z | 41 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:50Z | 42 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result=[{"uuid":["uuid","27465769-398f-41ef-b1c0-c95e7097c56f"]},{"uuid":["uuid","44f32e1a-3e90-4af1-99df-ea62d4105087"]}], id=4 #0# = 27465769-398f-41ef-b1c0-c95e7097c56f #1# = 44f32e1a-3e90-4af1-99df-ea62d4105087 2019-07-10T19:57:50Z | 43 | jsonrpc | DBG | ssl:127.0.0.1:38627: received notification, method="update2", params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"27465769-398f-41ef-b1c0-c95e7097c56f":{"insert":{"b":true,"ba":true,"i":1,"ia":["set",[1,2,3]],"r":2,"ra":-0.5,"s":"mystring","sa":["set",["abc","def"]],"u":["uuid","84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],"ua":["set",[["uuid","69443985-7806-45e2-b35f-574a04e720f9"],["uuid","aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},"44f32e1a-3e90-4af1-99df-ea62d4105087":{"insert":{}}}}] 2019-07-10T19:57:50Z | 44 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="transact", params=["idltest",{"op":"update","row":{"b":true},"table":"simple","where":[]}], id=5 2019-07-10T19:57:50Z | 45 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:50Z | 46 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result=[{"count":2}], id=5 2019-07-10T19:57:50Z | 47 | jsonrpc | DBG | ssl:127.0.0.1:38627: received notification, method="update2", params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"44f32e1a-3e90-4af1-99df-ea62d4105087":{"modify":{"b":true}}}}] 2019-07-10T19:57:50Z | 48 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="transact", params=["idltest",{"op":"update","row":{"r":123.5},"table":"simple","where":[]}], id=6 2019-07-10T19:57:50Z | 49 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:50Z | 50 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result=[{"count":2}], id=6 2019-07-10T19:57:50Z | 51 | jsonrpc | DBG | ssl:127.0.0.1:38627: received notification, method="update2", params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"27465769-398f-41ef-b1c0-c95e7097c56f":{"modify":{"r":123.5}},"44f32e1a-3e90-4af1-99df-ea62d4105087":{"modify":{"r":123.5}}}}] 2019-07-10T19:57:50Z | 52 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="transact", params=["idltest",{"op":"insert","row":{"b":false,"ba":["set",[false]],"i":-1,"ia":["set",[1]],"r":125,"ra":["set",[1.5]],"s":"","sa":["set",[]],"ua":["set",[]]},"table":"simple"}], id=7 2019-07-10T19:57:50Z | 53 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:50Z | 54 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result=[{"uuid":["uuid","9a543c13-2b92-4be1-89e2-60fdb1171566"]}], id=7 #2# = 9a543c13-2b92-4be1-89e2-60fdb1171566 2019-07-10T19:57:50Z | 55 | jsonrpc | DBG | ssl:127.0.0.1:38627: received notification, method="update2", params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"9a543c13-2b92-4be1-89e2-60fdb1171566":{"insert":{"ba":false,"i":-1,"ia":1,"r":125,"ra":1.5}}}}] 2019-07-10T19:57:50Z | 56 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="transact", params=["idltest",{"op":"update","row":{"s":"newstring"},"table":"simple","where":[["i","<",1]]}], id=8 2019-07-10T19:57:50Z | 57 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:50Z | 58 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result=[{"count":2}], id=8 2019-07-10T19:57:50Z | 59 | jsonrpc | DBG | ssl:127.0.0.1:38627: received notification, method="update2", params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"44f32e1a-3e90-4af1-99df-ea62d4105087":{"modify":{"s":"newstring"}},"9a543c13-2b92-4be1-89e2-60fdb1171566":{"modify":{"s":"newstring"}}}}] 2019-07-10T19:57:50Z | 60 | jsonrpc | DBG | ssl:127.0.0.1:38627: send request, method="transact", params=["idltest",{"op":"delete","table":"simple","where":[["i","==",0]]}], id=9 2019-07-10T19:57:50Z | 61 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:50Z | 62 | jsonrpc | DBG | ssl:127.0.0.1:38627: received reply, result=[{"count":1}], id=9 2019-07-10T19:57:50Z | 63 | jsonrpc | DBG | ssl:127.0.0.1:38627: received notification, method="update2", params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"44f32e1a-3e90-4af1-99df-ea62d4105087":{"delete":null}}}] 2019-07-10T19:57:50Z | 64 | reconnect | DBG | ssl:127.0.0.1:38627: entering RECONNECT 2019-07-10T19:57:50Z | 65 | reconnect | INFO | ssl:127.0.0.1:38627: connection closed by client 2019-07-10T19:57:50Z | 66 | reconnect | DBG | ssl:127.0.0.1:38627: entering BACKOFF Traceback (most recent call last): File "../../../../tests/test-ovsdb.py", line 962, in <module> main(sys.argv) File "../../../../tests/test-ovsdb.py", line 957, in main func(*args) File "../../../../tests/test-ovsdb.py", line 706, in do_idl while idl.change_seqno == seqno and not idl.run(): File "/home/blp/nicira/ovs/python/ovs/db/idl.py", line 242, in run self._session.run() File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 538, in run self.__disconnect() File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 454, in __disconnect self.rpc.close() File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 196, in close self.stream.close() File "/home/blp/nicira/ovs/python/ovs/stream.py", line 831, in close self.socket.shutdown() File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 1993, in shutdown self._raise_ssl_error(self._ssl, result) File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 1631, in _raise_ssl_error raise SysCallError(errno, errorcode.get(errno)) OpenSSL.SSL.SysCallError: (9, 'EBADF') stdout: 000: empty 001: {"error":null,"result":[{"uuid":["uuid","27465769-398f-41ef-b1c0-c95e7097c56f"]},{"uuid":["uuid","44f32e1a-3e90-4af1-99df-ea62d4105087"]}]} 002: i=0 r=0 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 002: i=1 r=2 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=27465769-398f-41ef-b1c0-c95e7097c56f 003: {"error":null,"result":[{"count":2}]} 004: i=0 r=0 b=true s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 004: i=1 r=2 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=27465769-398f-41ef-b1c0-c95e7097c56f 005: {"error":null,"result":[{"count":2}]} 006: i=0 r=123.5 b=true s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 006: i=1 r=123.5 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=27465769-398f-41ef-b1c0-c95e7097c56f 007: {"error":null,"result":[{"uuid":["uuid","9a543c13-2b92-4be1-89e2-60fdb1171566"]}]} 008: i=0 r=123.5 b=true s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 008: i=-1 r=125 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=9a543c13-2b92-4be1-89e2-60fdb1171566 008: i=1 r=123.5 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=27465769-398f-41ef-b1c0-c95e7097c56f 009: {"error":null,"result":[{"count":2}]} 010: i=0 r=123.5 b=true s=newstring u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 010: i=-1 r=125 b=false s=newstring u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=9a543c13-2b92-4be1-89e2-60fdb1171566 010: i=1 r=123.5 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=27465769-398f-41ef-b1c0-c95e7097c56f 011: {"error":null,"result":[{"count":1}]} 012: i=-1 r=125 b=false s=newstring u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=9a543c13-2b92-4be1-89e2-60fdb1171566 012: i=1 r=123.5 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=27465769-398f-41ef-b1c0-c95e7097c56f 013: reconnect ../../tests/ovsdb-idl.at:351: exit code was 1, expected 0 2108. ovsdb-idl.at:351: 2108. simple idl, initially empty, various ops - Python2 - SSL (ovsdb-idl.at:351): FAILED (ovsdb-idl.at:351) # -*- compilation -*- 2439. ovsdb-idl.at:1452: testing simple idl verify notify - Python2 - SSL ... ../../tests/ovsdb-idl.at:1452: ovsdb-tool create db $abs_srcdir/idltest.ovsschema stderr: stdout: ../../tests/ovsdb-idl.at:1452: ovsdb-server -vconsole:warn --log-file --detach --no-chdir \ --pidfile \ --private-key=$PKIDIR/testpki-privkey2.pem \ --certificate=$PKIDIR/testpki-cert2.pem \ --ca-cert=$PKIDIR/testpki-cacert.pem \ --remote=pssl:0:127.0.0.1 db ovsdb-idl.at:1452: waiting until TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"... ovsdb-idl.at:1452: wait succeeded immediately ../../tests/ovsdb-idl.at:1452: $PYTHON2 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema \ ssl:127.0.0.1:$TCP_PORT $PKIDIR/testpki-privkey.pem \ $PKIDIR/testpki-cert.pem $PKIDIR/testpki-cacert.pem 'track-notify' \ '["idltest", {"op": "insert", "table": "simple", "row": {"i": 1, "r": 2.0, "b": true, "s": "mystring", "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"], "ia": ["set", [1, 2, 3]], "ra": ["set", [-0.5]], "ba": ["set", [true]], "sa": ["set", ["abc", "def"]], "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"], ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}}, {"op": "insert", "table": "simple", "row": {}}]' \ '["idltest", {"op": "update", "table": "simple", "where": [], "row": {"b": false}}]' \ '["idltest", {"op": "update", "table": "simple", "where": [], "row": {"r": 123.5}}]' \ '["idltest", {"op": "insert", "table": "simple", "row": {"i": -1, "r": 125, "b": false, "s": "", "ia": ["set", [1]], "ra": ["set", [1.5]], "ba": ["set", [false]], "sa": ["set", []], "ua": ["set", []]}}]' \ '["idltest", {"op": "update", "table": "simple", "where": [["i", "<", 1]], "row": {"s": "newstring"}}]' \ '["idltest", {"op": "delete", "table": "simple", "where": [["i", "==", 0]]}]' \ 'reconnect' stderr: 2019-07-10T19:57:51Z | 0 | reconnect | DBG | ssl:127.0.0.1:41187: entering BACKOFF 2019-07-10T19:57:51Z | 1 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 2 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 3 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 4 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 5 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 6 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 7 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 8 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 9 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 10 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 11 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 12 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 13 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 14 | poller | DBG | [POLLOUT] on fd 3 2019-07-10T19:57:51Z | 15 | reconnect | INFO | ssl:127.0.0.1:41187: connecting... 2019-07-10T19:57:51Z | 16 | reconnect | DBG | ssl:127.0.0.1:41187: entering CONNECTING 2019-07-10T19:57:51Z | 17 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 18 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 19 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 20 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 21 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 22 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 23 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 24 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 25 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 26 | poller | DBG | [POLLOUT] on fd 4 2019-07-10T19:57:51Z | 27 | reconnect | INFO | ssl:127.0.0.1:41187: connected 2019-07-10T19:57:51Z | 28 | reconnect | DBG | ssl:127.0.0.1:41187: entering ACTIVE 2019-07-10T19:57:51Z | 29 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="get_schema", params=["_Server","ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2"], id=0 2019-07-10T19:57:51Z | 30 | poller | DBG | [POLLIN] on fd 4 2019-07-10T19:57:51Z | 31 | poller | DBG | [POLLIN] on fd 4 2019-07-10T19:57:51Z | 32 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result={"cksum":"3236486585 698","name":"_Server","tables":{"Database":{"columns":{"cid":{"type":{"key":"uuid","min":0}},"connected":{"type":"boolean"},"index":{"type":{"key":"integer","min":0}},"leader":{"type":"boolean"},"model":{"type":{"key":{"enum":["set",["clustered","standalone"]],"type":"string"}}},"name":{"type":"string"},"schema":{"type":{"key":"string","min":0}},"sid":{"type":{"key":"uuid","min":0}}}}},"version":"1.1.0"}, id=0 2019-07-10T19:57:51Z | 33 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="monitor", params=["_Server","ff8c3ded-a34c-11e9-9ea0-34e12ddfbbd2",{"Database":[{"columns":["index","name","cid","connected","sid","model","leader","schema"]}]}], id=1 2019-07-10T19:57:51Z | 34 | poller | DBG | [POLLIN] on fd 4 2019-07-10T19:57:51Z | 35 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result={"Database":{"239e9f59-7b01-4a90-a4a6-843016603201":{"new":{"cid":["set",[]],"connected":true,"index":["set",[]],"leader":true,"model":"standalone","name":"_Server","schema":"{\"cksum\":\"3236486585 698\",\"name\":\"_Server\",\"tables\":{\"Database\":{\"columns\":{\"cid\":{\"type\":{\"key\":\"uuid\",\"min\":0}},\"connected\":{\"type\":\"boolean\"},\"index\":{\"type\":{\"key\":\"integer\",\"min\":0}},\"leader\":{\"type\":\"boolean\"},\"model\":{\"type\":{\"key\":{\"enum\":[\"set\",[\"clustered\",\"standalone\"]],\"type\":\"string\"}}},\"name\":{\"type\":\"string\"},\"schema\":{\"type\":{\"key\":\"string\",\"min\":0}},\"sid\":{\"type\":{\"key\":\"uuid\",\"min\":0}}}}},\"version\":\"1.1.0\"}","sid":["set",[]]}},"9211a231-3a07-4cd6-9e1f-687dc969cc36":{"new":{"cid":["set",[]],"connected":true,"index":["set",[]],"leader":true,"model":"standalone","name":"idltest","schema":"{\"name\":\"idltest\" ,\"tables\":{\"link1\":{\"columns\":{\"i\":{\"type\":\"integer\"},\"k\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"}}},\"ka\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"},\"max\":\"unlimited\",\"min\":0}},\"l2\":{\"type\":{\"key\":{\"refTable\":\"link2\",\"type\":\"uuid\"},\"min\":0}}},\"isRoot\":true},\"link2\":{\"columns\":{\"i\":{\"type\":\"integer\"},\"l1\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"},\"min\":0}}},\"isRoot\":true},\"simple\":{\"columns\":{\"b\":{\"type\":\"boolean\"},\"ba\":{\"type\":{\"key\":\"boolean\",\"min\":0}},\"i\":{\"type\":\"integer\"},\"ia\":{\"type\":{\"key\":\"integer\",\"max\":\"unlimited\",\"min\":0}},\"r\":{\"type\":\"real\"},\"ra\":{\"type\":{\"key\":\"real\",\"max\":\"unlimited\",\"min\":0}},\"s\":{\"type\":\"string\"},\"sa\":{\"type\":{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0}},\"u\":{\"type\":\"uuid\"},\"ua\":{\"type\":{\"key\":\"uuid\",\"max\":\"unlimited\",\"min\":0}}},\"is Root\":true},\"simple2\":{\"columns\":{\"imap\":{\"type\":{\"key\":{\"maxInteger\":4095,\"minInteger\":0,\"type\":\"integer\"},\"max\":\"unlimited\",\"min\":0,\"value\":\"string\"}},\"name\":{\"type\":\"string\"},\"smap\":{\"type\":{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0,\"value\":\"string\"}}},\"isRoot\":true},\"simple3\":{\"columns\":{\"name\":{\"type\":\"string\"},\"uref\":{\"type\":{\"key\":{\"refTable\":\"simple4\",\"type\":\"uuid\"},\"max\":\"unlimited\",\"min\":0}},\"uset\":{\"type\":{\"key\":\"uuid\",\"max\":\"unlimited\",\"min\":0}}},\"isRoot\":true},\"simple4\":{\"columns\":{\"name\":{\"type\":\"string\"}}},\"singleton\":{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot\":true,\"maxRows\":1}},\"version\":\"1.2.3\"}","sid":["set",[]]}}}}, id=1 2019-07-10T19:57:51Z | 36 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="monitor_cond", params=["idltest","ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"link1":[{"columns":["i","k","l2","ka"]}],"link2":[{"columns":["i","l1"]}],"simple":[{"columns":["b","ba","i","s","r","u","ra","ia","sa","ua"]}],"simple2":[{"columns":["smap","name","imap"]}],"simple3":[{"columns":["uset","uref","name"]}],"simple4":[{"columns":["name"]}],"singleton":[{"columns":["name"]}]}], id=2 2019-07-10T19:57:51Z | 37 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="set_db_change_aware", params=[true], id=3 2019-07-10T19:57:51Z | 38 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result={}, id=2 2019-07-10T19:57:51Z | 39 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result={}, id=3 2019-07-10T19:57:51Z | 40 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="transact", params=["idltest",{"op":"insert","row":{"b":true,"ba":["set",[true]],"i":1,"ia":["set",[1,2,3]],"r":2,"ra":["set",[-0.5]],"s":"mystring","sa":["set",["abc","def"]],"u":["uuid","84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],"ua":["set",[["uuid","69443985-7806-45e2-b35f-574a04e720f9"],["uuid","aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]},"table":"simple"},{"op":"insert","row":{},"table":"simple"}], id=4 2019-07-10T19:57:51Z | 41 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:51Z | 42 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result=[{"uuid":["uuid","a4f6fb38-66b3-43e4-b581-ecb2a64e6649"]},{"uuid":["uuid","8af7b362-7d87-4e5a-bdee-7daaebff2f3e"]}], id=4 #0# = a4f6fb38-66b3-43e4-b581-ecb2a64e6649 #1# = 8af7b362-7d87-4e5a-bdee-7daaebff2f3e 2019-07-10T19:57:51Z | 43 | jsonrpc | DBG | ssl:127.0.0.1:41187: received notification, method="update2", params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"8af7b362-7d87-4e5a-bdee-7daaebff2f3e":{"insert":{}},"a4f6fb38-66b3-43e4-b581-ecb2a64e6649":{"insert":{"b":true,"ba":true,"i":1,"ia":["set",[1,2,3]],"r":2,"ra":-0.5,"s":"mystring","sa":["set",["abc","def"]],"u":["uuid","84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],"ua":["set",[["uuid","69443985-7806-45e2-b35f-574a04e720f9"],["uuid","aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}}}}] 2019-07-10T19:57:51Z | 44 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="transact", params=["idltest",{"op":"update","row":{"b":false},"table":"simple","where":[]}], id=5 2019-07-10T19:57:51Z | 45 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:51Z | 46 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result=[{"count":2}], id=5 2019-07-10T19:57:51Z | 47 | jsonrpc | DBG | ssl:127.0.0.1:41187: received notification, method="update2", params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"a4f6fb38-66b3-43e4-b581-ecb2a64e6649":{"modify":{"b":false}}}}] 2019-07-10T19:57:51Z | 48 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="transact", params=["idltest",{"op":"update","row":{"r":123.5},"table":"simple","where":[]}], id=6 2019-07-10T19:57:51Z | 49 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:51Z | 50 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result=[{"count":2}], id=6 2019-07-10T19:57:51Z | 51 | jsonrpc | DBG | ssl:127.0.0.1:41187: received notification, method="update2", params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"8af7b362-7d87-4e5a-bdee-7daaebff2f3e":{"modify":{"r":123.5}},"a4f6fb38-66b3-43e4-b581-ecb2a64e6649":{"modify":{"r":123.5}}}}] 2019-07-10T19:57:51Z | 52 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="transact", params=["idltest",{"op":"insert","row":{"b":false,"ba":["set",[false]],"i":-1,"ia":["set",[1]],"r":125,"ra":["set",[1.5]],"s":"","sa":["set",[]],"ua":["set",[]]},"table":"simple"}], id=7 2019-07-10T19:57:51Z | 53 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:51Z | 54 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result=[{"uuid":["uuid","eff44ed3-4002-4da4-9877-d41b3364a894"]}], id=7 #2# = eff44ed3-4002-4da4-9877-d41b3364a894 2019-07-10T19:57:51Z | 55 | jsonrpc | DBG | ssl:127.0.0.1:41187: received notification, method="update2", params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"eff44ed3-4002-4da4-9877-d41b3364a894":{"insert":{"ba":false,"i":-1,"ia":1,"r":125,"ra":1.5}}}}] 2019-07-10T19:57:51Z | 56 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="transact", params=["idltest",{"op":"update","row":{"s":"newstring"},"table":"simple","where":[["i","<",1]]}], id=8 2019-07-10T19:57:51Z | 57 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:51Z | 58 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result=[{"count":2}], id=8 2019-07-10T19:57:51Z | 59 | jsonrpc | DBG | ssl:127.0.0.1:41187: received notification, method="update2", params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"8af7b362-7d87-4e5a-bdee-7daaebff2f3e":{"modify":{"s":"newstring"}},"eff44ed3-4002-4da4-9877-d41b3364a894":{"modify":{"s":"newstring"}}}}] 2019-07-10T19:57:51Z | 60 | jsonrpc | DBG | ssl:127.0.0.1:41187: send request, method="transact", params=["idltest",{"op":"delete","table":"simple","where":[["i","==",0]]}], id=9 2019-07-10T19:57:51Z | 61 | poller | DBG | [POLLIN] on fd 3 2019-07-10T19:57:51Z | 62 | jsonrpc | DBG | ssl:127.0.0.1:41187: received reply, result=[{"count":1}], id=9 2019-07-10T19:57:51Z | 63 | jsonrpc | DBG | ssl:127.0.0.1:41187: received notification, method="update2", params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"8af7b362-7d87-4e5a-bdee-7daaebff2f3e":{"delete":null}}}] 2019-07-10T19:57:51Z | 64 | reconnect | DBG | ssl:127.0.0.1:41187: entering RECONNECT 2019-07-10T19:57:51Z | 65 | reconnect | INFO | ssl:127.0.0.1:41187: connection closed by client 2019-07-10T19:57:51Z | 66 | reconnect | DBG | ssl:127.0.0.1:41187: entering BACKOFF Traceback (most recent call last): File "../../../../tests/test-ovsdb.py", line 962, in <module> main(sys.argv) File "../../../../tests/test-ovsdb.py", line 957, in main func(*args) File "../../../../tests/test-ovsdb.py", line 706, in do_idl while idl.change_seqno == seqno and not idl.run(): File "/home/blp/nicira/ovs/python/ovs/db/idl.py", line 242, in run self._session.run() File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 538, in run self.__disconnect() File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 454, in __disconnect self.rpc.close() File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 196, in close self.stream.close() File "/home/blp/nicira/ovs/python/ovs/stream.py", line 831, in close self.socket.shutdown() File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 1993, in shutdown self._raise_ssl_error(self._ssl, result) File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 1631, in _raise_ssl_error raise SysCallError(errno, errorcode.get(errno)) OpenSSL.SSL.SysCallError: (9, 'EBADF') stdout: 000: event:create, row={uuid=239e9f59-7b01-4a90-a4a6-843016603201}, updates=None 000: event:create, row={uuid=9211a231-3a07-4cd6-9e1f-687dc969cc36}, updates=None 000: empty 001: {"error":null,"result":[{"uuid":["uuid","a4f6fb38-66b3-43e4-b581-ecb2a64e6649"]},{"uuid":["uuid","8af7b362-7d87-4e5a-bdee-7daaebff2f3e"]}]} 002: event:create, row={i=0 r=0 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e}, updates=None 002: event:create, row={i=1 r=2 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649}, updates=None 002: i=0 r=0 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e 002: i=1 r=2 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 003: {"error":null,"result":[{"count":2}]} 004: event:update, row={i=1 r=2 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649}, updates={b=true uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649} 004: i=0 r=0 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e 004: i=1 r=2 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 005: {"error":null,"result":[{"count":2}]} 006: event:update, row={i=0 r=123.5 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e}, updates={r=0 uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e} 006: event:update, row={i=1 r=123.5 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649}, updates={r=2 uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649} 006: i=0 r=123.5 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e 006: i=1 r=123.5 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 007: {"error":null,"result":[{"uuid":["uuid","eff44ed3-4002-4da4-9877-d41b3364a894"]}]} 008: event:create, row={i=-1 r=125 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=eff44ed3-4002-4da4-9877-d41b3364a894}, updates=None 008: i=0 r=123.5 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e 008: i=1 r=123.5 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 008: i=-1 r=125 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=eff44ed3-4002-4da4-9877-d41b3364a894 009: {"error":null,"result":[{"count":2}]} 010: event:update, row={i=0 r=123.5 b=false s=newstring u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e}, updates={s= uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e} 010: event:update, row={i=-1 r=125 b=false s=newstring u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=eff44ed3-4002-4da4-9877-d41b3364a894}, updates={s= uuid=eff44ed3-4002-4da4-9877-d41b3364a894} 010: i=0 r=123.5 b=false s=newstring u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e 010: i=1 r=123.5 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 010: i=-1 r=125 b=false s=newstring u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=eff44ed3-4002-4da4-9877-d41b3364a894 011: {"error":null,"result":[{"count":1}]} 012: event:delete, row={i=0 r=123.5 b=false s=newstring u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e}, updates=None 012: i=1 r=123.5 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 aad11ef0-816a-4b01-93e6-03b8b4256b98] uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 012: i=-1 r=125 b=false s=newstring u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=eff44ed3-4002-4da4-9877-d41b3364a894 013: reconnect ../../tests/ovsdb-idl.at:1452: exit code was 1, expected 0 2439. ovsdb-idl.at:1452: 2439. simple idl verify notify - Python2 - SSL (ovsdb-idl.at:1452): FAILED (ovsdb-idl.at:1452)
Sorry about that. The dangers of multiple windows and multiple ovs directories. "Why is this passing for me?!" Oh... The new patch just ignores all SSL errors like lib/stream-ssl.c's ssl_close() instead of just the want read/write. On Wed, Jul 10, 2019 at 2:59 PM Ben Pfaff <blp@ovn.org> wrote: > On Wed, Jul 10, 2019 at 11:07:16AM -0500, Terry Wilson wrote: > > Without shutting down the SSL connection, log messages like: > > > > stream_ssl|WARN|SSL_read: unexpected SSL connection close > > jsonrpc|WARN|ssl:127.0.0.1:47052: receive error: Protocol error > > reconnect|WARN|ssl:127.0.0.1:47052: connection dropped (Protocol error) > > > > would occur whenever the socket is closed. This just adds an > > SSLStream.close() that calls shutdown() and ignores read/write > > errors. > > > > Signed-off-by: Terry Wilson <twilson@redhat.com> > > Thanks for the patch. > > With this applied, I get two test failures, details below. > > ## ------------------------ ## > ## Summary of the failures. ## > ## ------------------------ ## > Failed tests: > openvswitch 2.11.90 test suite test groups: > > NUM: FILE-NAME:LINE TEST-GROUP-NAME > KEYWORDS > > 2108: ovsdb-idl.at:351 simple idl, initially empty, various ops - > Python2 - SSL > ovsdb server idl positive python with ssl socket > 2439: ovsdb-idl.at:1452 simple idl verify notify - Python2 - SSL > ovsdb server idl positive python with ssl socket notify > > ## ---------------------- ## > ## Detailed failed tests. ## > ## ---------------------- ## > > # -*- compilation -*- > 2108. ovsdb-idl.at:351: testing simple idl, initially empty, various ops > - Python2 - SSL ... > ../../tests/ovsdb-idl.at:351: ovsdb-tool create db > $abs_srcdir/idltest.ovsschema > stderr: > stdout: > ../../tests/ovsdb-idl.at:351: ovsdb-server -vconsole:warn --log-file > --detach --no-chdir \ > --pidfile \ > --private-key=$PKIDIR/testpki-privkey2.pem \ > --certificate=$PKIDIR/testpki-cert2.pem \ > --ca-cert=$PKIDIR/testpki-cacert.pem \ > --remote=pssl:0:127.0.0.1 db > ovsdb-idl.at:351: waiting until TCP_PORT=`sed -n 's/.*0:.*: listening on > port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"... > ovsdb-idl.at:351: wait succeeded immediately > ../../tests/ovsdb-idl.at:351: $PYTHON $srcdir/test-ovsdb.py -t10 idl > $srcdir/idltest.ovsschema \ > ssl:127.0.0.1:$TCP_PORT $PKIDIR/testpki-privkey.pem \ > $PKIDIR/testpki-cert.pem $PKIDIR/testpki-cacert.pem > '["idltest", > {"op": "insert", > "table": "simple", > "row": {"i": 1, > "r": 2.0, > "b": true, > "s": "mystring", > "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"], > "ia": ["set", [1, 2, 3]], > "ra": ["set", [-0.5]], > "ba": ["set", [true]], > "sa": ["set", ["abc", "def"]], > "ua": ["set", [["uuid", > "69443985-7806-45e2-b35f-574a04e720f9"], > ["uuid", > "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}}, > {"op": "insert", > "table": "simple", > "row": {}}]' \ > '["idltest", > {"op": "update", > "table": "simple", > "where": [], > "row": {"b": true}}]' \ > '["idltest", > {"op": "update", > "table": "simple", > "where": [], > "row": {"r": 123.5}}]' \ > '["idltest", > {"op": "insert", > "table": "simple", > "row": {"i": -1, > "r": 125, > "b": false, > "s": "", > "ia": ["set", [1]], > "ra": ["set", [1.5]], > "ba": ["set", [false]], > "sa": ["set", []], > "ua": ["set", []]}}]' \ > '["idltest", > {"op": "update", > "table": "simple", > "where": [["i", "<", 1]], > "row": {"s": "newstring"}}]' \ > '["idltest", > {"op": "delete", > "table": "simple", > "where": [["i", "==", 0]]}]' \ > 'reconnect' > stderr: > 2019-07-10T19:57:50Z | 0 | reconnect | DBG | ssl:127.0.0.1:38627: > entering BACKOFF > 2019-07-10T19:57:50Z | 1 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 2 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 3 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 4 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 5 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 6 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 7 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 8 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 9 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 10 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 11 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 12 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 13 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 14 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:50Z | 15 | reconnect | INFO | ssl:127.0.0.1:38627: > connecting... > 2019-07-10T19:57:50Z | 16 | reconnect | DBG | ssl:127.0.0.1:38627: > entering CONNECTING > 2019-07-10T19:57:50Z | 17 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 18 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 19 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 20 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 21 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 22 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 23 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 24 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 25 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 26 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:50Z | 27 | reconnect | INFO | ssl:127.0.0.1:38627: > connected > 2019-07-10T19:57:50Z | 28 | reconnect | DBG | ssl:127.0.0.1:38627: > entering ACTIVE > 2019-07-10T19:57:50Z | 29 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="get_schema", > params=["_Server","ff61df02-a34c-11e9-9ea0-34e12ddfbbd2"], id=0 > 2019-07-10T19:57:50Z | 30 | poller | DBG | [POLLIN] on fd 4 > 2019-07-10T19:57:50Z | 31 | poller | DBG | [POLLIN] on fd 4 > 2019-07-10T19:57:50Z | 32 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, result={"cksum":"3236486585 > 698","name":"_Server","tables":{"Database":{"columns":{"cid":{"type":{"key":"uuid","min":0}},"connected":{"type":"boolean"},"index":{"type":{"key":"integer","min":0}},"leader":{"type":"boolean"},"model":{"type":{"key":{"enum":["set",["clustered","standalone"]],"type":"string"}}},"name":{"type":"string"},"schema":{"type":{"key":"string","min":0}},"sid":{"type":{"key":"uuid","min":0}}}}},"version":"1.1.0"}, > id=0 > 2019-07-10T19:57:50Z | 33 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="monitor", > params=["_Server","ff61df03-a34c-11e9-9ea0-34e12ddfbbd2",{"Database":[{"columns":["index","name","cid","connected","sid","model","leader","schema"]}]}], > id=1 > 2019-07-10T19:57:50Z | 34 | poller | DBG | [POLLIN] on fd 4 > 2019-07-10T19:57:50Z | 35 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, > result={"Database":{"869cda25-6f0d-42db-b423-fca0b2f2c0f3":{"new":{"cid":["set",[]],"connected":true,"index":["set",[]],"leader":true,"model":"standalone","name":"idltest","schema":"{\"name\":\"idltest\",\"tables\":{\"link1\":{\"columns\":{\"i\":{\"type\":\"integer\"},\"k\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"}}},\"ka\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"},\"max\":\"unlimited\",\"min\":0}},\"l2\":{\"type\":{\"key\":{\"refTable\":\"link2\",\"type\":\"uuid\"},\"min\":0}}},\"isRoot\":true},\"link2\":{\"columns\":{\"i\":{\"type\":\"integer\"},\"l1\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"},\"min\":0}}},\"isRoot\":true},\"simple\":{\"columns\":{\"b\":{\"type\":\"boolean\"},\"ba\":{\"type\":{\"key\":\"boolean\",\"min\":0}},\"i\":{\"type\":\"integer\"},\"ia\":{\"type\":{\"key\":\"integer\",\"max\":\"unlimited\",\"min\":0}},\"r\":{\"type\":\"real\"},\"ra\":{\"type\":{\"key\":\"real\",\"max\":\"unlimited\",\"min\" :0}},\"s\":{\"type\":\"string\"},\"sa\":{\"type\":{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0}},\"u\":{\"type\":\"uuid\"},\"ua\":{\"type\":{\"key\":\"uuid\",\"max\":\"unlimited\",\"min\":0}}},\"isRoot\":true},\"simple2\":{\"columns\":{\"imap\":{\"type\":{\"key\":{\"maxInteger\":4095,\"minInteger\":0,\"type\":\"integer\"},\"max\":\"unlimited\",\"min\":0,\"value\":\"string\"}},\"name\":{\"type\":\"string\"},\"smap\":{\"type\":{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0,\"value\":\"string\"}}},\"isRoot\":true},\"simple3\":{\"columns\":{\"name\":{\"type\":\"string\"},\"uref\":{\"type\":{\"key\":{\"refTable\":\"simple4\",\"type\":\"uuid\"},\"max\":\"unlimited\",\"min\":0}},\"uset\":{\"type\":{\"key\":\"uuid\",\"max\":\"unlimited\",\"min\":0}}},\"isRoot\":true},\"simple4\":{\"columns\":{\"name\":{\"type\":\"string\"}}},\"singleton\":{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot\":true,\"maxRows\":1}},\"version\":\"1.2.3\"}","sid":["set",[]]}},"8b4cbe1b-446 8-4fee-abde-3b7d47768609":{"new":{"cid":["set",[]],"connected":true,"index":["set",[]],"leader":true,"model":"standalone","name":"_Server","schema":"{\"cksum\":\"3236486585 > 698\",\"name\":\"_Server\",\"tables\":{\"Database\":{\"columns\":{\"cid\":{\"type\":{\"key\":\"uuid\",\"min\":0}},\"connected\":{\"type\":\"boolean\"},\"index\":{\"type\":{\"key\":\"integer\",\"min\":0}},\"leader\":{\"type\":\"boolean\"},\"model\":{\"type\":{\"key\":{\"enum\":[\"set\",[\"clustered\",\"standalone\"]],\"type\":\"string\"}}},\"name\":{\"type\":\"string\"},\"schema\":{\"type\":{\"key\":\"string\",\"min\":0}},\"sid\":{\"type\":{\"key\":\"uuid\",\"min\":0}}}}},\"version\":\"1.1.0\"}","sid":["set",[]]}}}}, > id=1 > 2019-07-10T19:57:50Z | 36 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="monitor_cond", > params=["idltest","ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"link1":[{"columns":["i","k","l2","ka"]}],"link2":[{"columns":["i","l1"]}],"simple":[{"columns":["b","ba","i","s","r","u","ra","ia","sa","ua"]}],"simple2":[{"columns":["smap","name","imap"]}],"simple3":[{"columns":["uset","uref","name"]}],"simple4":[{"columns":["name"]}],"singleton":[{"columns":["name"]}]}], > id=2 > 2019-07-10T19:57:50Z | 37 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="set_db_change_aware", params=[true], id=3 > 2019-07-10T19:57:50Z | 38 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, result={}, id=2 > 2019-07-10T19:57:50Z | 39 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, result={}, id=3 > 2019-07-10T19:57:50Z | 40 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="transact", > params=["idltest",{"op":"insert","row":{"b":true,"ba":["set",[true]],"i":1,"ia":["set",[1,2,3]],"r":2,"ra":["set",[-0.5]],"s":"mystring","sa":["set",["abc","def"]],"u":["uuid","84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],"ua":["set",[["uuid","69443985-7806-45e2-b35f-574a04e720f9"],["uuid","aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]},"table":"simple"},{"op":"insert","row":{},"table":"simple"}], > id=4 > 2019-07-10T19:57:50Z | 41 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:50Z | 42 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, > result=[{"uuid":["uuid","27465769-398f-41ef-b1c0-c95e7097c56f"]},{"uuid":["uuid","44f32e1a-3e90-4af1-99df-ea62d4105087"]}], > id=4 > #0# = 27465769-398f-41ef-b1c0-c95e7097c56f > #1# = 44f32e1a-3e90-4af1-99df-ea62d4105087 > 2019-07-10T19:57:50Z | 43 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received notification, method="update2", > params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"27465769-398f-41ef-b1c0-c95e7097c56f":{"insert":{"b":true,"ba":true,"i":1,"ia":["set",[1,2,3]],"r":2,"ra":-0.5,"s":"mystring","sa":["set",["abc","def"]],"u":["uuid","84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],"ua":["set",[["uuid","69443985-7806-45e2-b35f-574a04e720f9"],["uuid","aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},"44f32e1a-3e90-4af1-99df-ea62d4105087":{"insert":{}}}}] > 2019-07-10T19:57:50Z | 44 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="transact", > params=["idltest",{"op":"update","row":{"b":true},"table":"simple","where":[]}], > id=5 > 2019-07-10T19:57:50Z | 45 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:50Z | 46 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, result=[{"count":2}], id=5 > 2019-07-10T19:57:50Z | 47 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received notification, method="update2", > params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"44f32e1a-3e90-4af1-99df-ea62d4105087":{"modify":{"b":true}}}}] > 2019-07-10T19:57:50Z | 48 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="transact", > params=["idltest",{"op":"update","row":{"r":123.5},"table":"simple","where":[]}], > id=6 > 2019-07-10T19:57:50Z | 49 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:50Z | 50 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, result=[{"count":2}], id=6 > 2019-07-10T19:57:50Z | 51 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received notification, method="update2", > params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"27465769-398f-41ef-b1c0-c95e7097c56f":{"modify":{"r":123.5}},"44f32e1a-3e90-4af1-99df-ea62d4105087":{"modify":{"r":123.5}}}}] > 2019-07-10T19:57:50Z | 52 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="transact", > params=["idltest",{"op":"insert","row":{"b":false,"ba":["set",[false]],"i":-1,"ia":["set",[1]],"r":125,"ra":["set",[1.5]],"s":"","sa":["set",[]],"ua":["set",[]]},"table":"simple"}], > id=7 > 2019-07-10T19:57:50Z | 53 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:50Z | 54 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, > result=[{"uuid":["uuid","9a543c13-2b92-4be1-89e2-60fdb1171566"]}], id=7 > #2# = 9a543c13-2b92-4be1-89e2-60fdb1171566 > 2019-07-10T19:57:50Z | 55 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received notification, method="update2", > params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"9a543c13-2b92-4be1-89e2-60fdb1171566":{"insert":{"ba":false,"i":-1,"ia":1,"r":125,"ra":1.5}}}}] > 2019-07-10T19:57:50Z | 56 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="transact", > params=["idltest",{"op":"update","row":{"s":"newstring"},"table":"simple","where":[["i","<",1]]}], > id=8 > 2019-07-10T19:57:50Z | 57 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:50Z | 58 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, result=[{"count":2}], id=8 > 2019-07-10T19:57:50Z | 59 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received notification, method="update2", > params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"44f32e1a-3e90-4af1-99df-ea62d4105087":{"modify":{"s":"newstring"}},"9a543c13-2b92-4be1-89e2-60fdb1171566":{"modify":{"s":"newstring"}}}}] > 2019-07-10T19:57:50Z | 60 | jsonrpc | DBG | ssl:127.0.0.1:38627: send > request, method="transact", > params=["idltest",{"op":"delete","table":"simple","where":[["i","==",0]]}], > id=9 > 2019-07-10T19:57:50Z | 61 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:50Z | 62 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received reply, result=[{"count":1}], id=9 > 2019-07-10T19:57:50Z | 63 | jsonrpc | DBG | ssl:127.0.0.1:38627: > received notification, method="update2", > params=["ff61df02-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"44f32e1a-3e90-4af1-99df-ea62d4105087":{"delete":null}}}] > 2019-07-10T19:57:50Z | 64 | reconnect | DBG | ssl:127.0.0.1:38627: > entering RECONNECT > 2019-07-10T19:57:50Z | 65 | reconnect | INFO | ssl:127.0.0.1:38627: > connection closed by client > 2019-07-10T19:57:50Z | 66 | reconnect | DBG | ssl:127.0.0.1:38627: > entering BACKOFF > Traceback (most recent call last): > File "../../../../tests/test-ovsdb.py", line 962, in <module> > main(sys.argv) > File "../../../../tests/test-ovsdb.py", line 957, in main > func(*args) > File "../../../../tests/test-ovsdb.py", line 706, in do_idl > while idl.change_seqno == seqno and not idl.run(): > File "/home/blp/nicira/ovs/python/ovs/db/idl.py", line 242, in run > self._session.run() > File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 538, in run > self.__disconnect() > File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 454, in > __disconnect > self.rpc.close() > File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 196, in close > self.stream.close() > File "/home/blp/nicira/ovs/python/ovs/stream.py", line 831, in close > self.socket.shutdown() > File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 1993, in > shutdown > self._raise_ssl_error(self._ssl, result) > File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 1631, in > _raise_ssl_error > raise SysCallError(errno, errorcode.get(errno)) > OpenSSL.SSL.SysCallError: (9, 'EBADF') > stdout: > 000: empty > 001: > {"error":null,"result":[{"uuid":["uuid","27465769-398f-41ef-b1c0-c95e7097c56f"]},{"uuid":["uuid","44f32e1a-3e90-4af1-99df-ea62d4105087"]}]} > 002: i=0 r=0 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] > ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 > 002: i=1 r=2 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=27465769-398f-41ef-b1c0-c95e7097c56f > 003: {"error":null,"result":[{"count":2}]} > 004: i=0 r=0 b=true s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] > ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 > 004: i=1 r=2 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=27465769-398f-41ef-b1c0-c95e7097c56f > 005: {"error":null,"result":[{"count":2}]} > 006: i=0 r=123.5 b=true s= u=00000000-0000-0000-0000-000000000000 ia=[] > ra=[] ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 > 006: i=1 r=123.5 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=27465769-398f-41ef-b1c0-c95e7097c56f > 007: > {"error":null,"result":[{"uuid":["uuid","9a543c13-2b92-4be1-89e2-60fdb1171566"]}]} > 008: i=0 r=123.5 b=true s= u=00000000-0000-0000-0000-000000000000 ia=[] > ra=[] ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 > 008: i=-1 r=125 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[1] > ra=[1.5] ba=[false] sa=[] ua=[] uuid=9a543c13-2b92-4be1-89e2-60fdb1171566 > 008: i=1 r=123.5 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=27465769-398f-41ef-b1c0-c95e7097c56f > 009: {"error":null,"result":[{"count":2}]} > 010: i=0 r=123.5 b=true s=newstring u=00000000-0000-0000-0000-000000000000 > ia=[] ra=[] ba=[] sa=[] ua=[] uuid=44f32e1a-3e90-4af1-99df-ea62d4105087 > 010: i=-1 r=125 b=false s=newstring u=00000000-0000-0000-0000-000000000000 > ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] > uuid=9a543c13-2b92-4be1-89e2-60fdb1171566 > 010: i=1 r=123.5 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=27465769-398f-41ef-b1c0-c95e7097c56f > 011: {"error":null,"result":[{"count":1}]} > 012: i=-1 r=125 b=false s=newstring u=00000000-0000-0000-0000-000000000000 > ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] > uuid=9a543c13-2b92-4be1-89e2-60fdb1171566 > 012: i=1 r=123.5 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=27465769-398f-41ef-b1c0-c95e7097c56f > 013: reconnect > ../../tests/ovsdb-idl.at:351: exit code was 1, expected 0 > 2108. ovsdb-idl.at:351: 2108. simple idl, initially empty, various ops - > Python2 - SSL (ovsdb-idl.at:351): FAILED (ovsdb-idl.at:351) > > # -*- compilation -*- > 2439. ovsdb-idl.at:1452: testing simple idl verify notify - Python2 - SSL > ... > ../../tests/ovsdb-idl.at:1452: ovsdb-tool create db > $abs_srcdir/idltest.ovsschema > stderr: > stdout: > ../../tests/ovsdb-idl.at:1452: ovsdb-server -vconsole:warn --log-file > --detach --no-chdir \ > --pidfile \ > --private-key=$PKIDIR/testpki-privkey2.pem \ > --certificate=$PKIDIR/testpki-cert2.pem \ > --ca-cert=$PKIDIR/testpki-cacert.pem \ > --remote=pssl:0:127.0.0.1 db > ovsdb-idl.at:1452: waiting until TCP_PORT=`sed -n 's/.*0:.*: listening on > port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"... > ovsdb-idl.at:1452: wait succeeded immediately > ../../tests/ovsdb-idl.at:1452: $PYTHON2 $srcdir/test-ovsdb.py -t10 idl > $srcdir/idltest.ovsschema \ > ssl:127.0.0.1:$TCP_PORT $PKIDIR/testpki-privkey.pem \ > $PKIDIR/testpki-cert.pem $PKIDIR/testpki-cacert.pem > 'track-notify' \ > '["idltest", > {"op": "insert", > "table": "simple", > "row": {"i": 1, > "r": 2.0, > "b": true, > "s": "mystring", > "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"], > "ia": ["set", [1, 2, 3]], > "ra": ["set", [-0.5]], > "ba": ["set", [true]], > "sa": ["set", ["abc", "def"]], > "ua": ["set", [["uuid", > "69443985-7806-45e2-b35f-574a04e720f9"], > ["uuid", > "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}}, > {"op": "insert", > "table": "simple", > "row": {}}]' \ > '["idltest", > {"op": "update", > "table": "simple", > "where": [], > "row": {"b": false}}]' \ > '["idltest", > {"op": "update", > "table": "simple", > "where": [], > "row": {"r": 123.5}}]' \ > '["idltest", > {"op": "insert", > "table": "simple", > "row": {"i": -1, > "r": 125, > "b": false, > "s": "", > "ia": ["set", [1]], > "ra": ["set", [1.5]], > "ba": ["set", [false]], > "sa": ["set", []], > "ua": ["set", []]}}]' \ > '["idltest", > {"op": "update", > "table": "simple", > "where": [["i", "<", 1]], > "row": {"s": "newstring"}}]' \ > '["idltest", > {"op": "delete", > "table": "simple", > "where": [["i", "==", 0]]}]' \ > 'reconnect' > stderr: > 2019-07-10T19:57:51Z | 0 | reconnect | DBG | ssl:127.0.0.1:41187: > entering BACKOFF > 2019-07-10T19:57:51Z | 1 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 2 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 3 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 4 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 5 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 6 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 7 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 8 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 9 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 10 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 11 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 12 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 13 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 14 | poller | DBG | [POLLOUT] on fd 3 > 2019-07-10T19:57:51Z | 15 | reconnect | INFO | ssl:127.0.0.1:41187: > connecting... > 2019-07-10T19:57:51Z | 16 | reconnect | DBG | ssl:127.0.0.1:41187: > entering CONNECTING > 2019-07-10T19:57:51Z | 17 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 18 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 19 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 20 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 21 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 22 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 23 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 24 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 25 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 26 | poller | DBG | [POLLOUT] on fd 4 > 2019-07-10T19:57:51Z | 27 | reconnect | INFO | ssl:127.0.0.1:41187: > connected > 2019-07-10T19:57:51Z | 28 | reconnect | DBG | ssl:127.0.0.1:41187: > entering ACTIVE > 2019-07-10T19:57:51Z | 29 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="get_schema", > params=["_Server","ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2"], id=0 > 2019-07-10T19:57:51Z | 30 | poller | DBG | [POLLIN] on fd 4 > 2019-07-10T19:57:51Z | 31 | poller | DBG | [POLLIN] on fd 4 > 2019-07-10T19:57:51Z | 32 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, result={"cksum":"3236486585 > 698","name":"_Server","tables":{"Database":{"columns":{"cid":{"type":{"key":"uuid","min":0}},"connected":{"type":"boolean"},"index":{"type":{"key":"integer","min":0}},"leader":{"type":"boolean"},"model":{"type":{"key":{"enum":["set",["clustered","standalone"]],"type":"string"}}},"name":{"type":"string"},"schema":{"type":{"key":"string","min":0}},"sid":{"type":{"key":"uuid","min":0}}}}},"version":"1.1.0"}, > id=0 > 2019-07-10T19:57:51Z | 33 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="monitor", > params=["_Server","ff8c3ded-a34c-11e9-9ea0-34e12ddfbbd2",{"Database":[{"columns":["index","name","cid","connected","sid","model","leader","schema"]}]}], > id=1 > 2019-07-10T19:57:51Z | 34 | poller | DBG | [POLLIN] on fd 4 > 2019-07-10T19:57:51Z | 35 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, > result={"Database":{"239e9f59-7b01-4a90-a4a6-843016603201":{"new":{"cid":["set",[]],"connected":true,"index":["set",[]],"leader":true,"model":"standalone","name":"_Server","schema":"{\"cksum\":\"3236486585 > 698\",\"name\":\"_Server\",\"tables\":{\"Database\":{\"columns\":{\"cid\":{\"type\":{\"key\":\"uuid\",\"min\":0}},\"connected\":{\"type\":\"boolean\"},\"index\":{\"type\":{\"key\":\"integer\",\"min\":0}},\"leader\":{\"type\":\"boolean\"},\"model\":{\"type\":{\"key\":{\"enum\":[\"set\",[\"clustered\",\"standalone\"]],\"type\":\"string\"}}},\"name\":{\"type\":\"string\"},\"schema\":{\"type\":{\"key\":\"string\",\"min\":0}},\"sid\":{\"type\":{\"key\":\"uuid\",\"min\":0}}}}},\"version\":\"1.1.0\"}","sid":["set",[]]}},"9211a231-3a07-4cd6-9e1f-687dc969cc36":{"new":{"cid":["set",[]],"connected":true,"index":["set",[]],"leader":true,"model":"standalone","name":"idltest","schema":"{\"name\":\"idltest\",\"tables\":{\"link1\":{\"columns\":{\"i\":{\"type\":\"integer\"},\"k\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"}}},\"ka\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"},\"max\":\"unlimited\",\"min\":0}},\"l2\":{\"type\":{\"key\":{\"refTable\":\"link2 \",\"type\":\"uuid\"},\"min\":0}}},\"isRoot\":true},\"link2\":{\"columns\":{\"i\":{\"type\":\"integer\"},\"l1\":{\"type\":{\"key\":{\"refTable\":\"link1\",\"type\":\"uuid\"},\"min\":0}}},\"isRoot\":true},\"simple\":{\"columns\":{\"b\":{\"type\":\"boolean\"},\"ba\":{\"type\":{\"key\":\"boolean\",\"min\":0}},\"i\":{\"type\":\"integer\"},\"ia\":{\"type\":{\"key\":\"integer\",\"max\":\"unlimited\",\"min\":0}},\"r\":{\"type\":\"real\"},\"ra\":{\"type\":{\"key\":\"real\",\"max\":\"unlimited\",\"min\":0}},\"s\":{\"type\":\"string\"},\"sa\":{\"type\":{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0}},\"u\":{\"type\":\"uuid\"},\"ua\":{\"type\":{\"key\":\"uuid\",\"max\":\"unlimited\",\"min\":0}}},\"isRoot\":true},\"simple2\":{\"columns\":{\"imap\":{\"type\":{\"key\":{\"maxInteger\":4095,\"minInteger\":0,\"type\":\"integer\"},\"max\":\"unlimited\",\"min\":0,\"value\":\"string\"}},\"name\":{\"type\":\"string\"},\"smap\":{\"type\":{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0,\" value\":\"string\"}}},\"isRoot\":true},\"simple3\":{\"columns\":{\"name\":{\"type\":\"string\"},\"uref\":{\"type\":{\"key\":{\"refTable\":\"simple4\",\"type\":\"uuid\"},\"max\":\"unlimited\",\"min\":0}},\"uset\":{\"type\":{\"key\":\"uuid\",\"max\":\"unlimited\",\"min\":0}}},\"isRoot\":true},\"simple4\":{\"columns\":{\"name\":{\"type\":\"string\"}}},\"singleton\":{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot\":true,\"maxRows\":1}},\"version\":\"1.2.3\"}","sid":["set",[]]}}}}, > id=1 > 2019-07-10T19:57:51Z | 36 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="monitor_cond", > params=["idltest","ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"link1":[{"columns":["i","k","l2","ka"]}],"link2":[{"columns":["i","l1"]}],"simple":[{"columns":["b","ba","i","s","r","u","ra","ia","sa","ua"]}],"simple2":[{"columns":["smap","name","imap"]}],"simple3":[{"columns":["uset","uref","name"]}],"simple4":[{"columns":["name"]}],"singleton":[{"columns":["name"]}]}], > id=2 > 2019-07-10T19:57:51Z | 37 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="set_db_change_aware", params=[true], id=3 > 2019-07-10T19:57:51Z | 38 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, result={}, id=2 > 2019-07-10T19:57:51Z | 39 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, result={}, id=3 > 2019-07-10T19:57:51Z | 40 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="transact", > params=["idltest",{"op":"insert","row":{"b":true,"ba":["set",[true]],"i":1,"ia":["set",[1,2,3]],"r":2,"ra":["set",[-0.5]],"s":"mystring","sa":["set",["abc","def"]],"u":["uuid","84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],"ua":["set",[["uuid","69443985-7806-45e2-b35f-574a04e720f9"],["uuid","aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]},"table":"simple"},{"op":"insert","row":{},"table":"simple"}], > id=4 > 2019-07-10T19:57:51Z | 41 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:51Z | 42 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, > result=[{"uuid":["uuid","a4f6fb38-66b3-43e4-b581-ecb2a64e6649"]},{"uuid":["uuid","8af7b362-7d87-4e5a-bdee-7daaebff2f3e"]}], > id=4 > #0# = a4f6fb38-66b3-43e4-b581-ecb2a64e6649 > #1# = 8af7b362-7d87-4e5a-bdee-7daaebff2f3e > 2019-07-10T19:57:51Z | 43 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received notification, method="update2", > params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"8af7b362-7d87-4e5a-bdee-7daaebff2f3e":{"insert":{}},"a4f6fb38-66b3-43e4-b581-ecb2a64e6649":{"insert":{"b":true,"ba":true,"i":1,"ia":["set",[1,2,3]],"r":2,"ra":-0.5,"s":"mystring","sa":["set",["abc","def"]],"u":["uuid","84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],"ua":["set",[["uuid","69443985-7806-45e2-b35f-574a04e720f9"],["uuid","aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}}}}] > 2019-07-10T19:57:51Z | 44 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="transact", > params=["idltest",{"op":"update","row":{"b":false},"table":"simple","where":[]}], > id=5 > 2019-07-10T19:57:51Z | 45 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:51Z | 46 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, result=[{"count":2}], id=5 > 2019-07-10T19:57:51Z | 47 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received notification, method="update2", > params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"a4f6fb38-66b3-43e4-b581-ecb2a64e6649":{"modify":{"b":false}}}}] > 2019-07-10T19:57:51Z | 48 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="transact", > params=["idltest",{"op":"update","row":{"r":123.5},"table":"simple","where":[]}], > id=6 > 2019-07-10T19:57:51Z | 49 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:51Z | 50 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, result=[{"count":2}], id=6 > 2019-07-10T19:57:51Z | 51 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received notification, method="update2", > params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"8af7b362-7d87-4e5a-bdee-7daaebff2f3e":{"modify":{"r":123.5}},"a4f6fb38-66b3-43e4-b581-ecb2a64e6649":{"modify":{"r":123.5}}}}] > 2019-07-10T19:57:51Z | 52 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="transact", > params=["idltest",{"op":"insert","row":{"b":false,"ba":["set",[false]],"i":-1,"ia":["set",[1]],"r":125,"ra":["set",[1.5]],"s":"","sa":["set",[]],"ua":["set",[]]},"table":"simple"}], > id=7 > 2019-07-10T19:57:51Z | 53 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:51Z | 54 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, > result=[{"uuid":["uuid","eff44ed3-4002-4da4-9877-d41b3364a894"]}], id=7 > #2# = eff44ed3-4002-4da4-9877-d41b3364a894 > 2019-07-10T19:57:51Z | 55 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received notification, method="update2", > params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"eff44ed3-4002-4da4-9877-d41b3364a894":{"insert":{"ba":false,"i":-1,"ia":1,"r":125,"ra":1.5}}}}] > 2019-07-10T19:57:51Z | 56 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="transact", > params=["idltest",{"op":"update","row":{"s":"newstring"},"table":"simple","where":[["i","<",1]]}], > id=8 > 2019-07-10T19:57:51Z | 57 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:51Z | 58 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, result=[{"count":2}], id=8 > 2019-07-10T19:57:51Z | 59 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received notification, method="update2", > params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"8af7b362-7d87-4e5a-bdee-7daaebff2f3e":{"modify":{"s":"newstring"}},"eff44ed3-4002-4da4-9877-d41b3364a894":{"modify":{"s":"newstring"}}}}] > 2019-07-10T19:57:51Z | 60 | jsonrpc | DBG | ssl:127.0.0.1:41187: send > request, method="transact", > params=["idltest",{"op":"delete","table":"simple","where":[["i","==",0]]}], > id=9 > 2019-07-10T19:57:51Z | 61 | poller | DBG | [POLLIN] on fd 3 > 2019-07-10T19:57:51Z | 62 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received reply, result=[{"count":1}], id=9 > 2019-07-10T19:57:51Z | 63 | jsonrpc | DBG | ssl:127.0.0.1:41187: > received notification, method="update2", > params=["ff8c3dec-a34c-11e9-9ea0-34e12ddfbbd2",{"simple":{"8af7b362-7d87-4e5a-bdee-7daaebff2f3e":{"delete":null}}}] > 2019-07-10T19:57:51Z | 64 | reconnect | DBG | ssl:127.0.0.1:41187: > entering RECONNECT > 2019-07-10T19:57:51Z | 65 | reconnect | INFO | ssl:127.0.0.1:41187: > connection closed by client > 2019-07-10T19:57:51Z | 66 | reconnect | DBG | ssl:127.0.0.1:41187: > entering BACKOFF > Traceback (most recent call last): > File "../../../../tests/test-ovsdb.py", line 962, in <module> > main(sys.argv) > File "../../../../tests/test-ovsdb.py", line 957, in main > func(*args) > File "../../../../tests/test-ovsdb.py", line 706, in do_idl > while idl.change_seqno == seqno and not idl.run(): > File "/home/blp/nicira/ovs/python/ovs/db/idl.py", line 242, in run > self._session.run() > File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 538, in run > self.__disconnect() > File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 454, in > __disconnect > self.rpc.close() > File "/home/blp/nicira/ovs/python/ovs/jsonrpc.py", line 196, in close > self.stream.close() > File "/home/blp/nicira/ovs/python/ovs/stream.py", line 831, in close > self.socket.shutdown() > File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 1993, in > shutdown > self._raise_ssl_error(self._ssl, result) > File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 1631, in > _raise_ssl_error > raise SysCallError(errno, errorcode.get(errno)) > OpenSSL.SSL.SysCallError: (9, 'EBADF') > stdout: > 000: event:create, row={uuid=239e9f59-7b01-4a90-a4a6-843016603201}, > updates=None > 000: event:create, row={uuid=9211a231-3a07-4cd6-9e1f-687dc969cc36}, > updates=None > 000: empty > 001: > {"error":null,"result":[{"uuid":["uuid","a4f6fb38-66b3-43e4-b581-ecb2a64e6649"]},{"uuid":["uuid","8af7b362-7d87-4e5a-bdee-7daaebff2f3e"]}]} > 002: event:create, row={i=0 r=0 b=false s= > u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] > uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e}, updates=None > 002: event:create, row={i=1 r=2 b=true s=mystring > u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] > sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649}, updates=None > 002: i=0 r=0 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] > ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e > 002: i=1 r=2 b=true s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 > 003: {"error":null,"result":[{"count":2}]} > 004: event:update, row={i=1 r=2 b=false s=mystring > u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] > sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649}, updates={b=true > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649} > 004: i=0 r=0 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] > ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e > 004: i=1 r=2 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 > 005: {"error":null,"result":[{"count":2}]} > 006: event:update, row={i=0 r=123.5 b=false s= > u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] > uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e}, updates={r=0 > uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e} > 006: event:update, row={i=1 r=123.5 b=false s=mystring > u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 ia=[1 2 3] ra=[-0.5] ba=[true] > sa=[abc def] ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649}, updates={r=2 > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649} > 006: i=0 r=123.5 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] > ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e > 006: i=1 r=123.5 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 > 007: > {"error":null,"result":[{"uuid":["uuid","eff44ed3-4002-4da4-9877-d41b3364a894"]}]} > 008: event:create, row={i=-1 r=125 b=false s= > u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] > ua=[] uuid=eff44ed3-4002-4da4-9877-d41b3364a894}, updates=None > 008: i=0 r=123.5 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[] > ra=[] ba=[] sa=[] ua=[] uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e > 008: i=1 r=123.5 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 > 008: i=-1 r=125 b=false s= u=00000000-0000-0000-0000-000000000000 ia=[1] > ra=[1.5] ba=[false] sa=[] ua=[] uuid=eff44ed3-4002-4da4-9877-d41b3364a894 > 009: {"error":null,"result":[{"count":2}]} > 010: event:update, row={i=0 r=123.5 b=false s=newstring > u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] > uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e}, updates={s= > uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e} > 010: event:update, row={i=-1 r=125 b=false s=newstring > u=00000000-0000-0000-0000-000000000000 ia=[1] ra=[1.5] ba=[false] sa=[] > ua=[] uuid=eff44ed3-4002-4da4-9877-d41b3364a894}, updates={s= > uuid=eff44ed3-4002-4da4-9877-d41b3364a894} > 010: i=0 r=123.5 b=false s=newstring > u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] > uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e > 010: i=1 r=123.5 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 > 010: i=-1 r=125 b=false s=newstring u=00000000-0000-0000-0000-000000000000 > ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] > uuid=eff44ed3-4002-4da4-9877-d41b3364a894 > 011: {"error":null,"result":[{"count":1}]} > 012: event:delete, row={i=0 r=123.5 b=false s=newstring > u=00000000-0000-0000-0000-000000000000 ia=[] ra=[] ba=[] sa=[] ua=[] > uuid=8af7b362-7d87-4e5a-bdee-7daaebff2f3e}, updates=None > 012: i=1 r=123.5 b=false s=mystring u=84f5c8f5-ac76-4dbc-a24f-8860eb407fc1 > ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] > ua=[69443985-7806-45e2-b35f-574a04e720f9 > aad11ef0-816a-4b01-93e6-03b8b4256b98] > uuid=a4f6fb38-66b3-43e4-b581-ecb2a64e6649 > 012: i=-1 r=125 b=false s=newstring u=00000000-0000-0000-0000-000000000000 > ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] > uuid=eff44ed3-4002-4da4-9877-d41b3364a894 > 013: reconnect > ../../tests/ovsdb-idl.at:1452: exit code was 1, expected 0 > 2439. ovsdb-idl.at:1452: 2439. simple idl verify notify - Python2 - SSL ( > ovsdb-idl.at:1452): FAILED (ovsdb-idl.at:1452) >
diff --git a/python/ovs/stream.py b/python/ovs/stream.py index c15be4b..fd1045e 100644 --- a/python/ovs/stream.py +++ b/python/ovs/stream.py @@ -825,6 +825,14 @@ class SSLStream(Stream): except SSL.SysCallError as e: return -ovs.socket_util.get_exception_errno(e) + def close(self): + if self.socket: + try: + self.socket.shutdown() + except (SSL.WantReadError, SSL.WantWriteError): + pass + return super(SSLStream, self).close() + if SSL: # Register SSL only if the OpenSSL module is available
Without shutting down the SSL connection, log messages like: stream_ssl|WARN|SSL_read: unexpected SSL connection close jsonrpc|WARN|ssl:127.0.0.1:47052: receive error: Protocol error reconnect|WARN|ssl:127.0.0.1:47052: connection dropped (Protocol error) would occur whenever the socket is closed. This just adds an SSLStream.close() that calls shutdown() and ignores read/write errors. Signed-off-by: Terry Wilson <twilson@redhat.com> --- python/ovs/stream.py | 8 ++++++++ 1 file changed, 8 insertions(+)