)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"713743fb59ddd1cb05f9c39b07858679bc5d9230","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6a1a9f86_c0c23b3e","updated":"2022-07-07 16:43:11.000000000","message":"need to also remove the ability to create in memory databases from the implementation - if we\u0027re not testing it; we don\u0027t support it.\n\nBut, we think this is the right direction!","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"4726dde5aed4df3700b7fc8a0d88a956bc88baba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"31355f25_e01a1a7c","updated":"2022-07-07 22:28:09.000000000","message":"thanks Jianjian!","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"b2ea03e15c9360f1f398e5fa89f912ef5cf06c99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7fddf5a6_37eeeecd","updated":"2022-07-07 21:54:44.000000000","message":"yes, mkdtemp is better way to unify test cases and production usage.","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"4726dde5aed4df3700b7fc8a0d88a956bc88baba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0ba83d92_51fca5b0","in_reply_to":"6a1a9f86_c0c23b3e","updated":"2022-07-07 22:28:09.000000000","message":"Yeah, I ran out of time, was going to add it as a follow up to break up the change a little. But happy to have them all as one.","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"e8cf940c539fbe4ae44394777c232c0576feb4b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0b58a068_43f971f1","updated":"2023-01-10 18:23:13.000000000","message":"As I recall, this was related to some shard-range investigation a while back, but hasn\u0027t seen any movement in a while. Unlike a bunch of the other patches around that effort, though, this one\n\n* isn\u0027t in merge conflict and\n* seems like it might still be useful/desirable.\n\nShould we try to get this reviewed \u0026 landed? Or should we abandon it?","commit_id":"a548da916f5bb3097c42de54b53e54a57853220b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a700a6e70fcad3750cebc36bed9024375342ca36","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"097cc097_eada623c","updated":"2023-02-08 21:23:29.000000000","message":"Eh, I\u0027m sure my minor concern will come to nothing.","commit_id":"a548da916f5bb3097c42de54b53e54a57853220b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"09c9c937ae5a613d292c6304dbd0fa1382faed6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8af5b58a_8ab7c65e","updated":"2023-01-10 19:26:58.000000000","message":"i still think this is a good idea","commit_id":"a548da916f5bb3097c42de54b53e54a57853220b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"eb8c82abd4da16adffd883a2465027a60d6580b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fa8b0dfe_0f640b71","updated":"2023-02-09 05:24:04.000000000","message":"recheck\n\nLooks like object-updater popped a timeout in TestContainerMergePolicyIndex.test_reconciler_move_object_twice -- we could consider bumping up some timeouts at least for probe tests...","commit_id":"a548da916f5bb3097c42de54b53e54a57853220b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b46cf34249b4608fe7fc9951366dc5904a77c1a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"66b5aef7_e6369a7e","updated":"2023-02-09 01:37:09.000000000","message":"recheck\n\nSome kind of timeout in\n\n tempest.api.compute.servers.test_create_server.ServersTestBootFromVolume","commit_id":"a548da916f5bb3097c42de54b53e54a57853220b"},{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"76c2c22dbdcb7fc68b4550818d10db6b97fd079a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b7b572fa_d3c39326","in_reply_to":"0b58a068_43f971f1","updated":"2023-01-10 18:28:28.000000000","message":"is there a different patch? I remember it\u0027s not this one.","commit_id":"a548da916f5bb3097c42de54b53e54a57853220b"}],"swift/container/backend.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"95ac203fd4cd503916cd92d2892ef793fe6e1fac","unresolved":true,"context_lines":[{"line_number":349,"context_line":"                 force_db_file\u003dFalse):"},{"line_number":350,"context_line":"        self._init_db_file \u003d db_file"},{"line_number":351,"context_line":"        if db_file \u003d\u003d \u0027:memory:\u0027:"},{"line_number":352,"context_line":"            base_db_file \u003d db_file"},{"line_number":353,"context_line":"        else:"},{"line_number":354,"context_line":"            base_db_file \u003d make_db_file_path(db_file, None)"},{"line_number":355,"context_line":"        super(ContainerBroker, self).__init__("}],"source_content_type":"text/x-python","patch_set":4,"id":"afaf36b2_6302d505","side":"PARENT","line":352,"updated":"2023-01-30 18:59:07.000000000","message":"Do we think there\u0027s any chance of external code using in-memory DBs? Just thinking that if there are, raising an error here would probably be better than creating an on-disk DB named \":memory:\" in who-knows-what-directory...","commit_id":"475cdba65bcd29871b840395576572c0d8399a6b"}],"test/unit/account/test_backend.py":[{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"b2ea03e15c9360f1f398e5fa89f912ef5cf06c99","unresolved":true,"context_lines":[{"line_number":299,"context_line":"        broker.initialize(Timestamp(\u00271\u0027).internal)"},{"line_number":300,"context_line":"        broker.put_container(\u0027o\u0027, Timestamp.now().internal, 0, 0, 0,"},{"line_number":301,"context_line":"                             POLICIES.default.idx)"},{"line_number":302,"context_line":"        # call get_info to run _commit_puts"},{"line_number":303,"context_line":"        broker.get_info()"},{"line_number":304,"context_line":"        with broker.get() as conn:"},{"line_number":305,"context_line":"            self.assertEqual(conn.execute("}],"source_content_type":"text/x-python","patch_set":1,"id":"532f5565_04d72291","line":302,"updated":"2022-07-07 21:54:44.000000000","message":"Could you also add comments to explain why \"run _commit_puts\" is needed? Thanks.","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"7743a52480a8b4e8bb955abaea324ecda23ad1c8","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        broker.initialize(Timestamp(\u00271\u0027).internal)"},{"line_number":300,"context_line":"        broker.put_container(\u0027o\u0027, Timestamp.now().internal, 0, 0, 0,"},{"line_number":301,"context_line":"                             POLICIES.default.idx)"},{"line_number":302,"context_line":"        # call get_info to run _commit_puts"},{"line_number":303,"context_line":"        broker.get_info()"},{"line_number":304,"context_line":"        with broker.get() as conn:"},{"line_number":305,"context_line":"            self.assertEqual(conn.execute("}],"source_content_type":"text/x-python","patch_set":1,"id":"d8dc61ba_40c6f539","line":302,"in_reply_to":"039e36bd_5e053618","updated":"2022-07-10 23:35:51.000000000","message":"Done","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"4726dde5aed4df3700b7fc8a0d88a956bc88baba","unresolved":true,"context_lines":[{"line_number":299,"context_line":"        broker.initialize(Timestamp(\u00271\u0027).internal)"},{"line_number":300,"context_line":"        broker.put_container(\u0027o\u0027, Timestamp.now().internal, 0, 0, 0,"},{"line_number":301,"context_line":"                             POLICIES.default.idx)"},{"line_number":302,"context_line":"        # call get_info to run _commit_puts"},{"line_number":303,"context_line":"        broker.get_info()"},{"line_number":304,"context_line":"        with broker.get() as conn:"},{"line_number":305,"context_line":"            self.assertEqual(conn.execute("}],"source_content_type":"text/x-python","patch_set":1,"id":"039e36bd_5e053618","line":302,"in_reply_to":"532f5565_04d72291","updated":"2022-07-07 22:28:09.000000000","message":"Good idea, I\u0027ll mention it on the first \"get_info\" used in each test (Cause there are lot :P)","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"}],"test/unit/common/test_db.py":[{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"b2ea03e15c9360f1f398e5fa89f912ef5cf06c99","unresolved":true,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"class TestGetDBConnection(unittest.TestCase):"},{"line_number":190,"context_line":"    def setUp(self):"},{"line_number":191,"context_line":"        self.testdir \u003d mkdtemp()"},{"line_number":192,"context_line":"        self.db_path \u003d self.get_db_path()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"a74f8501_ef437de0","line":191,"updated":"2022-07-07 21:54:44.000000000","message":"maybe setUp() can handle and ignore PermissionError if the same dir exists (previous test stopped in the middle)? if yes, should we create a helper function somewhere in test util, and call it in everywhere when we need to call mkdtemp()?","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"cf104246a7b8d4aed1512ad84f359f5464677e53","unresolved":true,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"class TestGetDBConnection(unittest.TestCase):"},{"line_number":190,"context_line":"    def setUp(self):"},{"line_number":191,"context_line":"        self.testdir \u003d mkdtemp()"},{"line_number":192,"context_line":"        self.db_path \u003d self.get_db_path()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"655efb10_9c34e7dd","line":191,"in_reply_to":"47fbd928_de26f74f","updated":"2022-07-07 23:04:32.000000000","message":"mkdtemp should already be unique, and this setUp shuold be run between each test, so it should be unique. It does have a prefix option, so I guess I could try and make it more unique.","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"7743a52480a8b4e8bb955abaea324ecda23ad1c8","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"class TestGetDBConnection(unittest.TestCase):"},{"line_number":190,"context_line":"    def setUp(self):"},{"line_number":191,"context_line":"        self.testdir \u003d mkdtemp()"},{"line_number":192,"context_line":"        self.db_path \u003d self.get_db_path()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"59c480a0_91f15250","line":191,"in_reply_to":"655efb10_9c34e7dd","updated":"2022-07-10 23:35:51.000000000","message":"As you can see here, I turned it into a base TestCase class that can control the setUp and tearDown of the tempfile as well as add a helper method to make the classes that include it simple to use.","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"4726dde5aed4df3700b7fc8a0d88a956bc88baba","unresolved":true,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"class TestGetDBConnection(unittest.TestCase):"},{"line_number":190,"context_line":"    def setUp(self):"},{"line_number":191,"context_line":"        self.testdir \u003d mkdtemp()"},{"line_number":192,"context_line":"        self.db_path \u003d self.get_db_path()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"47fbd928_de26f74f","line":191,"in_reply_to":"a74f8501_ef437de0","updated":"2022-07-07 22:28:09.000000000","message":"Good idea! Step 1 was getting the tests working. But yeah, now that we know the extent of the fallout we can refactor some more :)","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"b2ea03e15c9360f1f398e5fa89f912ef5cf06c99","unresolved":true,"context_lines":[{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    def setUp(self):"},{"line_number":351,"context_line":"        self.ts \u003d make_timestamp_iter()"},{"line_number":352,"context_line":"        self.testdir \u003d mkdtemp()"},{"line_number":353,"context_line":"        self.db_path \u003d get_db_path(self.testdir)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3bb7b02b_bdd600b9","line":352,"updated":"2022-07-07 21:54:44.000000000","message":"ditto","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"7743a52480a8b4e8bb955abaea324ecda23ad1c8","unresolved":false,"context_lines":[{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    def setUp(self):"},{"line_number":351,"context_line":"        self.ts \u003d make_timestamp_iter()"},{"line_number":352,"context_line":"        self.testdir \u003d mkdtemp()"},{"line_number":353,"context_line":"        self.db_path \u003d get_db_path(self.testdir)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"62c9ba94_9463aeee","line":352,"in_reply_to":"3bb7b02b_bdd600b9","updated":"2022-07-10 23:35:51.000000000","message":"Done","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"b2ea03e15c9360f1f398e5fa89f912ef5cf06c99","unresolved":true,"context_lines":[{"line_number":764,"context_line":"        def do_test(expected_metadata, delete_meta_whitelist\u003dNone):"},{"line_number":765,"context_line":"            if not delete_meta_whitelist:"},{"line_number":766,"context_line":"                delete_meta_whitelist \u003d []"},{"line_number":767,"context_line":"            broker \u003d DatabaseBroker(get_db_path(self.testdir))"},{"line_number":768,"context_line":"            broker.delete_meta_whitelist \u003d delete_meta_whitelist"},{"line_number":769,"context_line":"            broker.db_type \u003d \u0027test\u0027"},{"line_number":770,"context_line":"            broker._initialize \u003d init_stub"}],"source_content_type":"text/x-python","patch_set":1,"id":"21b6bfe6_e69f94fb","line":767,"updated":"2022-07-07 21:54:44.000000000","message":"same as \"self.db_path\"?","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"4726dde5aed4df3700b7fc8a0d88a956bc88baba","unresolved":true,"context_lines":[{"line_number":764,"context_line":"        def do_test(expected_metadata, delete_meta_whitelist\u003dNone):"},{"line_number":765,"context_line":"            if not delete_meta_whitelist:"},{"line_number":766,"context_line":"                delete_meta_whitelist \u003d []"},{"line_number":767,"context_line":"            broker \u003d DatabaseBroker(get_db_path(self.testdir))"},{"line_number":768,"context_line":"            broker.delete_meta_whitelist \u003d delete_meta_whitelist"},{"line_number":769,"context_line":"            broker.db_type \u003d \u0027test\u0027"},{"line_number":770,"context_line":"            broker._initialize \u003d init_stub"}],"source_content_type":"text/x-python","patch_set":1,"id":"b0935179_a7f85efd","line":767,"in_reply_to":"21b6bfe6_e69f94fb","updated":"2022-07-07 22:28:09.000000000","message":"I was defining all these in setUp at one stage, but it seems some tests inherit from others, and where somehow using the same file (which honestly doesn\u0027t make sense because the db name was random with uuid4). But never got round to debugging how that happened, so just called the function each time, to get it working before dinner :)\n\nThere might still be one or self.db_paths around. I wonder if we could make self.db_path a property that generates a new db_path each time.","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"7743a52480a8b4e8bb955abaea324ecda23ad1c8","unresolved":false,"context_lines":[{"line_number":764,"context_line":"        def do_test(expected_metadata, delete_meta_whitelist\u003dNone):"},{"line_number":765,"context_line":"            if not delete_meta_whitelist:"},{"line_number":766,"context_line":"                delete_meta_whitelist \u003d []"},{"line_number":767,"context_line":"            broker \u003d DatabaseBroker(get_db_path(self.testdir))"},{"line_number":768,"context_line":"            broker.delete_meta_whitelist \u003d delete_meta_whitelist"},{"line_number":769,"context_line":"            broker.db_type \u003d \u0027test\u0027"},{"line_number":770,"context_line":"            broker._initialize \u003d init_stub"}],"source_content_type":"text/x-python","patch_set":1,"id":"92744e70_a791b5ec","line":767,"in_reply_to":"b0935179_a7f85efd","updated":"2022-07-10 23:35:51.000000000","message":"Done","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"b2ea03e15c9360f1f398e5fa89f912ef5cf06c99","unresolved":true,"context_lines":[{"line_number":1602,"context_line":""},{"line_number":1603,"context_line":"class TestTombstoneReclaimer(unittest.TestCase):"},{"line_number":1604,"context_line":"    def setUp(self):"},{"line_number":1605,"context_line":"        self.testdir \u003d mkdtemp()"},{"line_number":1606,"context_line":"        self.db_path \u003d get_db_path(self.testdir)"},{"line_number":1607,"context_line":""},{"line_number":1608,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"8e8315ec_70975bd2","line":1605,"updated":"2022-07-07 21:54:44.000000000","message":"ditto","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"7743a52480a8b4e8bb955abaea324ecda23ad1c8","unresolved":false,"context_lines":[{"line_number":1602,"context_line":""},{"line_number":1603,"context_line":"class TestTombstoneReclaimer(unittest.TestCase):"},{"line_number":1604,"context_line":"    def setUp(self):"},{"line_number":1605,"context_line":"        self.testdir \u003d mkdtemp()"},{"line_number":1606,"context_line":"        self.db_path \u003d get_db_path(self.testdir)"},{"line_number":1607,"context_line":""},{"line_number":1608,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"60927c8e_60dbb280","line":1605,"in_reply_to":"8e8315ec_70975bd2","updated":"2022-07-10 23:35:51.000000000","message":"Done","commit_id":"caf3dbf0231ac2aa4d220f8981fa88663cdd0f82"}]}
