)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"12c4127b293399533340a25fd5256089b2d113cc","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2022-03-02 17:07:28 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds conditional that prevents going out of index when len(parent_backup_shalist) \u003c len(shalist)."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1962607"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Signed-off-by: Juan Pablo Suazo \u003cjsuazo@whitestack.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"012c5f07_a9062343","line":8,"updated":"2022-03-02 19:26:19.000000000","message":"Please provide a detailed description of the change in the following lines, breaking paragraphs where needed.[1]\n\n[1] https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"22ad6b5ff86febf691b876d8e42e849a7bccecb3"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"4c6a084efb91abf96bfd8d8cb19053e73dcf04a1","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2022-03-02 17:07:28 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds conditional that prevents going out of index when len(parent_backup_shalist) \u003c len(shalist)."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1962607"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Signed-off-by: Juan Pablo Suazo \u003cjsuazo@whitestack.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"4d402877_fd449592","line":8,"in_reply_to":"012c5f07_a9062343","updated":"2022-03-08 15:26:08.000000000","message":"Done","commit_id":"22ad6b5ff86febf691b876d8e42e849a7bccecb3"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"4a7b99be255acfad19142138c7e74d85c748cf2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"46e54afc_268c6fe2","updated":"2022-03-02 13:10:55.000000000","message":"Please fix pep8","commit_id":"503e87e79f38b37a1f6e09e8badb9b7cc89eb97e"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"944eca60763e1f021495114a13061e14ee08b67d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2320f1b0_ad12691b","updated":"2022-03-08 15:31:07.000000000","message":"I\u0027m still working on giving this change a deeper review.","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"d0fa7f62dcbcd7c4559226a4e83255933effdd28","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a442f9a1_a9dacb07","updated":"2023-03-08 16:49:36.000000000","message":"Seeing Johannes\u0027 explanation, I still think it would be beneficial to merge this proposal as a patch.\n\nIt may not be the optimal solution, but I think it is an adequate way of ensuring functionality while looking for a fix for the root cause. ","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"a2d4493a6431c145c02591e369b9555ebabb57cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ae2b84a7_a6718f00","updated":"2022-07-13 14:53:19.000000000","message":"This looks reasonable.  We have a customer hitting this problem as well.","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"2d78261982f098626f687de94d04977c331f3a32","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b09e5442_9bb585c6","updated":"2022-07-20 16:32:50.000000000","message":"Unfortunately, the person who encountered this bug is no longer with us, so I woulds have to recreate the test they made (we have no records of them :( ).\n\nNevertheless, seeing this is a problem that has not only presented to our team (as Hemna accounts) and that the fix has ran smoothly for us (fixes the bug and no other bugs have stemmed from it), what are your reservations about including this fix ?","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"4853453867f208286c72f4e72b8ddf53b444ebd8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e599bd83_81878197","updated":"2022-03-23 14:49:00.000000000","message":"recheck","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"2c1c7ca12907e1c1a385a61c2a97e3bff85484c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2c6ead45_19a790c5","in_reply_to":"2320f1b0_ad12691b","updated":"2022-03-15 13:18:28.000000000","message":"Any news ?","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c0a926b772bae6eebe06a2c08a57d6ff297a725d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"973be526_f9113721","in_reply_to":"2c6ead45_19a790c5","updated":"2022-03-16 16:16:54.000000000","message":"I still don\u0027t see how\n    shaindex \u003e\u003d len(parent_backup_shalist)\n\nwould happen exactly.  This change seems like it might be patching over a bug that needs to be fixed elsewhere.  Or maybe some explanation of what is going on is missing?","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"cdff638c3d81d28144f56ae69cd5f0a54ff006d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"984c538b_43fc0e78","in_reply_to":"973be526_f9113721","updated":"2022-03-18 15:34:21.000000000","message":"I will meet with the team tht found the bug and get back to you with a more concrete explanation.","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"527ccf11a3350c43ebf01f57b981526acacb6bbf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5df3949a_cae403d0","in_reply_to":"984c538b_43fc0e78","updated":"2022-07-13 13:57:38.000000000","message":"My questions would be: What\u0027s the intention of the original code comparing to parent shas? The fix implies that there might be more chunks now then there were in the parent backup. Is there a problem with reading \"sparse\" files and thus when a backup grows in comparison to previous backups?","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"e21ea25f4b9ef6c9c91c9e1798f0e5b52c8f4ef5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c0078d43_dc13aa78","in_reply_to":"b09e5442_9bb585c6","updated":"2022-07-21 07:43:31.000000000","message":"We could by now find out how this happens in our environment (with the vmware driver): Reading the disk from VMware returns a streamOptimized version which compresses away all empty blocks. Therefore, the chunkeddriver doesn\u0027t walk the whole disk and thus the first backup doesn\u0027t include all chunks of the disk - just the used ones. Therefore, as soon as the user writes more data into the disk, the parent backup contains less chunks than the new increment.\n\nThe main problem here is, that the incremental backup is not optimal with this fix, as the parent could contain chunks [A, B] and the increment could contain the chunks [A, C, B] as one could write to different parts of the disk. The driver would then compare A to A, C to B, B to nothing and thus not recognize that it would really only have to save C as new chunk. Instead, it would save C and B again.\n\nTherefore, I think the real solution would be to extrude/explode/unpack the source file into raw format so all blocks can be read.","commit_id":"92d69ee6b0fd905d0d6d8d8424c6d5c64532bdbd"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"31df046d5e7ab0e56471d6f1d6645d0e68fbab67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b24b846e_14d09882","updated":"2024-09-27 12:26:34.000000000","message":"Have any of the reviewers had time to review this case ?","commit_id":"46d727577692f193eca89ee95b122cc3f06b2684"}],"cinder/backup/chunkeddriver.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b3689ca5fe1aac4b68635349728609fa6a680fc7","unresolved":true,"context_lines":[{"line_number":602,"context_line":"                # Find the extent that needs to be backed up."},{"line_number":603,"context_line":"                extent_off \u003d -1"},{"line_number":604,"context_line":"                for idx, sha in enumerate(shalist):"},{"line_number":605,"context_line":"                    if (shaindex \u003e\u003d len(parent_backup_shalist) or"},{"line_number":606,"context_line":"                        sha !\u003d parent_backup_shalist[shaindex]):"},{"line_number":607,"context_line":"                        if extent_off \u003d\u003d -1:"},{"line_number":608,"context_line":"                            # Start of new extent."}],"source_content_type":"text/x-python","patch_set":3,"id":"6e4c0618_c5d69378","line":605,"range":{"start_line":605,"start_character":24,"end_line":605,"end_character":61},"updated":"2022-03-02 15:16:44.000000000","message":"Under what circumstance would this happen?\n\nIt\u0027s not clear to me why we need to add this check.","commit_id":"952d803f16eb0b39eb7878b0ce9a9d34278a19b1"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"4c6a084efb91abf96bfd8d8cb19053e73dcf04a1","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                # Find the extent that needs to be backed up."},{"line_number":603,"context_line":"                extent_off \u003d -1"},{"line_number":604,"context_line":"                for idx, sha in enumerate(shalist):"},{"line_number":605,"context_line":"                    if (shaindex \u003e\u003d len(parent_backup_shalist) or"},{"line_number":606,"context_line":"                        sha !\u003d parent_backup_shalist[shaindex]):"},{"line_number":607,"context_line":"                        if extent_off \u003d\u003d -1:"},{"line_number":608,"context_line":"                            # Start of new extent."}],"source_content_type":"text/x-python","patch_set":3,"id":"88a35722_24f1f98a","line":605,"range":{"start_line":605,"start_character":24,"end_line":605,"end_character":61},"in_reply_to":"36326cfe_7f254720","updated":"2022-03-08 15:26:08.000000000","message":"Done","commit_id":"952d803f16eb0b39eb7878b0ce9a9d34278a19b1"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"50a6d9ff400a7a315f440ba9b186bf506e9e4794","unresolved":true,"context_lines":[{"line_number":602,"context_line":"                # Find the extent that needs to be backed up."},{"line_number":603,"context_line":"                extent_off \u003d -1"},{"line_number":604,"context_line":"                for idx, sha in enumerate(shalist):"},{"line_number":605,"context_line":"                    if (shaindex \u003e\u003d len(parent_backup_shalist) or"},{"line_number":606,"context_line":"                        sha !\u003d parent_backup_shalist[shaindex]):"},{"line_number":607,"context_line":"                        if extent_off \u003d\u003d -1:"},{"line_number":608,"context_line":"                            # Start of new extent."}],"source_content_type":"text/x-python","patch_set":3,"id":"de8342c8_13fde675","line":605,"range":{"start_line":605,"start_character":24,"end_line":605,"end_character":61},"in_reply_to":"6e4c0618_c5d69378","updated":"2022-03-02 17:38:54.000000000","message":"We encountered the IndexError discribed in the bug report \u003chttps://bugs.launchpad.net/cinder/+bug/1962607\u003e consistently while running tests for incremental backups.\n\nAdding this changes handles the error and allows the tests to run smoothly.","commit_id":"952d803f16eb0b39eb7878b0ce9a9d34278a19b1"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2cd817c826036607a0a007cb9c426e915ff952f6","unresolved":true,"context_lines":[{"line_number":602,"context_line":"                # Find the extent that needs to be backed up."},{"line_number":603,"context_line":"                extent_off \u003d -1"},{"line_number":604,"context_line":"                for idx, sha in enumerate(shalist):"},{"line_number":605,"context_line":"                    if (shaindex \u003e\u003d len(parent_backup_shalist) or"},{"line_number":606,"context_line":"                        sha !\u003d parent_backup_shalist[shaindex]):"},{"line_number":607,"context_line":"                        if extent_off \u003d\u003d -1:"},{"line_number":608,"context_line":"                            # Start of new extent."}],"source_content_type":"text/x-python","patch_set":3,"id":"ebc8d047_2b21b2d7","line":605,"range":{"start_line":605,"start_character":24,"end_line":605,"end_character":61},"in_reply_to":"de8342c8_13fde675","updated":"2022-03-02 18:46:30.000000000","message":"Understood, but it\u0027s not clear why this is the correct way to fix this.  I\u0027d like to know how this case can actually happen.","commit_id":"952d803f16eb0b39eb7878b0ce9a9d34278a19b1"},{"author":{"_account_id":34579,"name":"Juan Pablo Suazo","email":"jsuazo@whitestack.com","username":"jsuazo"},"change_message_id":"19250833cdddbfd80ff6671fdb497b13b07cf28a","unresolved":true,"context_lines":[{"line_number":602,"context_line":"                # Find the extent that needs to be backed up."},{"line_number":603,"context_line":"                extent_off \u003d -1"},{"line_number":604,"context_line":"                for idx, sha in enumerate(shalist):"},{"line_number":605,"context_line":"                    if (shaindex \u003e\u003d len(parent_backup_shalist) or"},{"line_number":606,"context_line":"                        sha !\u003d parent_backup_shalist[shaindex]):"},{"line_number":607,"context_line":"                        if extent_off \u003d\u003d -1:"},{"line_number":608,"context_line":"                            # Start of new extent."}],"source_content_type":"text/x-python","patch_set":3,"id":"36326cfe_7f254720","line":605,"range":{"start_line":605,"start_character":24,"end_line":605,"end_character":61},"in_reply_to":"ebc8d047_2b21b2d7","updated":"2022-03-03 14:15:47.000000000","message":"Our test for incremental backaups were ran with the following procedure:\n\n1. An instance is created with a cinder volume of 25GB.\n\n2. A full backup is created.\n\n3. A file (1GB) is created in the instance. Command: dd if\u003d/dev/zero of\u003d/home/ubuntu/test_vol_day1.img bs\u003d20M count\u003d50\n\n4. An incremental backup is created. Command: openstack volume backup create --incremental --force --name backup_full_01_inc_day01 vol_boot20. Here, the IndexError is raised. If we run the command again, it works.\n\n5. steps 3 and4 are repeated twice, encountering no problems.\n\n6. an Ubuntu ISO (2GB) is downloaded into the instance.\n\n7. An incremental backup is created. Command: openstack volume backup create --incremental --force --name backup_full_01_inc_day04 vol_boot20. Same IndexError is encountered. Re-running the command does not work as before.\n\n8. Incremental volumes are re-built in new instances validating the existance of the files created in each step.\n\nwhitestack@whitestack-rep:~$ openstack volume backup list\n+--------------------------+-------------+-----------+------+\n Name                     | Description | Status    | Size |\n+--------------------------+-------------+-----------+------+\n| backup_full_01_inc_day04 | None        | error     |   25 |\n| backup_full_01_inc_day03 | None        | available |   25 |\n| backup_full_01_inc_day02 | None        | available |   25 |\n| backup_full_01_inc_day01 | None        | available |   25 |\n| backup_full_01           |             | available |   25 |\n+--------------------------+-------------+-----------+------+\n\n  ERROR oslo_messaging.rpc.server [req-604d27e-daf-4cd-a175-4d21e5696afe 2179e56ae2cd4d5e9231acd26bbb44 636ebee3254e34b307a152506110ff - default default] Exception during message handling: IndexError: list index out of range\n  ERROR oslo_messaging.rpc.server Traceback (most recent call last):\n  ERROR oslo_messaging.rpc.server   File \"/var/lib/kolla/venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/server.py\", line 160, in _process_incoming\n  ERROR oslo_messaging.rpc.server     res \u003d self.dispatcher.dispatch(message)\n  ERROR oslo_messaging.rpc.server   File \"/var/lib/kolla/venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 213, in dispatch\n  ERROR oslo_messaging.rpc.server     return self._do_dispatch(endpoint, method, ctxt, args)\n  ERROR oslo_messaging.rpc.server   File \"/var/lib/kolla/venv/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 183, in _do_dispatch\n  ERROR oslo_messaging.rpc.server     result \u003d func(ctxt, **new_args)\n  ERROR oslo_messaging.rpc.server   File \"/var/lib/kolla/venv/local/lib/python2.7/site-packages/cinder/backup/manager.py\", line 366, in create_backup\n  ERROR oslo_messaging.rpc.server     self._update_backup_error(backup, six.text_type(err))\n  ERROR oslo_messaging.rpc.server   File \"/var/lib/kolla/venv/local/lib/python2.7/site-packages/oslo_utils/excutils.py\", line 220, in __exit__\n  ERROR oslo_messaging.rpc.server     self.force_reraise()\n  ERROR oslo_messaging.rpc.server   File \"/var/lib/kolla/venv/local/lib/python2.7/site-packages/oslo_utils/excutils.py\", line 196, in force_reraise\n  ERROR oslo_messaging.rpc.server     six.reraise(self.type_, self.value, self.tb)\n  ERROR oslo_messaging.rpc.server   File \"/var/lib/kolla/venv/local/lib/python2.7/site-packages/cinder/backup/manager.py\", line 355, in create_backup\n  ERROR oslo_messaging.rpc.server     updates \u003d self._run_backup(context, backup, volume)\n  ERROR oslo_messaging.rpc.server   File \"/var/lib/kolla/venv/local/lib/python2.7/site-packages/cinder/backup/manager.py\", line 429, in _run_backup\n  ERROR oslo_messaging.rpc.server     backup, tpool.Proxy(device_file))\n  ERROR oslo_messaging.rpc.server   File \"/var/lib/kolla/venv/local/lib/python2.7/site-packages/cinder/backup/chunkeddriver.py\", line 563, in backup\n  ERROR oslo_messaging.rpc.server     if sha !\u003d parent_backup_shalist[shaindex]:\n  ERROR oslo_messaging.rpc.server IndexError: list index out of range\n  ERROR oslo_messaging.rpc.server \n\n\nProposed fix resolved this issues.","commit_id":"952d803f16eb0b39eb7878b0ce9a9d34278a19b1"}]}
