)]}'
{"swift/obj/diskfile.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"28409c343c4894ca3db6eeb7879543f7e4b5130d","unresolved":true,"context_lines":[{"line_number":3154,"context_line":"                    if ts_info and ts_info[\u0027timestamp\u0027] \u003e timestamp:"},{"line_number":3155,"context_line":"                        return"},{"line_number":3156,"context_line":"                    elif any(frag_set[\u0027timestamp\u0027] \u003e\u003d timestamp"},{"line_number":3157,"context_line":"                             for frag_set in durables):"},{"line_number":3158,"context_line":"                        return"},{"line_number":3159,"context_line":""},{"line_number":3160,"context_line":"                if err.errno not in (errno.ENOSPC, errno.EDQUOT):"}],"source_content_type":"text/x-python","patch_set":1,"id":"0835f931_610105de","line":3157,"updated":"2021-07-28 18:26:50.000000000","message":"this seems essentially reasonable to me - we have a durable fragset with the same timestamp we were trying to make durable - do we really care HOW this is accomplished enough to raise an error?","commit_id":"884790119b15a32051e80f8e4b9ec09ce8ad5d9d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"bc7dc5c8d31ea11ab6a77766467ba51f91b62a3b","unresolved":true,"context_lines":[{"line_number":3153,"context_line":"                    durables \u003d results.get(\u0027durable_frag_set\u0027, [])"},{"line_number":3154,"context_line":"                    if ts_info and ts_info[\u0027timestamp\u0027] \u003e timestamp:"},{"line_number":3155,"context_line":"                        return"},{"line_number":3156,"context_line":"                    elif any(frag_set[\u0027timestamp\u0027] \u003e\u003d timestamp"},{"line_number":3157,"context_line":"                             for frag_set in durables):"},{"line_number":3158,"context_line":"                        return"},{"line_number":3159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"e2a8a466_80598dfb","line":3156,"range":{"start_line":3156,"start_character":29,"end_line":3156,"end_character":37},"updated":"2021-07-28 21:16:15.000000000","message":"nit: I think this is mis-named, durables is a set of frags, for this should be \u0027for frag in durables\u0027","commit_id":"00a3e47578e951cdb7d335bbd745c772d4b365b1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"549d8ff71e767075f7f8395b432c8e05a71f3fe7","unresolved":false,"context_lines":[{"line_number":3153,"context_line":"                    durables \u003d results.get(\u0027durable_frag_set\u0027, [])"},{"line_number":3154,"context_line":"                    if ts_info and ts_info[\u0027timestamp\u0027] \u003e timestamp:"},{"line_number":3155,"context_line":"                        return"},{"line_number":3156,"context_line":"                    elif any(frag_set[\u0027timestamp\u0027] \u003e\u003d timestamp"},{"line_number":3157,"context_line":"                             for frag_set in durables):"},{"line_number":3158,"context_line":"                        return"},{"line_number":3159,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"816f5382_3d0ad077","line":3156,"range":{"start_line":3156,"start_character":29,"end_line":3156,"end_character":37},"in_reply_to":"e2a8a466_80598dfb","updated":"2021-07-29 16:38:59.000000000","message":"Done","commit_id":"00a3e47578e951cdb7d335bbd745c772d4b365b1"}],"test/unit/obj/test_diskfile.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"28409c343c4894ca3db6eeb7879543f7e4b5130d","unresolved":true,"context_lines":[{"line_number":4269,"context_line":""},{"line_number":4270,"context_line":"        with df.open(), open(df._data_file, \u0027rb\u0027) as fp:"},{"line_number":4271,"context_line":"            self.assertTrue(df._data_file.endswith(\u0027#d.data\u0027))"},{"line_number":4272,"context_line":"            self.assertEqual(b\u0027dataA\u0027, fp.read())"},{"line_number":4273,"context_line":""},{"line_number":4274,"context_line":"    def test_disk_file_concurrent_delete(self):"},{"line_number":4275,"context_line":"        def threadA(df, events, errors):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba40aa45_4ce34eab","line":4272,"updated":"2021-07-28 18:26:50.000000000","message":"looks solid!\n\n\tvagrant@saio:~$ nosetests swift/test/unit/obj/test_diskfile.py:TestECDiskFile.test_disk_file_concurrent_marked_durable\n\t/usr/local/lib/python2.7/dist-packages/OpenSSL/crypto.py:14: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.\n\t  from cryptography import utils, x509\n\tException in thread Thread-1:\n\tTraceback (most recent call last):\n\t  File \"/usr/lib/python2.7/threading.py\", line 801, in __bootstrap_inner\n\t    self.run()\n\t  File \"/usr/lib/python2.7/threading.py\", line 754, in run\n\t    self.__target(*self.__args, **self.__kwargs)\n\t  File \"/home/vagrant/swift/test/unit/obj/test_diskfile.py\", line 4242, in threadA\n\t    writer.commit(ts)\n\t  File \"/home/vagrant/swift/swift/obj/diskfile.py\", line 3208, in commit\n\t    timestamp)\n\t  File \"/home/vagrant/swift/test/unit/obj/test_diskfile.py\", line 997, in \u003clambda\u003e\n\t    tpool.execute \u003d lambda f, *args, **kwargs: f(*args, **kwargs)\n\t  File \"/home/vagrant/swift/swift/obj/diskfile.py\", line 3187, in _finalize_durable\n\t    raise exc\n\tDiskFileError: Problem making data file durable /mnt/tmp/tmpjTY4k9/tmp_test_obj_server_DiskFile/sda1/objects/0/bbe/609099584d4a31526e840b664cb0dbbe/1627496781.00000#2#d.data ([Errno 2] No such file or directory)\n\n\tF\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\tFAIL: test_disk_file_concurrent_marked_durable (test.unit.obj.test_diskfile.TestECDiskFile)\n\t----------------------------------------------------------------------\n\tTraceback (most recent call last):\n\t  File \"/home/vagrant/swift/test/unit/obj/test_diskfile.py\", line 4268, in test_disk_file_concurrent_marked_durable\n\t    self.assertFalse(errors)\n\tAssertionError: [DiskFileError(\u0027Problem making data file durable /mnt/tmp/tmpjTY4k9/tmp_test_obj_server_DiskFile/sda1/objects/0/bbe/609099584d4a31526e840b664cb0dbbe/1627496781.00000#2#d.data ([Errno 2] No such file or directory)\u0027,)] is not false\n\t-------------------- \u003e\u003e begin captured stdout \u003c\u003c ---------------------\n\ttest-TestECDiskFile ERROR: Problem making data file durable /mnt/tmp/tmpjTY4k9/tmp_test_obj_server_DiskFile/sda1/objects/0/bbe/609099584d4a31526e840b664cb0dbbe/1627496781.00000#2#d.data ([Errno 2] No such file or directory): \n\tTraceback (most recent call last):\n\t  File \"/home/vagrant/swift/swift/obj/diskfile.py\", line 3131, in _finalize_durable\n\t    os.rename(data_file_path, durable_data_file_path)\n\tOSError: [Errno 2] No such file or directory\n\n\t--------------------- \u003e\u003e end captured stdout \u003c\u003c ----------------------\n\n\t----------------------------------------------------------------------\n\tRan 1 test in 0.085s\n\n\tFAILED (failures\u003d1)","commit_id":"884790119b15a32051e80f8e4b9ec09ce8ad5d9d"}]}
