)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f3dc45354ceb392ffc637b404f6dbb4fec35fe48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9e4168a7_6b45abf2","updated":"2022-09-05 14:29:17.000000000","message":"I have to respin this as it seems 0.5second is not enough in our CI to allow eventlet to switch and run. We are probably running in a very overallocated environment.","commit_id":"3956053dc77d2dfd83513ae0c59a5be521bb9c65"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"71d1c78621f060bf531ae085a6e388fdd2b7b20f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4b3ed040_ca8f85a6","in_reply_to":"9e4168a7_6b45abf2","updated":"2022-09-05 14:35:12.000000000","message":"Done.","commit_id":"3956053dc77d2dfd83513ae0c59a5be521bb9c65"}],"nova/utils.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3b8d8c5b010877b92287aa881062944f4a210d71","unresolved":true,"context_lines":[{"line_number":100,"context_line":"                # anything"},{"line_number":101,"context_line":"                return f(*args, **kwargs)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            import fasteners"},{"line_number":104,"context_line":"            orig_lock_init \u003d fasteners.lock.ReaderWriterLock.__init__"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            def wrapped_lock_init(_self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"a3d94dfd_312d0c64","line":103,"range":{"start_line":103,"start_character":12,"end_line":103,"end_character":28},"updated":"2022-09-05 10:31:42.000000000","message":"this could be imported globally but this works i guess.\ni would prefer to do the global import.","commit_id":"66d80ba622687c8878499aa7f26384b0e8b2bdb6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f3dc45354ceb392ffc637b404f6dbb4fec35fe48","unresolved":true,"context_lines":[{"line_number":100,"context_line":"                # anything"},{"line_number":101,"context_line":"                return f(*args, **kwargs)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            import fasteners"},{"line_number":104,"context_line":"            orig_lock_init \u003d fasteners.lock.ReaderWriterLock.__init__"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            def wrapped_lock_init(_self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"eb3566e8_8fcbad25","line":103,"range":{"start_line":103,"start_character":12,"end_line":103,"end_character":28},"in_reply_to":"a3d94dfd_312d0c64","updated":"2022-09-05 14:29:17.000000000","message":"I can move it to the top sure","commit_id":"66d80ba622687c8878499aa7f26384b0e8b2bdb6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"71d1c78621f060bf531ae085a6e388fdd2b7b20f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                # anything"},{"line_number":101,"context_line":"                return f(*args, **kwargs)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            import fasteners"},{"line_number":104,"context_line":"            orig_lock_init \u003d fasteners.lock.ReaderWriterLock.__init__"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            def wrapped_lock_init(_self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"87063bad_bfbb821b","line":103,"range":{"start_line":103,"start_character":12,"end_line":103,"end_character":28},"in_reply_to":"eb3566e8_8fcbad25","updated":"2022-09-05 14:35:12.000000000","message":"Done","commit_id":"66d80ba622687c8878499aa7f26384b0e8b2bdb6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3b8d8c5b010877b92287aa881062944f4a210d71","unresolved":true,"context_lines":[{"line_number":101,"context_line":"                return f(*args, **kwargs)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            import fasteners"},{"line_number":104,"context_line":"            orig_lock_init \u003d fasteners.lock.ReaderWriterLock.__init__"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            def wrapped_lock_init(_self, *args, **kwargs):"},{"line_number":107,"context_line":"                orig_lock_init(_self, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1b87be5c_f2f8df91","line":104,"range":{"start_line":104,"start_character":28,"end_line":104,"end_character":60},"updated":"2022-09-05 10:31:42.000000000","message":"we are using this because its a file backed lock right.\n\nwe dont actully need the ReaderWriter semantics for synchonized to work the way we expect it to\n\nwe expect it to baisclly be a full mutex with some fairness with regards to the order in which corutines actully started waiting.","commit_id":"66d80ba622687c8878499aa7f26384b0e8b2bdb6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f3dc45354ceb392ffc637b404f6dbb4fec35fe48","unresolved":true,"context_lines":[{"line_number":101,"context_line":"                return f(*args, **kwargs)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            import fasteners"},{"line_number":104,"context_line":"            orig_lock_init \u003d fasteners.lock.ReaderWriterLock.__init__"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            def wrapped_lock_init(_self, *args, **kwargs):"},{"line_number":107,"context_line":"                orig_lock_init(_self, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"6cba28de_4d7eafc3","line":104,"range":{"start_line":104,"start_character":28,"end_line":104,"end_character":60},"in_reply_to":"1b87be5c_f2f8df91","updated":"2022-09-05 14:29:17.000000000","message":"\u003e we are using this because its a file backed lock right.\n\nNo this is not a file based lock.\n\n\u003e \n\u003e we dont actully need the ReaderWriter semantics for synchonized to work the way we expect it to\n\u003e \n\u003e we expect it to baisclly be a full mutex with some fairness with regards to the order in which corutines actully started waiting.\n\nThe fair\u003dTrue part needs the a lock implementation that is fair. Oslo choose fasteners.ReaderWriterLock as it is stated as fair. https://github.com/openstack/oslo.concurrency/blob/052b2f23572900601b0f41387dbbb07153d88982/oslo_concurrency/lockutils.py#L287-L288\n\nSo yes, somebody could implement a fair lock in oslo that is independent from the fasteners.ReaderWriterLock.","commit_id":"66d80ba622687c8878499aa7f26384b0e8b2bdb6"}]}
