)]}'
{"nova/tests/functional/hooks/post_test_hook.sh":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"000a47dd6959b242f375766f989ca18fbaee71eb","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# This script is executed inside post_test_hook function in devstack gate."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"function archive_deleted_rows {"},{"line_number":18,"context_line":"    nova-manage db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":19,"context_line":"    nova-manage db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":20,"context_line":"    nova-manage db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":21,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":1,"id":"5a8bc5a2_05284885","line":18,"updated":"2016-09-26 15:22:28.000000000","message":"You might want a comment in here explaining why you\u0027re running the same thing multiple times (I think because you expect it to fail on referential constraints on the first pass but then those might be gone in the 2nd or 3rd pass).\n\nOnce this is fatal though I think we\u0027d just have a single run with some big ass number, like 1000000 and then just fail if it fails.\n\nBTW, we should fix that max_rows dumbness before this is fatal, i.e. add support for max_rows\u003d-1 or all or something like that meaning archive everything.","commit_id":"26e55ba0c0d579a605625915001db353072c2ee8"}],"tools/hooks/post_test_hook.sh":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"30f30a4901db8950c5a84d62804847610782c0c6","unresolved":false,"context_lines":[{"line_number":3,"context_line":"function archive_deleted_rows {"},{"line_number":4,"context_line":"    # NOTE(danms): Run this a few times to make sure that we end"},{"line_number":5,"context_line":"    # up with nothing more to archive"},{"line_number":6,"context_line":"    nova-manage db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":7,"context_line":"    nova-manage db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":8,"context_line":"    nova-manage db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":9,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":5,"id":"5a8bc5a2_fdcd67b8","line":6,"updated":"2016-09-27 17:35:00.000000000","message":"You need the full path to nova-manage here, you can probably just copy how it\u0027s done from https://review.openstack.org/#/c/376531/2/tools/post_test_hook.sh which was copied from the live-migration hook","commit_id":"a31eda41e13cd28bd6a0a1e3b781eefd8d9065da"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"200cc5461c2fe2b0aced34304f1696ef5d1e2890","unresolved":false,"context_lines":[{"line_number":5,"context_line":"function archive_deleted_rows {"},{"line_number":6,"context_line":"    # NOTE(danms): Run this a few times to make sure that we end"},{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":9,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":10,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":6,"id":"5a8bc5a2_06347b48","line":8,"range":{"start_line":8,"start_character":5,"end_line":8,"end_character":11},"updated":"2016-09-27 20:36:46.000000000","message":"We might want to skip if this path doesn\u0027t exist, because apparently it doesn\u0027t in some jobs:\n\nhttp://logs.openstack.org/13/377113/4/check/gate-dg-hooks-dsvm/f82eeb3/logs/devstack-gate-post_test_hook.txt.gz\n\nI\u0027m not sure if this would actually cause an issue in a project-config integrated dsvm job though.","commit_id":"1646ed970f34d8b391b8e85cd168c8142c6fd63c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"78659e497ea9426c512e1c21388e53dbcff31f2f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"function archive_deleted_rows {"},{"line_number":6,"context_line":"    # NOTE(danms): Run this a few times to make sure that we end"},{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":9,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":10,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":6,"id":"5a8bc5a2_ebcaf019","line":8,"range":{"start_line":8,"start_character":57,"end_line":8,"end_character":61},"updated":"2016-09-28 00:14:09.000000000","message":"We probably want a higher max_rows value:\n\nhttp://logs.openstack.org/13/377113/5/check/gate-tempest-dsvm-neutron-full-ubuntu-xenial/3f0e2e3/logs/devstack-gate-post_test_hook.txt.gz\n\nBecause this doesn\u0027t cleanup even a tempest dsvm run.\n\nAlso goes back to adding support for something like max_rows\u003d-1 or \u003dall or something to tell us, just archive until you\u0027re done, period, and anything left over is a failure.","commit_id":"1646ed970f34d8b391b8e85cd168c8142c6fd63c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"824d3c578065910f63f427a941c78d131aacf46e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"function archive_deleted_rows {"},{"line_number":6,"context_line":"    # NOTE(danms): Run this a few times to make sure that we end"},{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":9,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":10,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":6,"id":"3a98d1f4_3172927d","line":8,"range":{"start_line":8,"start_character":57,"end_line":8,"end_character":61},"in_reply_to":"3a98d1f4_51371ee3","updated":"2016-09-28 14:13:59.000000000","message":"There is definitely no such bug anymore. I\u0027ve run this a bunch of times on derek\u0027s dataset and drained it to empty with a large number. I also left that running in a loop when I went to lunch, so it\u0027s definitely fine :)\n\nLarge numbers take longer to report status, which is less friendly, and they do the whole thing in one transaction which means no progress is made if interrupted.\n\nFor online migrations, I added an integrated \"til it\u0027s done\" loop. I should do the same for these so it has a similar look and feel.\n\nHowever, what is here is fine for the moment, IMHO.","commit_id":"1646ed970f34d8b391b8e85cd168c8142c6fd63c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"01da0184bafbc5a54d7b63d7cfbe34bc03acb306","unresolved":false,"context_lines":[{"line_number":5,"context_line":"function archive_deleted_rows {"},{"line_number":6,"context_line":"    # NOTE(danms): Run this a few times to make sure that we end"},{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":9,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":10,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":6,"id":"5a8bc5a2_465da347","line":8,"range":{"start_line":8,"start_character":5,"end_line":8,"end_character":11},"in_reply_to":"5a8bc5a2_06347b48","updated":"2016-09-27 20:44:06.000000000","message":"Any job in which this doesn\u0027t exist shouldn\u0027t be running the Nova post_test_hook I think. I\u0027m not against extra guards, but I don\u0027t think we\u0027ll hit it in practice.","commit_id":"1646ed970f34d8b391b8e85cd168c8142c6fd63c"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"52823bb43fd04ee261623d08d529438bbc506715","unresolved":false,"context_lines":[{"line_number":5,"context_line":"function archive_deleted_rows {"},{"line_number":6,"context_line":"    # NOTE(danms): Run this a few times to make sure that we end"},{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":9,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":10,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":6,"id":"5a8bc5a2_2dedb48e","line":8,"range":{"start_line":8,"start_character":5,"end_line":8,"end_character":11},"in_reply_to":"5a8bc5a2_06347b48","updated":"2016-09-28 11:52:09.000000000","message":"It shouldn\u0027t be an issue there.","commit_id":"1646ed970f34d8b391b8e85cd168c8142c6fd63c"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"52823bb43fd04ee261623d08d529438bbc506715","unresolved":false,"context_lines":[{"line_number":5,"context_line":"function archive_deleted_rows {"},{"line_number":6,"context_line":"    # NOTE(danms): Run this a few times to make sure that we end"},{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":9,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":10,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":6,"id":"5a8bc5a2_832a192b","line":8,"range":{"start_line":8,"start_character":57,"end_line":8,"end_character":61},"in_reply_to":"5a8bc5a2_11510e0f","updated":"2016-09-28 11:52:09.000000000","message":"I remember people having bugs when max_rows \u003e number of rows left, so I do think we should try to just drain this, even if it means running it a lot of times.","commit_id":"1646ed970f34d8b391b8e85cd168c8142c6fd63c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c2061da67dffed9690aaac3548121f657f9f3ded","unresolved":false,"context_lines":[{"line_number":5,"context_line":"function archive_deleted_rows {"},{"line_number":6,"context_line":"    # NOTE(danms): Run this a few times to make sure that we end"},{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":9,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":10,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":6,"id":"3a98d1f4_51371ee3","line":8,"range":{"start_line":8,"start_character":57,"end_line":8,"end_character":61},"in_reply_to":"5a8bc5a2_832a192b","updated":"2016-09-28 14:10:25.000000000","message":"If there is a bug when max_rows \u003e number of rows left, we should fix that bug.","commit_id":"1646ed970f34d8b391b8e85cd168c8142c6fd63c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"afc9da8258e885c2f5bcaae3eb33058cdfe85636","unresolved":false,"context_lines":[{"line_number":5,"context_line":"function archive_deleted_rows {"},{"line_number":6,"context_line":"    # NOTE(danms): Run this a few times to make sure that we end"},{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":9,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":10,"context_line":"    $MANAGE db archive_deleted_rows --verbose --max_rows 1000"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":6,"id":"5a8bc5a2_11510e0f","line":8,"range":{"start_line":8,"start_character":57,"end_line":8,"end_character":61},"in_reply_to":"5a8bc5a2_ebcaf019","updated":"2016-09-28 02:48:58.000000000","message":"I thought adding support would be as simple as adding \"\u003dNone\" to the max_rows argument in nova/cmd/manage.py but found there are a couple of lines of code in db.archive_deleted_rows that don\u0027t handle max_rows\u003dNone, so it blows up.\n\nThe underlying function _archive_deleted_rows_for_table handles max_rows\u003dNone already so it should be an easy thing to fix.\n\nUpdate: Since I got that deep into finding what was needed to archive all rows, I went ahead and pushed a patch here: https://review.openstack.org/#/c/378177/","commit_id":"1646ed970f34d8b391b8e85cd168c8142c6fd63c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cfc240616ba786596e7209b0b6c1557f31bc89ce","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    for i in `seq 30`; do"},{"line_number":9,"context_line":"        out\u003d$($MANAGE db archive_deleted_rows --verbose --max_rows 1000)"},{"line_number":10,"context_line":"        echo $?"},{"line_number":11,"context_line":"        if [[ $out \u003d~ \"Nothing was archived\" ]]; then"},{"line_number":12,"context_line":"            break;"},{"line_number":13,"context_line":"        fi"}],"source_content_type":"text/x-sh","patch_set":9,"id":"3a98d1f4_f17bca79","line":10,"range":{"start_line":10,"start_character":8,"end_line":10,"end_character":15},"updated":"2016-09-28 14:12:14.000000000","message":"This will always be 0, but I have wondered while looking at this if we should return something else in case we didn\u0027t archive anything.","commit_id":"6f988105ac86309c5308e2da88428ed6bff8b180"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"24a2296dd95fad87514855bd8bdee3adac7dfc97","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    # up with nothing more to archive"},{"line_number":8,"context_line":"    for i in `seq 30`; do"},{"line_number":9,"context_line":"        out\u003d$($MANAGE db archive_deleted_rows --verbose --max_rows 1000)"},{"line_number":10,"context_line":"        echo $?"},{"line_number":11,"context_line":"        if [[ $out \u003d~ \"Nothing was archived\" ]]; then"},{"line_number":12,"context_line":"            break;"},{"line_number":13,"context_line":"        fi"}],"source_content_type":"text/x-sh","patch_set":9,"id":"3a98d1f4_9117e6ec","line":10,"range":{"start_line":10,"start_character":8,"end_line":10,"end_character":15},"in_reply_to":"3a98d1f4_f17bca79","updated":"2016-09-28 14:15:00.000000000","message":"Yeah, I noticed that while trying to script this for my own benefit and had planned to fix that as well.","commit_id":"6f988105ac86309c5308e2da88428ed6bff8b180"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5e8f2db68f3e4d107e3eb033142f4dca4e26f761","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    for i in `seq 30`; do"},{"line_number":9,"context_line":"        out\u003d$($MANAGE db archive_deleted_rows --verbose --max_rows 1000)"},{"line_number":10,"context_line":"        echo $?"},{"line_number":11,"context_line":"        if [[ $out \u003d~ \"Nothing was archived\" ]]; then"},{"line_number":12,"context_line":"            break;"},{"line_number":13,"context_line":"        fi"},{"line_number":14,"context_line":"    done"}],"source_content_type":"text/x-sh","patch_set":9,"id":"3a98d1f4_e32f81f4","line":11,"updated":"2016-09-28 14:31:13.000000000","message":"Looks like this is working:\n\nhttp://logs.openstack.org/13/377113/8/check/gate-grenade-dsvm-neutron-ubuntu-xenial/1bf52c8/logs/devstack-gate-post_test_hook.txt.gz\n\nYou can see 34 instances are archived.\n\nThe $out duplicate tracing here is a bit ugly, maybe should send that to 2\u003e/dev/null.","commit_id":"6f988105ac86309c5308e2da88428ed6bff8b180"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"07730687bc9edc0ed1615eb328fffebdead05eab","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    for i in `seq 30`; do"},{"line_number":9,"context_line":"        out\u003d$($MANAGE db archive_deleted_rows --verbose --max_rows 1000)"},{"line_number":10,"context_line":"        echo $?"},{"line_number":11,"context_line":"        if [[ $out \u003d~ \"Nothing was archived\" ]]; then"},{"line_number":12,"context_line":"            break;"},{"line_number":13,"context_line":"        fi"},{"line_number":14,"context_line":"    done"}],"source_content_type":"text/x-sh","patch_set":9,"id":"3a98d1f4_83779d01","line":11,"in_reply_to":"3a98d1f4_e32f81f4","updated":"2016-09-28 14:32:26.000000000","message":"Nevermind I guess we can\u0027t.","commit_id":"6f988105ac86309c5308e2da88428ed6bff8b180"}]}
