)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c81dd7fbd6ea7e907d3e8626d5f159a6443f730a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"WIP Use cp to copy local images to preserve sparseness"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I think the sendfile approach results in a sparse raw image losing its"},{"line_number":10,"context_line":"sparseness, this change will result in even non-sparse raw images"},{"line_number":11,"context_line":"being converted to sparse when copied to"},{"line_number":12,"context_line":"/var/lib/ironic/master_images."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"61d779a6_ae37e670","line":10,"updated":"2021-09-22 12:37:35.000000000","message":"Could you confirm this somehow? Or at least let me know how I can test it locally?","commit_id":"e7949cf99e5261da1163d5d92dc4001aea47da2d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d9b3434f861511505c3f592266892d5fd261348c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"WIP Use cp to copy local images to preserve sparseness"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I think the sendfile approach results in a sparse raw image losing its"},{"line_number":10,"context_line":"sparseness, this change will result in even non-sparse raw images"},{"line_number":11,"context_line":"being converted to sparse when copied to"},{"line_number":12,"context_line":"/var/lib/ironic/master_images."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"c147c7b1_6f45f68a","line":10,"in_reply_to":"61d779a6_ae37e670","updated":"2021-09-23 00:57:33.000000000","message":"I discovered this issue in a CI job which ran out of disk deploying the a sparse raw whole-disk overcloud, which at the time was 40G. The actual space taken by a file can be found with \"du -sk /path/to/image.raw\"","commit_id":"e7949cf99e5261da1163d5d92dc4001aea47da2d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c81dd7fbd6ea7e907d3e8626d5f159a6443f730a","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"WIP because no benchmarking has been done around sendfile vs cp, and"},{"line_number":15,"context_line":"the performance impact of --sparse\u003dalways on an image which doesn\u0027t"},{"line_number":16,"context_line":"benefit from it."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Also WIP because I\u0027d like a bit of discussion about the merits of this"},{"line_number":19,"context_line":"change."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"2387be4a_0e506855","line":16,"updated":"2021-09-22 12:37:35.000000000","message":"On my bifrost VM copying a 700 MiB image (non-sparse) takes 0.4 seconds of real time. It\u0027s probably not an issue.","commit_id":"e7949cf99e5261da1163d5d92dc4001aea47da2d"}],"ironic/common/image_service.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"912d769129d73be7a51ad3bd3c251ea282717707","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                    and os.access(source_image_path, os.R_OK | os.W_OK)):"},{"line_number":229,"context_line":"                image_file.close()"},{"line_number":230,"context_line":"                os.remove(dest_image_path)"},{"line_number":231,"context_line":"                os.link(source_image_path, dest_image_path)"},{"line_number":232,"context_line":"            else:"},{"line_number":233,"context_line":"                cmd \u003d (\u0027cp\u0027, \u0027--sparse\u003dalways\u0027, source_image_path,"},{"line_number":234,"context_line":"                       dest_image_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"59e04614_76090323","line":231,"updated":"2021-09-22 12:48:11.000000000","message":"On a 2nd thought, it may be fine.","commit_id":"e7949cf99e5261da1163d5d92dc4001aea47da2d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c81dd7fbd6ea7e907d3e8626d5f159a6443f730a","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                    and os.access(source_image_path, os.R_OK | os.W_OK)):"},{"line_number":229,"context_line":"                image_file.close()"},{"line_number":230,"context_line":"                os.remove(dest_image_path)"},{"line_number":231,"context_line":"                os.link(source_image_path, dest_image_path)"},{"line_number":232,"context_line":"            else:"},{"line_number":233,"context_line":"                cmd \u003d (\u0027cp\u0027, \u0027--sparse\u003dalways\u0027, source_image_path,"},{"line_number":234,"context_line":"                       dest_image_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"0c52d088_517cb5d3","line":231,"updated":"2021-09-22 12:37:35.000000000","message":"Ugh. We should stop doing this. I will patch it separately.","commit_id":"e7949cf99e5261da1163d5d92dc4001aea47da2d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c81dd7fbd6ea7e907d3e8626d5f159a6443f730a","unresolved":false,"context_lines":[{"line_number":231,"context_line":"                os.link(source_image_path, dest_image_path)"},{"line_number":232,"context_line":"            else:"},{"line_number":233,"context_line":"                cmd \u003d (\u0027cp\u0027, \u0027--sparse\u003dalways\u0027, source_image_path,"},{"line_number":234,"context_line":"                       dest_image_path)"},{"line_number":235,"context_line":"                utils.execute(*cmd, use_standard_locale\u003dTrue)"},{"line_number":236,"context_line":"        except Exception as e:"},{"line_number":237,"context_line":"            raise exception.ImageDownloadFailed(image_href\u003dimage_href,"}],"source_content_type":"text/x-python","patch_set":2,"id":"8401998e_1bd64283","line":234,"updated":"2021-09-22 12:37:35.000000000","message":"you probably need --force in case the destination exists (it probably always does)","commit_id":"e7949cf99e5261da1163d5d92dc4001aea47da2d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d9b3434f861511505c3f592266892d5fd261348c","unresolved":false,"context_lines":[{"line_number":231,"context_line":"                os.link(source_image_path, dest_image_path)"},{"line_number":232,"context_line":"            else:"},{"line_number":233,"context_line":"                cmd \u003d (\u0027cp\u0027, \u0027--sparse\u003dalways\u0027, source_image_path,"},{"line_number":234,"context_line":"                       dest_image_path)"},{"line_number":235,"context_line":"                utils.execute(*cmd, use_standard_locale\u003dTrue)"},{"line_number":236,"context_line":"        except Exception as e:"},{"line_number":237,"context_line":"            raise exception.ImageDownloadFailed(image_href\u003dimage_href,"}],"source_content_type":"text/x-python","patch_set":2,"id":"d83e2a0f_ece2fe68","line":234,"in_reply_to":"8401998e_1bd64283","updated":"2021-09-23 00:57:33.000000000","message":"Done","commit_id":"e7949cf99e5261da1163d5d92dc4001aea47da2d"}]}
