)]}'
{"dragonflow/db/neutron/lockedobjects_db.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0afe869778f0e4afecb32b7130f2712addea6597","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    # NOTE(nick-ma-z): we disallow subtransactions because the"},{"line_number":152,"context_line":"    # retry logic will bust any parent transactions"},{"line_number":153,"context_line":"    session \u003d db_api.get_session()"},{"line_number":154,"context_line":"    with session.begin():"},{"line_number":155,"context_line":"        _lock_free_update(session, oid, lock_state\u003dTrue, session_id\u003dsid)"},{"line_number":156,"context_line":"        LOG.info(_LI(\"Lock is released for object %(oid)s in \""},{"line_number":157,"context_line":"                     \"session %(sid)s.\"), {\u0027oid\u0027: oid, \u0027sid\u0027: sid})"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_8e409c37","line":154,"updated":"2016-12-19 08:31:23.000000000","message":"I think we should keep this log to be uniform with _acquire_lock. Maybe just a reword, e.g. \u0027Try to release lock for object %(oid)s in session %(sid)s.\u0027 ?","commit_id":"41844133f55c91f1641645a7ae6afa02361f1e28"},{"author":{"_account_id":18903,"name":"Yuli","email":"stremovsky@gmail.com","username":"yuli"},"change_message_id":"72b3fec5c342b43789b6f184686d11ef6a451174","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    # NOTE(nick-ma-z): we disallow subtransactions because the"},{"line_number":152,"context_line":"    # retry logic will bust any parent transactions"},{"line_number":153,"context_line":"    session \u003d db_api.get_session()"},{"line_number":154,"context_line":"    with session.begin():"},{"line_number":155,"context_line":"        _lock_free_update(session, oid, lock_state\u003dTrue, session_id\u003dsid)"},{"line_number":156,"context_line":"        LOG.info(_LI(\"Lock is released for object %(oid)s in \""},{"line_number":157,"context_line":"                     \"session %(sid)s.\"), {\u0027oid\u0027: oid, \u0027sid\u0027: sid})"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_202a27e8","line":154,"in_reply_to":"1a6eadb0_8e409c37","updated":"2016-12-19 14:19:41.000000000","message":"Done","commit_id":"41844133f55c91f1641645a7ae6afa02361f1e28"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"2bf5087b00b51a54c1370b355d48f0e2b81b43ef","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    # NOTE(nick-ma-z): we disallow subtransactions because the"},{"line_number":152,"context_line":"    # retry logic will bust any parent transactions"},{"line_number":153,"context_line":"    session \u003d db_api.get_session()"},{"line_number":154,"context_line":"    with session.begin():"},{"line_number":155,"context_line":"        _lock_free_update(session, oid, lock_state\u003dTrue, session_id\u003dsid)"},{"line_number":156,"context_line":"        LOG.info(_LI(\"Lock is released for object %(oid)s in \""},{"line_number":157,"context_line":"                     \"session %(sid)s.\"), {\u0027oid\u0027: oid, \u0027sid\u0027: sid})"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_d180758e","line":154,"in_reply_to":"1a6eadb0_8e409c37","updated":"2016-12-19 09:07:52.000000000","message":"yes, maybe make it debug level?","commit_id":"41844133f55c91f1641645a7ae6afa02361f1e28"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"f85776f21fcacf0193c9bcedbe8d9dd5841ad79b","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    # retry logic will bust any parent transactions"},{"line_number":153,"context_line":"    session \u003d db_api.get_session()"},{"line_number":154,"context_line":"    with session.begin():"},{"line_number":155,"context_line":"        LOG.debug(_LI(\"Try to release lock for object %(oid)s in \""},{"line_number":156,"context_line":"                      \"session %(sid)s.\"), {\u0027oid\u0027: oid, \u0027sid\u0027: sid})"},{"line_number":157,"context_line":"        _lock_free_update(session, oid, lock_state\u003dTrue, session_id\u003dsid)"},{"line_number":158,"context_line":"        LOG.info(_LI(\"Lock is released for object %(oid)s in \""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_012ef6f9","line":155,"range":{"start_line":155,"start_character":18,"end_line":155,"end_character":21},"updated":"2016-12-20 01:25:21.000000000","message":"If it is debug, the _LI() should be removed.","commit_id":"721c1fae8ffb5403608102fbd031a5f5b7f5165a"},{"author":{"_account_id":18903,"name":"Yuli","email":"stremovsky@gmail.com","username":"yuli"},"change_message_id":"eac11d7afedd9f6372d48b200f3800926a166768","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    # retry logic will bust any parent transactions"},{"line_number":153,"context_line":"    session \u003d db_api.get_session()"},{"line_number":154,"context_line":"    with session.begin():"},{"line_number":155,"context_line":"        LOG.debug(_LI(\"Try to release lock for object %(oid)s in \""},{"line_number":156,"context_line":"                      \"session %(sid)s.\"), {\u0027oid\u0027: oid, \u0027sid\u0027: sid})"},{"line_number":157,"context_line":"        _lock_free_update(session, oid, lock_state\u003dTrue, session_id\u003dsid)"},{"line_number":158,"context_line":"        LOG.info(_LI(\"Lock is released for object %(oid)s in \""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_b3cad418","line":155,"range":{"start_line":155,"start_character":18,"end_line":155,"end_character":21},"in_reply_to":"1a6eadb0_012ef6f9","updated":"2016-12-20 14:41:07.000000000","message":"Done","commit_id":"721c1fae8ffb5403608102fbd031a5f5b7f5165a"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"9b6798547df2740452a3195077d12cd6ee7e2fb4","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    # retry logic will bust any parent transactions"},{"line_number":153,"context_line":"    session \u003d db_api.get_session()"},{"line_number":154,"context_line":"    with session.begin():"},{"line_number":155,"context_line":"        LOG.debug(_LI(\"Try to release lock for object %(oid)s in \""},{"line_number":156,"context_line":"                      \"session %(sid)s.\"), {\u0027oid\u0027: oid, \u0027sid\u0027: sid})"},{"line_number":157,"context_line":"        _lock_free_update(session, oid, lock_state\u003dTrue, session_id\u003dsid)"},{"line_number":158,"context_line":"        LOG.info(_LI(\"Lock is released for object %(oid)s in \""},{"line_number":159,"context_line":"                     \"session %(sid)s.\"), {\u0027oid\u0027: oid, \u0027sid\u0027: sid})"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"def _generate_session_id():"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_fb8268c7","line":159,"range":{"start_line":155,"start_character":8,"end_line":159,"end_character":67},"updated":"2016-12-20 13:07:29.000000000","message":"If we change it to debug, we should modify other similar log to debug level too, also in _acquire_lock() method.","commit_id":"721c1fae8ffb5403608102fbd031a5f5b7f5165a"},{"author":{"_account_id":18903,"name":"Yuli","email":"stremovsky@gmail.com","username":"yuli"},"change_message_id":"eac11d7afedd9f6372d48b200f3800926a166768","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    # retry logic will bust any parent transactions"},{"line_number":153,"context_line":"    session \u003d db_api.get_session()"},{"line_number":154,"context_line":"    with session.begin():"},{"line_number":155,"context_line":"        LOG.debug(_LI(\"Try to release lock for object %(oid)s in \""},{"line_number":156,"context_line":"                      \"session %(sid)s.\"), {\u0027oid\u0027: oid, \u0027sid\u0027: sid})"},{"line_number":157,"context_line":"        _lock_free_update(session, oid, lock_state\u003dTrue, session_id\u003dsid)"},{"line_number":158,"context_line":"        LOG.info(_LI(\"Lock is released for object %(oid)s in \""},{"line_number":159,"context_line":"                     \"session %(sid)s.\"), {\u0027oid\u0027: oid, \u0027sid\u0027: sid})"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"def _generate_session_id():"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_d3d110cf","line":159,"range":{"start_line":155,"start_character":8,"end_line":159,"end_character":67},"in_reply_to":"1a6eadb0_fb8268c7","updated":"2016-12-20 14:41:07.000000000","message":"Done","commit_id":"721c1fae8ffb5403608102fbd031a5f5b7f5165a"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5640736c5ac3c2ba2a15ae3ae2fedfca3565df6a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import six"},{"line_number":27,"context_line":"from sqlalchemy.orm import exc as orm_exc"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from dragonflow._i18n import _LI, _LW"},{"line_number":30,"context_line":"from dragonflow.common import exceptions as df_exc"},{"line_number":31,"context_line":"from dragonflow.db.neutron import models"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_89a832dd","line":29,"range":{"start_line":29,"start_character":29,"end_line":29,"end_character":32},"updated":"2016-12-21 01:38:26.000000000","message":"Since there is no usage of _LI in this file, this should be removed.","commit_id":"d14336605639adb260c53e6686e67b3fc79ef30e"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"9d823363d4e6a1b8fa0325252ea74a4ea3b38c4e","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        update(update_params, synchronize_session\u003d\u0027fetch\u0027)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    if not rows_update:"},{"line_number":223,"context_line":"        LOG.debug(\u0027The lock for object %(id)s in session \u0027"},{"line_number":224,"context_line":"                  \u0027%(sid)s cannot be updated.\u0027, {\u0027id\u0027: id,"},{"line_number":225,"context_line":"                                                 \u0027sid\u0027: session_id})"},{"line_number":226,"context_line":"        raise db_exc.RetryRequest(df_exc.DBLockFailed(oid\u003did, sid\u003dsession_id))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_08fef237","line":223,"range":{"start_line":223,"start_character":12,"end_line":223,"end_character":17},"updated":"2016-12-20 15:51:11.000000000","message":"Actually, I think this is a warning. In theory, the update should never fail. If it does, it might show a bug.","commit_id":"d14336605639adb260c53e6686e67b3fc79ef30e"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5640736c5ac3c2ba2a15ae3ae2fedfca3565df6a","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        update(update_params, synchronize_session\u003d\u0027fetch\u0027)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    if not rows_update:"},{"line_number":223,"context_line":"        LOG.debug(\u0027The lock for object %(id)s in session \u0027"},{"line_number":224,"context_line":"                  \u0027%(sid)s cannot be updated.\u0027, {\u0027id\u0027: id,"},{"line_number":225,"context_line":"                                                 \u0027sid\u0027: session_id})"},{"line_number":226,"context_line":"        raise db_exc.RetryRequest(df_exc.DBLockFailed(oid\u003did, sid\u003dsession_id))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_69b036de","line":223,"range":{"start_line":223,"start_character":12,"end_line":223,"end_character":17},"in_reply_to":"1a6eadb0_08fef237","updated":"2016-12-21 01:38:26.000000000","message":"I think it is OK to be debug(as it was info before)here. The call to this method will be wrapped with \"@oslo_db_api.wrap_db_retry\". And RetryRequest can silently trigger the db to retry the request. [1]\n\nWhen 2 processes requests one lock at one time, it will hit this code. And basically, the other process needs to wait. If timeout, the inner exception DBLockFailed will be raised.\n\n[1] https://github.com/openstack/oslo.db/blob/b19738a13a08f9ff5ac2357060250d121c680163/oslo_db/api.py#L88","commit_id":"d14336605639adb260c53e6686e67b3fc79ef30e"}]}
