)]}'
{"doc/source/upgrade.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"30bf6d6a7cc818d03e187a08f00aa04649a5f54f","unresolved":false,"context_lines":[{"line_number":102,"context_line":"     to use, and it can decide if it is safe to do any online data migrations."},{"line_number":103,"context_line":"     Note, if you used a static value for the upgrade_level, such as"},{"line_number":104,"context_line":"     ``[upgrade_levels]compute\u003dmitaka``, you must update nova.conf to remove"},{"line_number":105,"context_line":"     that configuration value before you send the SIG_HUP signal."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"   * Now all the services are upgraded, the system is able to use the latest"},{"line_number":108,"context_line":"     version of the RPC protocol and so get access to all the new features in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_75ab1c8a","side":"PARENT","line":105,"range":{"start_line":105,"start_character":50,"end_line":105,"end_character":57},"updated":"2017-02-03 17:49:41.000000000","message":"Whoops, yeah, we should fix that.","commit_id":"c90acdbc55b743666baa9ef82c56a8e85475f739"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"30bf6d6a7cc818d03e187a08f00aa04649a5f54f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"     including all the python dependencies."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"   * Using the newly installed nova code, run the DB sync."},{"line_number":72,"context_line":"     (``nova-manage db sync``; ``nova-manage api_db sync``). These schema"},{"line_number":73,"context_line":"     change operations should have minimal or no effect on performance, and"},{"line_number":74,"context_line":"     should not cause any operations to fail."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_f56c6c9e","line":72,"updated":"2017-02-03 17:49:41.000000000","message":"We probably should include the cells related things in here now? You need to create cell_0 before doing db sync.\n\nAlthough I guess that was more of a per release thing which we didn\u0027t want in here...","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":69,"context_line":"     including all the python dependencies."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"   * Using the newly installed nova code, run the DB sync."},{"line_number":72,"context_line":"     (``nova-manage db sync``; ``nova-manage api_db sync``). These schema"},{"line_number":73,"context_line":"     change operations should have minimal or no effect on performance, and"},{"line_number":74,"context_line":"     should not cause any operations to fail."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_47ee3aed","line":72,"in_reply_to":"1a430d35_d5a05093","updated":"2017-02-06 14:23:20.000000000","message":"You could add a note to remind people to read the release notes first before upgrading to a specific release. That\u0027s already on L40 though.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8bc109a31c3bb99652840f3e88c56372a62b5b91","unresolved":false,"context_lines":[{"line_number":69,"context_line":"     including all the python dependencies."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"   * Using the newly installed nova code, run the DB sync."},{"line_number":72,"context_line":"     (``nova-manage db sync``; ``nova-manage api_db sync``). These schema"},{"line_number":73,"context_line":"     change operations should have minimal or no effect on performance, and"},{"line_number":74,"context_line":"     should not cause any operations to fail."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_d5a05093","line":72,"in_reply_to":"1a430d35_f56c6c9e","updated":"2017-02-03 17:51:11.000000000","message":"Yeah, I wanted this to be a little more timeless. As in, \"this is the grand process you follow each time\".","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"91c9c4f9ff86bdcbefa5c3db472b450b065383f0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   * For maximum safety (no failed API operations), gracefully shutdown all"},{"line_number":83,"context_line":"     the services (i.e. SIG_TERM) except nova-compute."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"   * Start all services, with ``[upgrade_levels]compute\u003dauto`` in nova.conf."},{"line_number":86,"context_line":"     It is safest to start nova-conductor first and nova-api last. Note that"},{"line_number":87,"context_line":"     you may use a static alias name instead of ``auto``, such as"},{"line_number":88,"context_line":"     ``[upgrade_levels]compute\u003dnewton``. Also note that this step is only"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_4ad90821","line":85,"range":{"start_line":85,"start_character":5,"end_line":85,"end_character":23},"updated":"2017-02-04 11:48:08.000000000","message":"nit, maybe change to \u0027Start all services with the new version of the code\u0027","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"#. After maintenance window:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"   * Once all services are running the new code, double check in the DB that"},{"line_number":102,"context_line":"     there are no old orphaned service records."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"   * Now that all services are upgraded, we need to send the SIG_HUP signal, so all"},{"line_number":105,"context_line":"     the services clear any cached service version data. When a new service"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_871ca278","line":102,"range":{"start_line":101,"start_character":49,"end_line":102,"end_character":47},"updated":"2017-02-06 14:23:20.000000000","message":"I just noticed this for the first time. This is pretty crappy, and not something we do in grenade. We can\u0027t really put it into nova-status as-is since that\u0027s a pre-upgrade check and this thing here is a post-upgrade check. I guess at some point we could create like a \u0027nova-status upgrade verify\u0027 command that checks stuff like this.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7e64900c641740b694a714cfeb6afe979f4dc9d7","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"#. After maintenance window:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"   * Once all services are running the new code, double check in the DB that"},{"line_number":102,"context_line":"     there are no old orphaned service records."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"   * Now that all services are upgraded, we need to send the SIG_HUP signal, so all"},{"line_number":105,"context_line":"     the services clear any cached service version data. When a new service"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_8d1681a5","line":102,"range":{"start_line":101,"start_character":49,"end_line":102,"end_character":47},"in_reply_to":"1a430d35_871ca278","updated":"2017-02-06 14:50:07.000000000","message":"I think all this means is run\n\n nova service-list\n\nand look for any down nodes that you recognize have been replaced and aren\u0027t coming back. I don\u0027t know that it\u0027s a thing we could put into nova-status because I don\u0027t think we know if records are ever coming back or not. We could look at the latest updated-at and highlight records more than a week old or something, but that\u0027s still just a guess.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":102,"context_line":"     there are no old orphaned service records."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"   * Now that all services are upgraded, we need to send the SIG_HUP signal, so all"},{"line_number":105,"context_line":"     the services clear any cached service version data. When a new service"},{"line_number":106,"context_line":"     starts, it automatically detects which version of the compute RPC protocol"},{"line_number":107,"context_line":"     to use, and it can decide if it is safe to do any online data migrations."},{"line_number":108,"context_line":"     Note, if you used a static value for the upgrade_level, such as"},{"line_number":109,"context_line":"     ``[upgrade_levels]compute\u003dmitaka``, you must update nova.conf to remove"},{"line_number":110,"context_line":"     that configuration value and do a full service restart."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_ca0dcf38","line":107,"range":{"start_line":105,"start_character":57,"end_line":107,"end_character":78},"updated":"2017-02-06 14:23:20.000000000","message":"Unless of course you\u0027re running nova-api under Apache...\n\nMaybe we take this opportunity to note that?","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79251dbf1964e89edf6a54995741f6b22a9b050b","unresolved":false,"context_lines":[{"line_number":102,"context_line":"     there are no old orphaned service records."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"   * Now that all services are upgraded, we need to send the SIG_HUP signal, so all"},{"line_number":105,"context_line":"     the services clear any cached service version data. When a new service"},{"line_number":106,"context_line":"     starts, it automatically detects which version of the compute RPC protocol"},{"line_number":107,"context_line":"     to use, and it can decide if it is safe to do any online data migrations."},{"line_number":108,"context_line":"     Note, if you used a static value for the upgrade_level, such as"},{"line_number":109,"context_line":"     ``[upgrade_levels]compute\u003dmitaka``, you must update nova.conf to remove"},{"line_number":110,"context_line":"     that configuration value and do a full service restart."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_8d992122","line":107,"range":{"start_line":105,"start_character":57,"end_line":107,"end_character":78},"in_reply_to":"1a430d35_8d7da1e9","updated":"2017-02-06 14:52:29.000000000","message":"Fair enough.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7e64900c641740b694a714cfeb6afe979f4dc9d7","unresolved":false,"context_lines":[{"line_number":102,"context_line":"     there are no old orphaned service records."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"   * Now that all services are upgraded, we need to send the SIG_HUP signal, so all"},{"line_number":105,"context_line":"     the services clear any cached service version data. When a new service"},{"line_number":106,"context_line":"     starts, it automatically detects which version of the compute RPC protocol"},{"line_number":107,"context_line":"     to use, and it can decide if it is safe to do any online data migrations."},{"line_number":108,"context_line":"     Note, if you used a static value for the upgrade_level, such as"},{"line_number":109,"context_line":"     ``[upgrade_levels]compute\u003dmitaka``, you must update nova.conf to remove"},{"line_number":110,"context_line":"     that configuration value and do a full service restart."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_8d7da1e9","line":107,"range":{"start_line":105,"start_character":57,"end_line":107,"end_character":78},"in_reply_to":"1a430d35_ca0dcf38","updated":"2017-02-06 14:50:07.000000000","message":"That\u0027s an unsupported way to run nova though. Just look at the nasty comment at the top of the wsgi file :)","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":106,"context_line":"     starts, it automatically detects which version of the compute RPC protocol"},{"line_number":107,"context_line":"     to use, and it can decide if it is safe to do any online data migrations."},{"line_number":108,"context_line":"     Note, if you used a static value for the upgrade_level, such as"},{"line_number":109,"context_line":"     ``[upgrade_levels]compute\u003dmitaka``, you must update nova.conf to remove"},{"line_number":110,"context_line":"     that configuration value and do a full service restart."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"   * Now all the services are upgraded and signaled, the system is able to use"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_4a31dfeb","line":109,"range":{"start_line":109,"start_character":31,"end_line":109,"end_character":37},"updated":"2017-02-06 14:23:20.000000000","message":"nit: you changed to newton above, so probably good to be consistent here.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":110,"context_line":"     that configuration value and do a full service restart."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"   * Now all the services are upgraded and signaled, the system is able to use"},{"line_number":113,"context_line":"     the latest version of the RPC protocol and so get access to all the new"},{"line_number":114,"context_line":"     features in the new release."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"   * Once all the services are running the latest version of the code, and all"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_eab0cb45","line":113,"range":{"start_line":113,"start_character":48,"end_line":113,"end_character":50},"updated":"2017-02-06 14:23:20.000000000","message":"nit: this throws off the flow of this sentence to me, but doesn\u0027t need to be addressed here.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":126,"context_line":"     Complete all online data migrations using:"},{"line_number":127,"context_line":"     ``nova-manage db online_data_migrations --limit \u003cnumber\u003e``. Note that you"},{"line_number":128,"context_line":"     can use the limit argument to reduce the load this operation will place"},{"line_number":129,"context_line":"     on the database, which allows you to run a small chunk of them until all of"},{"line_number":130,"context_line":"     the work is done. Each time it is run, it will show summary of completed and"},{"line_number":131,"context_line":"     remaining records. You run this command until you see completed and remaining"},{"line_number":132,"context_line":"     records as zeros. The chunk size you should use depend on your infrastructure"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_aa108302","line":129,"range":{"start_line":129,"start_character":63,"end_line":129,"end_character":67},"updated":"2017-02-06 14:23:20.000000000","message":"nit: rather than \u0027them\u0027 I\u0027d be clear and say \u0027migrations\u0027.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":129,"context_line":"     on the database, which allows you to run a small chunk of them until all of"},{"line_number":130,"context_line":"     the work is done. Each time it is run, it will show summary of completed and"},{"line_number":131,"context_line":"     remaining records. You run this command until you see completed and remaining"},{"line_number":132,"context_line":"     records as zeros. The chunk size you should use depend on your infrastructure"},{"line_number":133,"context_line":"     and how much additional load you can impose on the database. To reduce load,"},{"line_number":134,"context_line":"     perform smaller chunks with delays between chunks. To reduce time to completion,"},{"line_number":135,"context_line":"     run larger chunks."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_0a1d170f","line":132,"range":{"start_line":132,"start_character":53,"end_line":132,"end_character":59},"updated":"2017-02-06 14:23:20.000000000","message":"depends","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":130,"context_line":"     the work is done. Each time it is run, it will show summary of completed and"},{"line_number":131,"context_line":"     remaining records. You run this command until you see completed and remaining"},{"line_number":132,"context_line":"     records as zeros. The chunk size you should use depend on your infrastructure"},{"line_number":133,"context_line":"     and how much additional load you can impose on the database. To reduce load,"},{"line_number":134,"context_line":"     perform smaller chunks with delays between chunks. To reduce time to completion,"},{"line_number":135,"context_line":"     run larger chunks."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"   * At this point, you must also ensure you update the configuration, to stop"},{"line_number":138,"context_line":"     using any deprecated features or options, and perform any required work"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_0ae4370b","line":135,"range":{"start_line":133,"start_character":66,"end_line":135,"end_character":23},"updated":"2017-02-06 14:23:20.000000000","message":"You\u0027ve said \u0027chunk\u0027 so much to this point that I\u0027m now thinking about vomit. Congratulations.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"91c9c4f9ff86bdcbefa5c3db472b450b065383f0","unresolved":false,"context_lines":[{"line_number":154,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Schema migrations are defined in"},{"line_number":157,"context_line":"``nova/db/sqlalchemy/migrate_repo/versions`` and are the routines that"},{"line_number":158,"context_line":"transform our database structure. They should be additive and able to"},{"line_number":159,"context_line":"be applied to a running system before service code has been upgraded."},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_6a2b24ec","line":157,"range":{"start_line":157,"start_character":2,"end_line":157,"end_character":42},"updated":"2017-02-04 11:48:08.000000000","message":"Maybe we should mention that the api db\u0027s migrations are defined in `nova/db/sqlalchemy/api_migrations/migrate_repo/versions`","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Online data migrations occur in two places:"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    #. Inline migrations that occur as part of normal run-time"},{"line_number":168,"context_line":"       activity as data is read in the old format and written in the"},{"line_number":169,"context_line":"       new format"},{"line_number":170,"context_line":"    #. Background online migrations that are performed using"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_caaf8f92","line":167,"updated":"2017-02-06 14:23:20.000000000","message":"nit: I know it\u0027s how this was before, but you could drop the indent on this list since it\u0027s currently indented more than necessary:\n\nhttp://docs-draft.openstack.org/24/428824/1/check/gate-nova-docs-ubuntu-xenial/b74183f//doc/build/html/upgrade.html#data-migrations","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":297,"context_line":"    This process must be completed before you contract the database schema."},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"DB prune deleted rows"},{"line_number":300,"context_line":"    Currently resources are soft deleted in the database, so users are able"},{"line_number":301,"context_line":"    to track instances in the DB that are created and destroyed in production."},{"line_number":302,"context_line":"    However, most people have a data retention policy, of say 30 days or 90"},{"line_number":303,"context_line":"    days after which they will want to delete those entries. Not deleting"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_0ac7d745","line":300,"range":{"start_line":300,"start_character":4,"end_line":300,"end_character":56},"updated":"2017-02-06 14:23:20.000000000","message":"nit: This is true for the main db, but not the api db which doesn\u0027t use the SoftDeleteMixin.\n\nI don\u0027t care if this is handled in this change or not, I just noticed it.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":319,"context_line":"to follow this new pattern."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"The current tests only cover the existing upgrade process where:"},{"line_number":322,"context_line":"* old computes can run with new control plane"},{"line_number":323,"context_line":"* but control plane is turned off for DB migrations"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"Unresolved issues"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_4ad8ff1d","line":322,"updated":"2017-02-06 14:23:20.000000000","message":"There should be a blank line before the bullets:\n\nhttp://docs-draft.openstack.org/24/428824/1/check/gate-nova-docs-ubuntu-xenial/b74183f//doc/build/html/upgrade.html#testing","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"af38f422b03076b43aba4d8d6902a063288188b0","unresolved":false,"context_lines":[{"line_number":325,"context_line":"Unresolved issues"},{"line_number":326,"context_line":"-----------------"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"Ideally you could rollback. We would need to add some kind of object data"},{"line_number":329,"context_line":"version pinning, so you can be running all new code to some extent, before"},{"line_number":330,"context_line":"there is no path back. Or have some way of reversing the data migration"},{"line_number":331,"context_line":"before the final contract."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"It is unknown how expensive on demand object backports would be. We could"},{"line_number":334,"context_line":"instead always send older versions of objects until the RPC pin is removed,"},{"line_number":335,"context_line":"but that means we might have new code getting old objects, which is currently"},{"line_number":336,"context_line":"not the case."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_ca022f6f","line":336,"range":{"start_line":328,"start_character":0,"end_line":336,"end_character":13},"updated":"2017-02-06 14:23:20.000000000","message":"Is this still something we even care to have in here?","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"03b4592d64483fe35fd77300d7c2c09bfc587c9a","unresolved":false,"context_lines":[{"line_number":325,"context_line":"Unresolved issues"},{"line_number":326,"context_line":"-----------------"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"Ideally you could rollback. We would need to add some kind of object data"},{"line_number":329,"context_line":"version pinning, so you can be running all new code to some extent, before"},{"line_number":330,"context_line":"there is no path back. Or have some way of reversing the data migration"},{"line_number":331,"context_line":"before the final contract."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"It is unknown how expensive on demand object backports would be. We could"},{"line_number":334,"context_line":"instead always send older versions of objects until the RPC pin is removed,"},{"line_number":335,"context_line":"but that means we might have new code getting old objects, which is currently"},{"line_number":336,"context_line":"not the case."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a430d35_ed2625cd","line":336,"range":{"start_line":328,"start_character":0,"end_line":336,"end_character":13},"in_reply_to":"1a430d35_ca022f6f","updated":"2017-02-06 14:55:29.000000000","message":"Nope, I just didn\u0027t read far enough down to see this.","commit_id":"3f919c85224b5588d33ebc0a08c1b0a1acaac18c"}]}
