)]}'
{"id":"openstack%2Fovsdbapp~760395","triplet_id":"openstack%2Fovsdbapp~stable%2Ftrain~I98c37771883103e1fb0468de9cf85364071993fa","project":"openstack/ovsdbapp","branch":"stable/train","topic":"add_a_connection_lock-stable/ussuri-stable/train","hashtags":[],"change_id":"I98c37771883103e1fb0468de9cf85364071993fa","subject":"Add lock when calling idl.run()","status":"MERGED","created":"2020-10-29 16:08:23.000000000","updated":"2020-10-30 11:45:29.000000000","submitted":"2020-10-30 11:45:29.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"760395-1604058329690-692fdd93","meta_rev_id":"8c97051e1b5d00ccd6f269ca71d261ae18243cef","_number":760395,"virtual_id_number":760395,"owner":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2020-10-30 11:45:29.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"recommended":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"all":[{"value":1,"date":"2020-10-29 20:46:40.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},{"value":2,"date":"2020-10-30 08:33:14.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2020-10-30 09:21:06.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"all":[{"value":0,"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"date":"2020-10-29 20:26:38.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2020-10-30 09:21:06.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-10-29 20:26:38.000000000","updated_by":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"reviewer":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"state":"REVIEWER"},{"updated":"2020-10-29 20:46:40.000000000","updated_by":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"reviewer":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"state":"REVIEWER"},{"updated":"2020-10-30 08:33:14.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"state":"REVIEWER"},{"updated":"2020-10-30 09:21:06.000000000","updated_by":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"reviewer":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"state":"REVIEWER"},{"updated":"2020-10-30 11:45:29.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"c8f7bcd712fce28e78b24e076165f7277ada10df","author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"date":"2020-10-29 16:08:23.000000000","message":"Patch Set 1: Cherry Picked from branch stable/ussuri.","accounts_in_message":[],"_revision_number":1},{"id":"125075ec14665b48cd061231687b79e60bdaa168","author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"date":"2020-10-29 16:47:27.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"53ebb14a7dac37e8b2c0ffd489f999bf27f84721","author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"date":"2020-10-29 16:50:47.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"d29528f3d48610d83367395632dba238b1ce79f3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-10-29 19:07:56.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bcdebeb1f82e4d6cbac6e8174d2f4f2a : SUCCESS in 5m 48s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/8ad2f78671ed4dbfa3970657491eb375 : SUCCESS in 3m 22s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/0ba5f48472b84228882d34d300a031f0 : SUCCESS in 4m 06s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/0763a52554e8437eba2d3877e5a54292 : SUCCESS in 3m 56s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1588d748e23f450aad644792a96312ed : SUCCESS in 5m 16s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/e60526a7ce0b4bc0a0bbbe602ef15893 : SUCCESS in 5m 49s\n- ovsdbapp-tempest-dsvm-networking-ovn-ovs-release https://zuul.opendev.org/t/openstack/build/630540bf280a45a7b0b3bd3096ab80ac : SUCCESS in 2h 04m 51s","accounts_in_message":[],"_revision_number":3},{"id":"7224a063d5c89ca4688706438e0a32096fb2731f","author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"date":"2020-10-29 20:46:40.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"bcfb25ecfb332a34e54f1f7cfbe03a72530fd7f5","author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"date":"2020-10-30 08:33:14.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"173681a81bdd7a170e6101ecdefee26196507763","author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"date":"2020-10-30 09:21:06.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"683ff4bf088c8df5a97ce225066540090819ab2b","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-10-30 09:21:18.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"567c85bf0df70c26fd89bb504ea881a970dbd142","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-10-30 11:45:29.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/57dbfaf2646443f38e8913c2bdd26b5c : SUCCESS in 3m 57s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/030eb1f37f3b496c9e0b0c44cfabb214 : SUCCESS in 4m 20s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/7ed38927c66e4aa9968e3847e07694d7 : SUCCESS in 4m 06s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/5fa59ad1521543739509ab17ba53b9e8 : SUCCESS in 4m 26s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/ef15611d3e1847bfad15cb19932baac5 : SUCCESS in 6m 52s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/cd6979f1672b4de18cc1df4cfd516650 : SUCCESS in 5m 46s\n- ovsdbapp-tempest-dsvm-networking-ovn-ovs-release https://zuul.opendev.org/t/openstack/build/0a2f01dd7bcd4f28a7b04625e2319bd1 : SUCCESS in 2h 03m 58s","accounts_in_message":[],"_revision_number":3},{"id":"31c487225b28da830db4e53021d7c6ebe57b497e","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-10-30 11:45:29.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"876da6f7c809cb17ae7bf507e165fd7765af5b52","revisions":{"cbd2923245fefbd5cdeff53a1f98d7323291cd38":{"kind":"REWORK","_number":1,"created":"2020-10-29 16:08:23.000000000","uploader":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"ref":"refs/changes/95/760395/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ovsdbapp","ref":"refs/changes/95/760395/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/1"}}},"commit":{"parents":[{"commit":"c5b598dd8d4415b014750384325589cb3fe3541c","subject":"OVNNB backend: Fix LbDelCommand when using vip param","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/c5b598dd8d4415b014750384325589cb3fe3541c"}]}],"author":{"name":"Terry Wilson","email":"twilson@redhat.com","date":"2020-08-11 18:12:47.000000000","tz":-300},"committer":{"name":"Terry Wilson","email":"twilson@redhat.com","date":"2020-10-29 16:08:23.000000000","tz":0},"subject":"Add lock when calling idl.run()","message":"Add lock when calling idl.run()\n\npython-ovs transparently handles DB reconnections during calls to\nIdl.run(). Since ovsdbapp uses a separate thread for the\nConnection (so it can handle responding to OVSDB keep-alive echo\nrequests) and for processing RowEvent notifcations, it is possible\nthat a thread could be trying to access OVSDB data at the same\ntime that the Connection thread is updating it. Especially during\na reconnect where the in-memory copy of the DB will be completely\nre-written, this causes a problem.\n\nTheoretically, an application that uses ovsdbapp shouldn\u0027t access\nanything in the backend code directly, but since there is now only\none supported Backend, that restriction has slipped a bit. If\nall accesses were in Command objects, mostly there wouldn\u0027t be a\nproblem as they would be handled in the Connection thread. But\nwith both ReadOnlyCommands and use of lookup() and anything in\nidlutils, the main thread can access the in-memory db directly and\npotentially cause problems.\n\nThe most common problematic method to be called outside of Command\nobjects is lookup() and ReadOnlyCommands. This patch adds a lock\naround calls to idl.run() and lookup() and execute() for the\nReadOnlyCommand case. row_by_value() is another target, but it is\nleft untouched because it doesn\u0027t have access to the API instance\nand it is *mostly* called from inside Command objects. User code\nthat doesn\u0027t will be easy to find because user code basically\nshouldn\u0027t use idlutils.\n\nChange-Id: I98c37771883103e1fb0468de9cf85364071993fa\nCloses-Bug: #1888878\n(cherry picked from commit 3cf8a427c0a4dfc248e0778c3b1ee65671d1d07b)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/cbd2923245fefbd5cdeff53a1f98d7323291cd38"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/cbd2923245fefbd5cdeff53a1f98d7323291cd38"}]},"branch":"refs/heads/stable/train"},"c6936aa438a739f45d0378c59310c3d95a7c5e4d":{"kind":"REWORK","_number":2,"created":"2020-10-29 16:47:27.000000000","uploader":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"ref":"refs/changes/95/760395/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ovsdbapp","ref":"refs/changes/95/760395/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/2"}}},"commit":{"parents":[{"commit":"c5b598dd8d4415b014750384325589cb3fe3541c","subject":"OVNNB backend: Fix LbDelCommand when using vip param","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/c5b598dd8d4415b014750384325589cb3fe3541c"}]}],"author":{"name":"Terry Wilson","email":"twilson@redhat.com","date":"2020-08-11 18:12:47.000000000","tz":-300},"committer":{"name":"Terry Wilson","email":"twilson@redhat.com","date":"2020-10-29 16:47:27.000000000","tz":-300},"subject":"Add lock when calling idl.run()","message":"Add lock when calling idl.run()\n\npython-ovs transparently handles DB reconnections during calls to\nIdl.run(). Since ovsdbapp uses a separate thread for the\nConnection (so it can handle responding to OVSDB keep-alive echo\nrequests) and for processing RowEvent notifcations, it is possible\nthat a thread could be trying to access OVSDB data at the same\ntime that the Connection thread is updating it. Especially during\na reconnect where the in-memory copy of the DB will be completely\nre-written, this causes a problem.\n\nTheoretically, an application that uses ovsdbapp shouldn\u0027t access\nanything in the backend code directly, but since there is now only\none supported Backend, that restriction has slipped a bit. If\nall accesses were in Command objects, mostly there wouldn\u0027t be a\nproblem as they would be handled in the Connection thread. But\nwith both ReadOnlyCommands and use of lookup() and anything in\nidlutils, the main thread can access the in-memory db directly and\npotentially cause problems.\n\nThe most common problematic method to be called outside of Command\nobjects is lookup() and ReadOnlyCommands. This patch adds a lock\naround calls to idl.run() and lookup() and execute() for the\nReadOnlyCommand case. row_by_value() is another target, but it is\nleft untouched because it doesn\u0027t have access to the API instance\nand it is *mostly* called from inside Command objects. User code\nthat doesn\u0027t will be easy to find because user code basically\nshouldn\u0027t use idlutils.\n\nConflicts:\n  ovsdbapp/tests/unit/backend/test_ovs_idl.py\n\nChange-Id: I98c37771883103e1fb0468de9cf85364071993fa\nCloses-Bug: #1888878\n(cherry picked from commit 3cf8a427c0a4dfc248e0778c3b1ee65671d1d07b)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/c6936aa438a739f45d0378c59310c3d95a7c5e4d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/c6936aa438a739f45d0378c59310c3d95a7c5e4d"}]},"branch":"refs/heads/stable/train"},"876da6f7c809cb17ae7bf507e165fd7765af5b52":{"kind":"NO_CHANGE","_number":3,"created":"2020-10-29 16:50:47.000000000","uploader":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"ref":"refs/changes/95/760395/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ovsdbapp","ref":"refs/changes/95/760395/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ovsdbapp refs/changes/95/760395/3"}}},"commit":{"parents":[{"commit":"c5b598dd8d4415b014750384325589cb3fe3541c","subject":"OVNNB backend: Fix LbDelCommand when using vip param","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/c5b598dd8d4415b014750384325589cb3fe3541c"}]}],"author":{"name":"Terry Wilson","email":"twilson@redhat.com","date":"2020-08-11 18:12:47.000000000","tz":-300},"committer":{"name":"Terry Wilson","email":"twilson@redhat.com","date":"2020-10-29 16:50:47.000000000","tz":0},"subject":"Add lock when calling idl.run()","message":"Add lock when calling idl.run()\n\npython-ovs transparently handles DB reconnections during calls to\nIdl.run(). Since ovsdbapp uses a separate thread for the\nConnection (so it can handle responding to OVSDB keep-alive echo\nrequests) and for processing RowEvent notifcations, it is possible\nthat a thread could be trying to access OVSDB data at the same\ntime that the Connection thread is updating it. Especially during\na reconnect where the in-memory copy of the DB will be completely\nre-written, this causes a problem.\n\nTheoretically, an application that uses ovsdbapp shouldn\u0027t access\nanything in the backend code directly, but since there is now only\none supported Backend, that restriction has slipped a bit. If\nall accesses were in Command objects, mostly there wouldn\u0027t be a\nproblem as they would be handled in the Connection thread. But\nwith both ReadOnlyCommands and use of lookup() and anything in\nidlutils, the main thread can access the in-memory db directly and\npotentially cause problems.\n\nThe most common problematic method to be called outside of Command\nobjects is lookup() and ReadOnlyCommands. This patch adds a lock\naround calls to idl.run() and lookup() and execute() for the\nReadOnlyCommand case. row_by_value() is another target, but it is\nleft untouched because it doesn\u0027t have access to the API instance\nand it is *mostly* called from inside Command objects. User code\nthat doesn\u0027t will be easy to find because user code basically\nshouldn\u0027t use idlutils.\n\nConflicts:\n  ovsdbapp/tests/unit/backend/test_ovs_idl.py\n\nChange-Id: I98c37771883103e1fb0468de9cf85364071993fa\nCloses-Bug: #1888878\n(cherry picked from commit 3cf8a427c0a4dfc248e0778c3b1ee65671d1d07b)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/876da6f7c809cb17ae7bf507e165fd7765af5b52"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/876da6f7c809cb17ae7bf507e165fd7765af5b52"}]},"branch":"refs/heads/stable/train"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
