)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"b2e10afa7450a8218a3fcc39ec370ac11babd903","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d15e313d_c480e1d4","updated":"2022-12-01 16:54:51.000000000","message":"yeah, I think this is right.","commit_id":"861d13c513ab99b027ea94f192a0438c1f6ee542"}],"test/unit/common/test_db.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"b2e10afa7450a8218a3fcc39ec370ac11babd903","unresolved":true,"context_lines":[{"line_number":930,"context_line":"        self.assertEqual(str(raised.exception),"},{"line_number":931,"context_line":"                         \u00270.1 seconds: %s\u0027 % broker.db_file)"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"        # and the timeout bubbles up out of broker.lock()"},{"line_number":934,"context_line":"        with self.assertRaises(LockTimeout) as raised:"},{"line_number":935,"context_line":"            with broker.lock():"},{"line_number":936,"context_line":"                with broker2.lock():"}],"source_content_type":"text/x-python","patch_set":1,"id":"50ba2b94_083a7ee5","line":933,"updated":"2022-12-01 16:54:51.000000000","message":"oh wow, that\u0027s kind of interesting, before it got swollowed by the outer lock - crazy!?  I guess we never actually take the locks like this - it\u0027d actually be two process with only one level of locking.  Unless ... we accidently do some kind of reentrent thing on accident and don\u0027t see it because it gets swallowed!?","commit_id":"861d13c513ab99b027ea94f192a0438c1f6ee542"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5e1b7029fe3a7afa0de72ff81bf6c65676a909fa","unresolved":true,"context_lines":[{"line_number":930,"context_line":"        self.assertEqual(str(raised.exception),"},{"line_number":931,"context_line":"                         \u00270.1 seconds: %s\u0027 % broker.db_file)"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"        # and the timeout bubbles up out of broker.lock()"},{"line_number":934,"context_line":"        with self.assertRaises(LockTimeout) as raised:"},{"line_number":935,"context_line":"            with broker.lock():"},{"line_number":936,"context_line":"                with broker2.lock():"}],"source_content_type":"text/x-python","patch_set":1,"id":"78b4d960_c778256c","line":933,"in_reply_to":"50ba2b94_083a7ee5","updated":"2022-12-01 18:02:16.000000000","message":"Or we lock the DB, then go do some IO that times out -- I\u0027ll be real interested in seeing whether we see a bunch more exceptions in prod following this...\n\nBonus fun: the old behavior also meant we\u0027d swallow AssertionErrors. Think on that for a moment.","commit_id":"861d13c513ab99b027ea94f192a0438c1f6ee542"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"37fd666bf6ac3455d55a8ab043b0ce84dbd6b69b","unresolved":true,"context_lines":[{"line_number":930,"context_line":"        self.assertEqual(str(raised.exception),"},{"line_number":931,"context_line":"                         \u00270.1 seconds: %s\u0027 % broker.db_file)"},{"line_number":932,"context_line":""},{"line_number":933,"context_line":"        # and the timeout bubbles up out of broker.lock()"},{"line_number":934,"context_line":"        with self.assertRaises(LockTimeout) as raised:"},{"line_number":935,"context_line":"            with broker.lock():"},{"line_number":936,"context_line":"                with broker2.lock():"}],"source_content_type":"text/x-python","patch_set":1,"id":"72694bd2_c1ba1409","line":933,"in_reply_to":"78b4d960_c778256c","updated":"2022-12-02 14:57:11.000000000","message":"\u003e we\u0027d swallow AssertionErrors. Think on that for a moment\n\nno.  that\u0027s terrifying.","commit_id":"861d13c513ab99b027ea94f192a0438c1f6ee542"}]}
