)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"f149f7ce5ad8d7b12d1eb9606a7e44907e147bd1","unresolved":true,"context_lines":[{"line_number":24,"context_line":"[2]https://github.com/sqlalchemy/sqlalchemy/blob/rel_1_4/lib/sqlalchemy/orm/session.py#L3930-L3932"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: Iabaee4e556afb3dc75a82d99dc4a597fe4d7dd21"},{"line_number":27,"context_line":"TODO: set a LP/bug, Story or BP"},{"line_number":28,"context_line":"Topic: sqlalchemy-20"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"14411cdf_cff37d4a","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":31},"updated":"2022-02-24 10:46:06.000000000","message":"https://bugs.launchpad.net/neutron/+bug/1962153 ?","commit_id":"42e3aa55209a4b6d1c34683aa924edf4da8fd2c3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"395b46c3e2657c2fbdcf529214a3f00416dd51a4","unresolved":true,"context_lines":[{"line_number":24,"context_line":"[2]https://github.com/sqlalchemy/sqlalchemy/blob/rel_1_4/lib/sqlalchemy/orm/session.py#L3930-L3932"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: Iabaee4e556afb3dc75a82d99dc4a597fe4d7dd21"},{"line_number":27,"context_line":"TODO: set a LP/bug, Story or BP"},{"line_number":28,"context_line":"Topic: sqlalchemy-20"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"64a12c13_e7c77f2b","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":31},"in_reply_to":"14411cdf_cff37d4a","updated":"2022-02-24 12:51:02.000000000","message":"This is from PS4, I\u0027ve updated the LP link.","commit_id":"42e3aa55209a4b6d1c34683aa924edf4da8fd2c3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0690aeacdb5068745c0db59f4da0e296c3b56166","unresolved":false,"context_lines":[{"line_number":24,"context_line":"[2]https://github.com/sqlalchemy/sqlalchemy/blob/rel_1_4/lib/sqlalchemy/orm/session.py#L3930-L3932"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: Iabaee4e556afb3dc75a82d99dc4a597fe4d7dd21"},{"line_number":27,"context_line":"TODO: set a LP/bug, Story or BP"},{"line_number":28,"context_line":"Topic: sqlalchemy-20"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"88a19bdd_77b8bda9","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":31},"in_reply_to":"64a12c13_e7c77f2b","updated":"2022-04-21 16:02:31.000000000","message":"Done","commit_id":"42e3aa55209a4b6d1c34683aa924edf4da8fd2c3"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4c3d98101832fc140f8f2069bab9826199884819","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8e835b92_2a01c7b9","updated":"2022-03-04 11:48:30.000000000","message":"(still investigating)\n\nThe problem seems to be in the OVNL3RouterPlugin port creation/update [1]. This error occurs when the port is updated and \"standardattributes\" are updated too. If \"standardattributes\" is not updated, a DB exception happens.\n\nIn any case, I\u0027ll ask in oslo.db (more specifically to Mike Bayer) if, in case of DB error catch by oslo_db.api.wrap_db_retry, the session should be rolled back and started again in this method.\n\n[1]https://paste.opendev.org/show/bMCMScXFLXXg98yfCKh3/","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6fbbe63856440ce90972cdae288cef4a16209d25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d2954fb3_d56920db","updated":"2022-02-24 15:52:27.000000000","message":"-1 just to make sure which patches should we continue with 😊","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"d184b127e834c88ac293b845679056d099439c51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f86682cf_910099ad","updated":"2022-03-01 12:33:23.000000000","message":"As I see we can move with it as stephenfin abandoned the other patch","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3495932b97d958cee936631e4d061824201e7a2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"21dd8ff6_437a0db7","updated":"2022-03-04 11:06:26.000000000","message":"I don\u0027t know what is happening with tempest testing but we need to find out the problem. We can\u0027t merge this patch if that implies increasing the instability of the CI.","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c348f521feb604c51fad2c73fdded326ce6f93ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ab6834fc_b2f76971","updated":"2022-02-24 10:28:06.000000000","message":"recheck","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c8105e04740bf84255e1ad0d3c146c4da4e914be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b06fcd60_0cf46c9d","updated":"2022-03-03 17:02:48.000000000","message":"recheck","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"fcfa77b35f6c921e3dcd7598f52bae195de56fb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bcf2c899_66ee768a","updated":"2022-03-04 08:03:15.000000000","message":"recheck","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e4ed22b2e3c273350f791dccd88771dcbc2c4d5e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c4c0ed31_9f9a728a","updated":"2022-02-24 13:57:18.000000000","message":"recheck","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"e87afa8223cf36b92a77319aeaf025b7bdf1c79a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fe557be2_7b78ccca","updated":"2022-03-04 00:34:57.000000000","message":"recheck","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"41a01a0a12ab4fef91231a9b90938ae8fe3fe3d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d11c94d8_3cc0670b","updated":"2022-03-04 16:57:37.000000000","message":"replied\n\nthanks for getting this really tough job done!   ","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ee25342ea423e78cc503b28ddb2f3f58b5d50d26","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1bb70130_d8f8c769","in_reply_to":"8e835b92_2a01c7b9","updated":"2022-03-04 11:55:49.000000000","message":"oslo.db bug: https://bugs.launchpad.net/oslo.db/+bug/1963679","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2c043c3b9b190bbc249764f04c431a962cd5f014","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"41179fd5_e79b0b47","updated":"2022-03-10 09:00:53.000000000","message":"recheck","commit_id":"f64e76d426df5415ac2b7ff8d8def1f6f49caaa5"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8d2c90f0ca3a0ed03584023bf0b30c28b2208253","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"8d5d583d_0e3a50e7","updated":"2022-03-10 18:02:53.000000000","message":"recheck","commit_id":"7a886b7f647ee2503ae09dc1866a32068dc8f696"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5b3999d34f0341be44eb3eb0e5f98cd245b09aea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"1025e76d_924f233e","updated":"2022-03-25 20:11:12.000000000","message":"recheck","commit_id":"8e1c8bc081cba35cd35d74bac79ab94b2b335d2f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"da2d8069abcbbc9846f6593ed58a2cd06acb19db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"eaa1c952_7a20ee0a","updated":"2022-04-08 16:19:23.000000000","message":"Still testing.\nAdded \"neutron-tempest-plugin-jobs\" to zuul definitions just for testing.","commit_id":"be6a10945add8d2b807e52e505c864972f8dd256"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5fab89ae06984cf055e3fd719990724ccb04c3b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"32c8d36e_7b6a7249","updated":"2022-04-11 13:03:57.000000000","message":"recheck","commit_id":"48e2879d1f4ad8ff842966fe4be2797e2f7b5a02"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b893113240485d6f5cc3458acdd5041895064359","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"b8e2605a_719dd4b7","updated":"2022-04-12 15:55:22.000000000","message":"CI passing, recheck (again)","commit_id":"9bdc5198dc0a377ed9a1153697f7b2a505a9e189"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0690aeacdb5068745c0db59f4da0e296c3b56166","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"c3e64e09_564a05d9","updated":"2022-04-21 16:02:31.000000000","message":"ping fellow reviewers\n\nthanks in advance","commit_id":"ef1e8abb89141db39e62eaa1cbdb73aca1ceb647"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7cbfa978d960a7cc0e0d1de3abba20f7aab83ad1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"35051f21_fb4fe4c5","updated":"2022-04-29 07:55:58.000000000","message":"recheck","commit_id":"ef1e8abb89141db39e62eaa1cbdb73aca1ceb647"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d7e0e0e5db1e7c4c79d9e38f9bb5aed89c5103d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"5f5c7674_09be2e1c","updated":"2022-04-29 12:53:19.000000000","message":"recheck","commit_id":"ef1e8abb89141db39e62eaa1cbdb73aca1ceb647"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0ddaf8282d6bf429605e16351693834c2a3a8986","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"e5a6d846_05cec31b","updated":"2022-04-18 11:19:53.000000000","message":"recheck","commit_id":"ef1e8abb89141db39e62eaa1cbdb73aca1ceb647"}],"neutron_lib/db/api.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6e1cd6ebf291783f5b1d0c65c245524ba9a71fd5","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        _CTX_MANAGER \u003d enginefacade.transaction_context()"},{"line_number":51,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":52,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":53,"context_line":"        #_CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    return _CTX_MANAGER"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e7f25296_05d92baa","line":53,"in_reply_to":"a907c83b_5e501d84","updated":"2022-02-11 17:35:12.000000000","message":"I know, but we need to, at the same time we set \"__autocommit\u003dFalse\", change how we handle the session status, both in neutron and neutron-lib","commit_id":"bc84a297464d62e0182236fc28973e7ed4995e57"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"407415ccff8ea2efee463a383d10a55cc0498e9e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        _CTX_MANAGER \u003d enginefacade.transaction_context()"},{"line_number":51,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":52,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":53,"context_line":"        #_CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    return _CTX_MANAGER"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a907c83b_5e501d84","line":53,"in_reply_to":"ca6bc1e8_242c7da5","updated":"2022-02-10 18:02:35.000000000","message":"FYI, [1] tackles this (though not the \u0027is_active\u0027 part)\n\n[1] https://review.opendev.org/c/openstack/neutron-lib/+/828514","commit_id":"bc84a297464d62e0182236fc28973e7ed4995e57"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"f07a7d509557c718b6a2173c45af75fef026f86c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        # TODO(stephenfin): Drop \"__autocommit\u003dFalse\" when oslo.db changes its"},{"line_number":52,"context_line":"        # default (https://review.opendev.org/c/openstack/oslo.db/+/804775)"},{"line_number":53,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":54,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    return _CTX_MANAGER"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"15ec259a_368c5e43","line":54,"updated":"2022-02-23 20:01:22.000000000","message":"wow did I put that parameter in there?  *checks*  wow yup.  great!  hope it works","commit_id":"42e3aa55209a4b6d1c34683aa924edf4da8fd2c3"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"f07a7d509557c718b6a2173c45af75fef026f86c","unresolved":true,"context_lines":[{"line_number":476,"context_line":"    if not session.transaction:"},{"line_number":477,"context_line":"        return False"},{"line_number":478,"context_line":"    if not (session.transaction._connections or session.transaction._dirty or"},{"line_number":479,"context_line":"            session.transaction._deleted or session.transaction._new):"},{"line_number":480,"context_line":"        return False"},{"line_number":481,"context_line":"    return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"dbe6b559_fdca97ef","line":479,"updated":"2022-02-23 20:01:22.000000000","message":"OK so like we discussed in my huge email, what this will tell you is if any flushes have proceeded on the current transaction as well as if it has any database connections.  but looking at the code right now I would note that the transaction-level _dirty/_new/_deleted collections are actually weak referencing, because they are only used for rollbacks, so they\u0027re not by themselves reliable for this purpose.\n\n\nIf there\u0027s a transaction in progress, and flushes have proceeded and the transaction wasn\u0027t committed, then \"transaction._connections\"  should be non-empty.  that is, you can\u0027t have tranasction._dirty /_new/_deleted be non-empty with _connections being empty (I\u0027m pretty sure of this unless I\u0027m forgetting something).  so you *should* be able to pass all tests if you make that check \"if not session.transaction._connections\". \n \n\nat the same time, if this session has things pending for flush that haven\u0027t been flushed at all, this check wont tell you that, you would need to look in session.dirty/new/deleted.  this is probably not that important here since we would assume some operation working on other things would have flushed.\n\n But also we should give you APIs for this.   I would propose:\n\n\nsession.has_pending_flush_changes - if flush() is expected to emit SQL\nsession.transaction.is_live (or maybe session.transaction_is_live, or both) - if the SessionTransaction has actual DBAPI connections in progress with transactions on them, or if the transaction is just empty\n\n\nless useful, since I think \"is_live\" is sufficient, might be \nsession.transaction.has_pending_commit_state (or maybe session.has_pending_commit_state, or both), which is a flag we can switch if flushes that have proceeded in this transaction actually emitted SQL to the database.\n\n\nanyway, see if \"if not session.transaction._connections\" works here.  are there tests which exercise this behavior?","commit_id":"42e3aa55209a4b6d1c34683aa924edf4da8fd2c3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d3207117bd723330de4d4bb268ded3bac2da65ea","unresolved":false,"context_lines":[{"line_number":476,"context_line":"    if not session.transaction:"},{"line_number":477,"context_line":"        return False"},{"line_number":478,"context_line":"    if not (session.transaction._connections or session.transaction._dirty or"},{"line_number":479,"context_line":"            session.transaction._deleted or session.transaction._new):"},{"line_number":480,"context_line":"        return False"},{"line_number":481,"context_line":"    return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"e84e366e_59e93a51","line":479,"in_reply_to":"72e9b449_9d453a2f","updated":"2022-02-24 09:09:37.000000000","message":"Ack","commit_id":"42e3aa55209a4b6d1c34683aa924edf4da8fd2c3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ffd08d98c3126243e7d87e6b75ae77dd5622792c","unresolved":true,"context_lines":[{"line_number":476,"context_line":"    if not session.transaction:"},{"line_number":477,"context_line":"        return False"},{"line_number":478,"context_line":"    if not (session.transaction._connections or session.transaction._dirty or"},{"line_number":479,"context_line":"            session.transaction._deleted or session.transaction._new):"},{"line_number":480,"context_line":"        return False"},{"line_number":481,"context_line":"    return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"72e9b449_9d453a2f","line":479,"in_reply_to":"dbe6b559_fdca97ef","updated":"2022-02-24 08:45:10.000000000","message":"Hello Mike, you are right on not checking the .transaction dirty/deleted/new but session ones, same as I\u0027m doing in Neutron patch [1]\n\n\"session.transaction.is_live\" is always True if the session has been used before, regardless of any pending action to be flushed. I can\u0027t used it.\n\nThe API method \"has_pending_flush_changes\", checking the same as I do in [1] could be perfect for us. If we have this method in 2.0 (or in a newer 1.4.x version), I\u0027ll replace n-lib/neutron code to use it.\n\nAgain, thanks a lot. With your blessing, I\u0027ll reach Neutron folks to approve those patches ASAP.\n\n[1]https://review.opendev.org/c/openstack/neutron/+/828739/2/neutron/common/utils.py","commit_id":"42e3aa55209a4b6d1c34683aa924edf4da8fd2c3"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"1d1e1a47265e4ee996ad752988e59b4085582fac","unresolved":false,"context_lines":[{"line_number":476,"context_line":"    if not session.transaction:"},{"line_number":477,"context_line":"        return False"},{"line_number":478,"context_line":"    if not (session.transaction._connections or session.transaction._dirty or"},{"line_number":479,"context_line":"            session.transaction._deleted or session.transaction._new):"},{"line_number":480,"context_line":"        return False"},{"line_number":481,"context_line":"    return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"de623978_32ba4fea","line":479,"in_reply_to":"e84e366e_59e93a51","updated":"2022-02-24 13:36:21.000000000","message":"clarify:  \"transaction.is_live\" does not exist at this time.  it is specific to the condition you are checking, that the transaction has accumulated live connections.\n\na sample implementation would be:\n\n\n@property\ndef is_live(self):\n    return bool(self._connections)","commit_id":"42e3aa55209a4b6d1c34683aa924edf4da8fd2c3"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6fbbe63856440ce90972cdae288cef4a16209d25","unresolved":true,"context_lines":[{"line_number":51,"context_line":"        # TODO(stephenfin): Drop \"__autocommit\u003dFalse\" when oslo.db changes its"},{"line_number":52,"context_line":"        # default (https://review.opendev.org/c/openstack/oslo.db/+/804775)"},{"line_number":53,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":54,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    return _CTX_MANAGER"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"6d627f5d_83f6e58f","line":54,"updated":"2022-02-24 15:52:27.000000000","message":"it\u0027s the same change like in https://review.opendev.org/c/openstack/neutron-lib/+/828514/1/neutron_lib/db/api.py\nShould we abandon Stephen\u0027s patch or make this one of top of that other one?","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"adec5681ef65f158151a47062b3d82403461ce3c","unresolved":true,"context_lines":[{"line_number":51,"context_line":"        # TODO(stephenfin): Drop \"__autocommit\u003dFalse\" when oslo.db changes its"},{"line_number":52,"context_line":"        # default (https://review.opendev.org/c/openstack/oslo.db/+/804775)"},{"line_number":53,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":54,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    return _CTX_MANAGER"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f5b5add3_e81803cb","line":54,"in_reply_to":"6d627f5d_83f6e58f","updated":"2022-02-24 16:09:25.000000000","message":"I talked to Stephen. I initially pushed this patch just for testing, figuring out the needed changes both in Neutron and n-lib. This patch depends on the Neutron one and also includes other changes like the \"is_session_active\" implementation.\n\nI\u0027ll talk to Stephen and I\u0027ll ask him to abandon his patch.","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2f8f77f355c450ad2f5ac6bf65326fc71c15843d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        # TODO(stephenfin): Drop \"__autocommit\u003dFalse\" when oslo.db changes its"},{"line_number":52,"context_line":"        # default (https://review.opendev.org/c/openstack/oslo.db/+/804775)"},{"line_number":53,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":54,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    return _CTX_MANAGER"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1e35c272_22565192","line":54,"in_reply_to":"881d5be7_0facb9aa","updated":"2022-03-02 14:58:01.000000000","message":"Thx","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0f780ff60b86cf13bf86adfa8276a5b788043fb4","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        # TODO(stephenfin): Drop \"__autocommit\u003dFalse\" when oslo.db changes its"},{"line_number":52,"context_line":"        # default (https://review.opendev.org/c/openstack/oslo.db/+/804775)"},{"line_number":53,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":54,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    return _CTX_MANAGER"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"881d5be7_0facb9aa","line":54,"in_reply_to":"938d2dd0_b1dc57c0","updated":"2022-02-25 09:12:57.000000000","message":"Thanks!","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"16c1875ecb0f1a2fc2231b736fdc18afeddac49a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        # TODO(stephenfin): Drop \"__autocommit\u003dFalse\" when oslo.db changes its"},{"line_number":52,"context_line":"        # default (https://review.opendev.org/c/openstack/oslo.db/+/804775)"},{"line_number":53,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":54,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    return _CTX_MANAGER"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"938d2dd0_b1dc57c0","line":54,"in_reply_to":"f5b5add3_e81803cb","updated":"2022-02-24 17:16:17.000000000","message":"Done","commit_id":"f0cf6da9d283712b208de15f8cbaf97df6816b73"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"4ee630b80123360f813f2df90ee2f24db9d517c4","unresolved":true,"context_lines":[{"line_number":52,"context_line":"        # TODO(stephenfin): Drop \"__autocommit\u003dFalse\" when oslo.db changes its"},{"line_number":53,"context_line":"        # default (https://review.opendev.org/c/openstack/oslo.db/+/804775)"},{"line_number":54,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":55,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    return _CTX_MANAGER"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ee3fe021_1dcf173c","line":55,"updated":"2022-03-10 14:16:27.000000000","message":"try restoring this to __autocommit\u003dTrue, then add an event handler like this, at the global level:\n\n\n    import warnings\n    from sqlalchemy.orm import Session\n    from sqlalchemy import event\n\n    @event.listens_for(Session, \"do_orm_execute\")\n    def do_orm_execute(orm_execute_state):\n        session \u003d orm_execute_state.session\n        if session.autocommit and not orm_execute_state.session.in_transaction():\n            warnings.warn(\n                \"ORM session SQL execution without transaction in progress; \"\n                \"this will \u0027autobegin\u0027 when autocommit\u003dFalse, which is different \"\n                \"than autocommit\u003dTrue which creates an ad-hoc transaction\"\n            )\n\n\n\n\nthis will illustrate where SQL is being run on an \"implicit transaction\", which under autocommit is discarded immediately, and under non-autocommit creates a transaction and sticks it open.   Some or all areas where this occurs may need adjustments, either to use an ad-hoc \"with session.begin()\" block, or similar.","commit_id":"4ee2bc8370e6664896f02bcc7277dee0ec6c867e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0690aeacdb5068745c0db59f4da0e296c3b56166","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        # TODO(stephenfin): Drop \"__autocommit\u003dFalse\" when oslo.db changes its"},{"line_number":53,"context_line":"        # default (https://review.opendev.org/c/openstack/oslo.db/+/804775)"},{"line_number":54,"context_line":"        _CTX_MANAGER.configure(sqlite_fk\u003dTrue, flush_on_subtransaction\u003dTrue,"},{"line_number":55,"context_line":"                               __autocommit\u003dFalse)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    return _CTX_MANAGER"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"4523dca7_fe858fef","line":55,"in_reply_to":"ee3fe021_1dcf173c","updated":"2022-04-21 16:02:31.000000000","message":"Done","commit_id":"4ee2bc8370e6664896f02bcc7277dee0ec6c867e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d36e6b05fb6443c4cac7379927f0489ec9343eb1","unresolved":true,"context_lines":[{"line_number":475,"context_line":"    behaviour, this method checks the pending new, deleted and dirty elements"},{"line_number":476,"context_line":"    to be flushed."},{"line_number":477,"context_line":"    \"\"\""},{"line_number":478,"context_line":"    if session.autocommit:  # old behaviour, to be removed with sqlalchemy 2.0"},{"line_number":479,"context_line":"        return session.is_active"},{"line_number":480,"context_line":"    if not session.transaction:"},{"line_number":481,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":17,"id":"1db7e6cd_f2b47330","line":478,"updated":"2022-04-12 10:20:07.000000000","message":"nit: I assume if this behavior is going away, the parameter will probably disappear with it? If so, do we want to use getattr instead?\n\n  # TODO(ralonsoh): Remove once SQLAlchemy 2.0 or later is our minimum\n  if getattr(session, \u0027autocommit\u0027, False):","commit_id":"627d7d9569024fe25931e6f52b7eae1ef4a8dc92"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f8869a55f2d24d254925b71096c1c70c8ecdc0ef","unresolved":true,"context_lines":[{"line_number":475,"context_line":"    behaviour, this method checks the pending new, deleted and dirty elements"},{"line_number":476,"context_line":"    to be flushed."},{"line_number":477,"context_line":"    \"\"\""},{"line_number":478,"context_line":"    if session.autocommit:  # old behaviour, to be removed with sqlalchemy 2.0"},{"line_number":479,"context_line":"        return session.is_active"},{"line_number":480,"context_line":"    if not session.transaction:"},{"line_number":481,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":17,"id":"40d281e8_a962c43a","line":478,"in_reply_to":"1db7e6cd_f2b47330","updated":"2022-04-12 13:25:08.000000000","message":"Right, good observation.","commit_id":"627d7d9569024fe25931e6f52b7eae1ef4a8dc92"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0690aeacdb5068745c0db59f4da0e296c3b56166","unresolved":false,"context_lines":[{"line_number":475,"context_line":"    behaviour, this method checks the pending new, deleted and dirty elements"},{"line_number":476,"context_line":"    to be flushed."},{"line_number":477,"context_line":"    \"\"\""},{"line_number":478,"context_line":"    if session.autocommit:  # old behaviour, to be removed with sqlalchemy 2.0"},{"line_number":479,"context_line":"        return session.is_active"},{"line_number":480,"context_line":"    if not session.transaction:"},{"line_number":481,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":17,"id":"69d9c9f1_8bc909e2","line":478,"in_reply_to":"40d281e8_a962c43a","updated":"2022-04-21 16:02:31.000000000","message":"Done","commit_id":"627d7d9569024fe25931e6f52b7eae1ef4a8dc92"}]}
