)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8e1b7312635dcf4352ffc7bf09fe569748309a26","unresolved":false,"context_lines":[{"line_number":9,"context_line":"It was discovered that default\u003d on a Column definition in a schema migration"},{"line_number":10,"context_line":"will attempt to update the table with the provided value, instead of just"},{"line_number":11,"context_line":"translating on read, which is often the assumption. The Instance.hidden\u003dFalse"},{"line_number":12,"context_line":"change introduced in Train used such a default on the new column, which caused"},{"line_number":13,"context_line":"at least one real-world deployment to time out rewriting the instances table"},{"line_number":14,"context_line":"due to size. Apparently SQLAlchemy-migrate also does not consider such a timeout"},{"line_number":15,"context_line":"to be a failure and proceeds on. The end result is that some existing instances"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_2bb92fea","line":12,"range":{"start_line":12,"start_character":7,"end_line":12,"end_character":26},"updated":"2020-02-06 18:53:02.000000000","message":"if you respin, could you include a reference to that change (Iaffb27bd8c562ba120047c04bb62619c0864f594)","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"58b93b9a84732bec3c87b25bbd61bb7f1e46eb18","unresolved":false,"context_lines":[{"line_number":2206,"context_line":"            filters[\u0027user_id\u0027] \u003d context.user_id"},{"line_number":2207,"context_line":""},{"line_number":2208,"context_line":"    if filters.pop(\u0027hidden\u0027, False):"},{"line_number":2209,"context_line":"        query_prefix \u003d query_prefix.filter(models.Instance.hidden \u003d\u003d true())"},{"line_number":2210,"context_line":"    else:"},{"line_number":2211,"context_line":"        # If the query should not include hidden instances, then"},{"line_number":2212,"context_line":"        # filter instances with hidden\u003dFalse or hidden\u003dNULL because"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_4bfcabb5","line":2209,"range":{"start_line":2209,"start_character":0,"end_line":2209,"end_character":76},"updated":"2020-02-06 18:55:09.000000000","message":"so we\u0027ll add hidden\u003dtrue if we pop \u0027hidden\u0027 from filters and the value is true, defaulting to false... so this is when it\u0027s explicitly requested","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2883bdc6f8382caaf9b799836ec56a2c666b085e","unresolved":false,"context_lines":[{"line_number":2211,"context_line":"        # If the query should not include hidden instances, then"},{"line_number":2212,"context_line":"        # filter instances with hidden\u003dFalse or hidden\u003dNULL because"},{"line_number":2213,"context_line":"        # older records may have no value set."},{"line_number":2214,"context_line":"        query_prefix \u003d query_prefix.filter(or_("},{"line_number":2215,"context_line":"            models.Instance.hidden \u003d\u003d false(),"},{"line_number":2216,"context_line":"            models.Instance.hidden \u003d\u003d null()))"},{"line_number":2217,"context_line":""},{"line_number":2218,"context_line":"    # Filters for exact matches that we can do along with the SQL query..."},{"line_number":2219,"context_line":"    # For other filters that don\u0027t match this, we will do regexp matching"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_cbd65b27","line":2216,"range":{"start_line":2214,"start_character":43,"end_line":2216,"end_character":45},"updated":"2020-02-06 18:51:43.000000000","message":"Pity that this or_ had to be repeated. It would be nice if we could have hidden (heh) it somehow by converting Instance.hidden to a @property. At a glance, though, that seems like it would be tough to do.","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"58b93b9a84732bec3c87b25bbd61bb7f1e46eb18","unresolved":false,"context_lines":[{"line_number":2211,"context_line":"        # If the query should not include hidden instances, then"},{"line_number":2212,"context_line":"        # filter instances with hidden\u003dFalse or hidden\u003dNULL because"},{"line_number":2213,"context_line":"        # older records may have no value set."},{"line_number":2214,"context_line":"        query_prefix \u003d query_prefix.filter(or_("},{"line_number":2215,"context_line":"            models.Instance.hidden \u003d\u003d false(),"},{"line_number":2216,"context_line":"            models.Instance.hidden \u003d\u003d null()))"},{"line_number":2217,"context_line":""},{"line_number":2218,"context_line":"    # Filters for exact matches that we can do along with the SQL query..."},{"line_number":2219,"context_line":"    # For other filters that don\u0027t match this, we will do regexp matching"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_eb247761","line":2216,"range":{"start_line":2214,"start_character":0,"end_line":2216,"end_character":46},"updated":"2020-02-06 18:55:09.000000000","message":"and this makes sense, a false or null (so new instances will have false, and old ones will have null)","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"23731e85443b28a718a3c574c355422ed82ceb5f","unresolved":false,"context_lines":[{"line_number":2211,"context_line":"        # If the query should not include hidden instances, then"},{"line_number":2212,"context_line":"        # filter instances with hidden\u003dFalse or hidden\u003dNULL because"},{"line_number":2213,"context_line":"        # older records may have no value set."},{"line_number":2214,"context_line":"        query_prefix \u003d query_prefix.filter(or_("},{"line_number":2215,"context_line":"            models.Instance.hidden \u003d\u003d false(),"},{"line_number":2216,"context_line":"            models.Instance.hidden \u003d\u003d null()))"},{"line_number":2217,"context_line":""},{"line_number":2218,"context_line":"    # Filters for exact matches that we can do along with the SQL query..."},{"line_number":2219,"context_line":"    # For other filters that don\u0027t match this, we will do regexp matching"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_6b6c076b","line":2216,"range":{"start_line":2214,"start_character":0,"end_line":2216,"end_character":46},"in_reply_to":"3fa7e38b_eb247761","updated":"2020-02-06 18:57:40.000000000","message":"Correct.","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"}],"nova/db/sqlalchemy/migrate_repo/versions/399_add_instances_hidden.py":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"58b93b9a84732bec3c87b25bbd61bb7f1e46eb18","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    for prefix in (\u0027\u0027, \u0027shadow_\u0027):"},{"line_number":21,"context_line":"        instances \u003d Table(\u0027%sinstances\u0027 % prefix, meta, autoload\u003dTrue)"},{"line_number":22,"context_line":"        if not hasattr(instances.c, \u0027hidden\u0027):"},{"line_number":23,"context_line":"            # NOTE(danms): This column originally included default\u003dFalse. We"},{"line_number":24,"context_line":"            # discovered in bug #1862205 that this will attempt to rewrite"},{"line_number":25,"context_line":"            # the entire instances table with that value, which can time out"},{"line_number":26,"context_line":"            # for large data sets (and does not even abort)."},{"line_number":27,"context_line":"            hidden \u003d Column(\u0027hidden\u0027, Boolean)"},{"line_number":28,"context_line":"            instances.create_column(hidden)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_0bcd5391","line":26,"range":{"start_line":23,"start_character":0,"end_line":26,"end_character":60},"updated":"2020-02-06 18:55:09.000000000","message":"++","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f99e315efd4f8b526143c033aef8976f4a63f3d6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"            # discovered in bug #1862205 that this will attempt to rewrite"},{"line_number":25,"context_line":"            # the entire instances table with that value, which can time out"},{"line_number":26,"context_line":"            # for large data sets (and does not even abort)."},{"line_number":27,"context_line":"            hidden \u003d Column(\u0027hidden\u0027, Boolean)"},{"line_number":28,"context_line":"            instances.create_column(hidden)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_8b9ce35c","line":27,"updated":"2020-02-06 19:02:51.000000000","message":"server_default\u003dFalse is what we should probably be using, but we don\u0027t have any instances of that with boolean values (I only see default of \u0027ssh\u0027 and \u00270\u0027 for keypairs and consumer generations, respectively - the latter being the old placement db table). It\u0027s probably not worth changing here since the DB API is handling the false or null case. Definitely sucks to have a boolean field that can be nullable, which is why we provide a default in the model, but that doesn\u0027t translate here I guess and you can\u0027t make the column non-nullable in the schema without providing a server side default.","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e52e548ed095f9bf64a596b810210c5b26d2865b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"            # discovered in bug #1862205 that this will attempt to rewrite"},{"line_number":25,"context_line":"            # the entire instances table with that value, which can time out"},{"line_number":26,"context_line":"            # for large data sets (and does not even abort)."},{"line_number":27,"context_line":"            hidden \u003d Column(\u0027hidden\u0027, Boolean)"},{"line_number":28,"context_line":"            instances.create_column(hidden)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_ab1c3fc3","line":27,"in_reply_to":"3fa7e38b_8b9ce35c","updated":"2020-02-06 19:05:02.000000000","message":"And we have to migrate schema again to fix it at this point.","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"}],"nova/objects/instance.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f99e315efd4f8b526143c033aef8976f4a63f3d6","unresolved":false,"context_lines":[{"line_number":1519,"context_line":"        # API will only show one of them, so we don\u0027t count the hidden copy."},{"line_number":1520,"context_line":"        project_query \u003d project_query.filter("},{"line_number":1521,"context_line":"            or_(models.Instance.hidden \u003d\u003d false(),"},{"line_number":1522,"context_line":"                models.Instance.hidden \u003d\u003d null()))"},{"line_number":1523,"context_line":""},{"line_number":1524,"context_line":"        project_result \u003d project_query.first()"},{"line_number":1525,"context_line":"        fields \u003d (\u0027instances\u0027, \u0027cores\u0027, \u0027ram\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_6ba16792","line":1522,"updated":"2020-02-06 19:02:51.000000000","message":"Idea: we could drop this over time if we have an online data migration to set all instances with hidden\u003dnull to hidden\u003dfalse, but that\u0027s not something you\u0027d want to mess with in a change targeted for the stable/train branch.","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eb99cdf32a35a05899ca6cc6bd746b090de3bfb1","unresolved":false,"context_lines":[{"line_number":1519,"context_line":"        # API will only show one of them, so we don\u0027t count the hidden copy."},{"line_number":1520,"context_line":"        project_query \u003d project_query.filter("},{"line_number":1521,"context_line":"            or_(models.Instance.hidden \u003d\u003d false(),"},{"line_number":1522,"context_line":"                models.Instance.hidden \u003d\u003d null()))"},{"line_number":1523,"context_line":""},{"line_number":1524,"context_line":"        project_result \u003d project_query.first()"},{"line_number":1525,"context_line":"        fields \u003d (\u0027instances\u0027, \u0027cores\u0027, \u0027ram\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_eb7f97db","line":1522,"in_reply_to":"3fa7e38b_6ba16792","updated":"2020-02-06 19:05:18.000000000","message":"Also note that you don\u0027t have test coverage for this. I\u0027m pretty sure we have a function test for this code path somewhere so it\u0027d just be a matter of inserting an instance with hidden\u003dnull.","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e52e548ed095f9bf64a596b810210c5b26d2865b","unresolved":false,"context_lines":[{"line_number":1519,"context_line":"        # API will only show one of them, so we don\u0027t count the hidden copy."},{"line_number":1520,"context_line":"        project_query \u003d project_query.filter("},{"line_number":1521,"context_line":"            or_(models.Instance.hidden \u003d\u003d false(),"},{"line_number":1522,"context_line":"                models.Instance.hidden \u003d\u003d null()))"},{"line_number":1523,"context_line":""},{"line_number":1524,"context_line":"        project_result \u003d project_query.first()"},{"line_number":1525,"context_line":"        fields \u003d (\u0027instances\u0027, \u0027cores\u0027, \u0027ram\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_2b760f0d","line":1522,"in_reply_to":"3fa7e38b_6ba16792","updated":"2020-02-06 19:05:02.000000000","message":"Yeah, and it also hardly seems worth the migration effort to me.","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"794bb366eeb669f118a7d7cc2eb213fba9c53abd","unresolved":false,"context_lines":[{"line_number":1519,"context_line":"        # API will only show one of them, so we don\u0027t count the hidden copy."},{"line_number":1520,"context_line":"        project_query \u003d project_query.filter("},{"line_number":1521,"context_line":"            or_(models.Instance.hidden \u003d\u003d false(),"},{"line_number":1522,"context_line":"                models.Instance.hidden \u003d\u003d null()))"},{"line_number":1523,"context_line":""},{"line_number":1524,"context_line":"        project_result \u003d project_query.first()"},{"line_number":1525,"context_line":"        fields \u003d (\u0027instances\u0027, \u0027cores\u0027, \u0027ram\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_4bf7cb5b","line":1522,"in_reply_to":"3fa7e38b_eb7f97db","updated":"2020-02-06 19:08:56.000000000","message":"\u003e Also note that you don\u0027t have test coverage for this. I\u0027m pretty\n \u003e sure we have a function test for this code path somewhere so it\u0027d\n \u003e just be a matter of inserting an instance with hidden\u003dnull.\n\nThis test:\n\nhttps://review.opendev.org/#/c/631123/41/nova/tests/functional/db/test_quota.py","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"}],"nova/tests/unit/objects/test_instance.py":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"58b93b9a84732bec3c87b25bbd61bb7f1e46eb18","unresolved":false,"context_lines":[{"line_number":1997,"context_line":""},{"line_number":1998,"context_line":"        insts \u003d objects.InstanceList.get_by_filters(self.context,"},{"line_number":1999,"context_line":"                                                    {\u0027hidden\u0027: True})"},{"line_number":2000,"context_line":"        self.assertEqual(1, len(insts))"},{"line_number":2001,"context_line":""},{"line_number":2002,"context_line":"        insts \u003d objects.InstanceList.get_by_filters(self.context,"},{"line_number":2003,"context_line":"                                                    {})"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_6bbe47cf","line":2000,"range":{"start_line":2000,"start_character":28,"end_line":2000,"end_character":31},"updated":"2020-02-06 18:55:09.000000000","message":"only 1 hidden instance because we created one in the loop above...","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2883bdc6f8382caaf9b799836ec56a2c666b085e","unresolved":false,"context_lines":[{"line_number":2000,"context_line":"        self.assertEqual(1, len(insts))"},{"line_number":2001,"context_line":""},{"line_number":2002,"context_line":"        insts \u003d objects.InstanceList.get_by_filters(self.context,"},{"line_number":2003,"context_line":"                                                    {})"},{"line_number":2004,"context_line":"        self.assertEqual(2, len(insts))"},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_0bff93b1","line":2003,"range":{"start_line":2003,"start_character":52,"end_line":2003,"end_character":54},"updated":"2020-02-06 18:51:43.000000000","message":"would it be prudent to repeat this for\n\n {\u0027hidden\u0027: False}\n\nand\n\n {\u0027hidden\u0027: None}\n\nas well?","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"23731e85443b28a718a3c574c355422ed82ceb5f","unresolved":false,"context_lines":[{"line_number":2000,"context_line":"        self.assertEqual(1, len(insts))"},{"line_number":2001,"context_line":""},{"line_number":2002,"context_line":"        insts \u003d objects.InstanceList.get_by_filters(self.context,"},{"line_number":2003,"context_line":"                                                    {})"},{"line_number":2004,"context_line":"        self.assertEqual(2, len(insts))"},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_ab72ff49","line":2003,"range":{"start_line":2003,"start_character":52,"end_line":2003,"end_character":54},"in_reply_to":"3fa7e38b_0bff93b1","updated":"2020-02-06 18:57:40.000000000","message":"Yes for the former, but the latter isn\u0027t really legit, IMHO. I mean anything falsey would apply to the latter, and querying for rows with a SQL value of NULL wouldn\u0027t have been possible based on the original intention of the schema.","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"58b93b9a84732bec3c87b25bbd61bb7f1e46eb18","unresolved":false,"context_lines":[{"line_number":2001,"context_line":""},{"line_number":2002,"context_line":"        insts \u003d objects.InstanceList.get_by_filters(self.context,"},{"line_number":2003,"context_line":"                                                    {})"},{"line_number":2004,"context_line":"        self.assertEqual(2, len(insts))"},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":"class TestRemoteInstanceListObject(test_objects._RemoteTest,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_0b9b1379","line":2004,"range":{"start_line":2004,"start_character":0,"end_line":2004,"end_character":39},"updated":"2020-02-06 18:55:09.000000000","message":"and the two here is the one with hidden_value\u003dTrue and none..","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f99e315efd4f8b526143c033aef8976f4a63f3d6","unresolved":false,"context_lines":[{"line_number":2001,"context_line":""},{"line_number":2002,"context_line":"        insts \u003d objects.InstanceList.get_by_filters(self.context,"},{"line_number":2003,"context_line":"                                                    {})"},{"line_number":2004,"context_line":"        self.assertEqual(2, len(insts))"},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":"class TestRemoteInstanceListObject(test_objects._RemoteTest,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_8bf383a0","line":2004,"range":{"start_line":2004,"start_character":0,"end_line":2004,"end_character":39},"in_reply_to":"3fa7e38b_0b9b1379","updated":"2020-02-06 19:02:51.000000000","message":"Wait, why is this returning 2? We have three instances right with the following values:\n\nhidden\u003dtrue\nhidden\u003dfalse\nhidden\u003dnull\n\nIf we aren\u0027t filtering on hidden\u003dtrue, then the DB API change should filter out any instances with hidden\u003dfalse or hidden\u003dnull, so why wouldn\u0027t this be only one instance returned?","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9f454e64155f9d801330fc3bc3115c5b9bcfe415","unresolved":false,"context_lines":[{"line_number":2001,"context_line":""},{"line_number":2002,"context_line":"        insts \u003d objects.InstanceList.get_by_filters(self.context,"},{"line_number":2003,"context_line":"                                                    {})"},{"line_number":2004,"context_line":"        self.assertEqual(2, len(insts))"},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":"class TestRemoteInstanceListObject(test_objects._RemoteTest,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_abcf5f24","line":2004,"range":{"start_line":2004,"start_character":0,"end_line":2004,"end_character":39},"in_reply_to":"3fa7e38b_8b662356","updated":"2020-02-06 19:06:33.000000000","message":"Oh sorry I was thinking about this backward, hidden\u003dnull means show it (was equating null to falsey behavior).","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e52e548ed095f9bf64a596b810210c5b26d2865b","unresolved":false,"context_lines":[{"line_number":2001,"context_line":""},{"line_number":2002,"context_line":"        insts \u003d objects.InstanceList.get_by_filters(self.context,"},{"line_number":2003,"context_line":"                                                    {})"},{"line_number":2004,"context_line":"        self.assertEqual(2, len(insts))"},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":"class TestRemoteInstanceListObject(test_objects._RemoteTest,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_8b662356","line":2004,"range":{"start_line":2004,"start_character":0,"end_line":2004,"end_character":39},"in_reply_to":"3fa7e38b_8bf383a0","updated":"2020-02-06 19:05:02.000000000","message":"I\u0027m mirroring your original behavior which is to exclude the hidden one by default.","commit_id":"7f9d26ff9c6220549eaa83e748112c387eaa449d"}],"releasenotes/notes/instances_hidden_after_upgrade_to_train-9ce4731f31bc6bd2.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"129ab71f218178f5c663720dc379366de8e4f52c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Upgrading to Train on a deployment with a large database may hit bug 1862205,"},{"line_number":5,"context_line":"    which results in instance records left in a bad state, and manifests as"},{"line_number":6,"context_line":"    instances not being shown in list operations. Users upgrading to Train for"},{"line_number":7,"context_line":"    the first time will definitely want to have this fix applied before they do."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_573f68b1","line":4,"range":{"start_line":4,"start_character":69,"end_line":4,"end_character":80},"updated":"2020-02-06 22:32:37.000000000","message":"link","commit_id":"7d9ccf8544b2efd10b92bf7d9be081d58211f033"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76a4a1ba187d7993224c7d463e79fed31669ce0a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Upgrading to Train on a deployment with a large database may hit bug 1862205,"},{"line_number":5,"context_line":"    which results in instance records left in a bad state, and manifests as"},{"line_number":6,"context_line":"    instances not being shown in list operations. Users upgrading to Train for"},{"line_number":7,"context_line":"    the first time will definitely want to have this fix applied before they do."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_294294ad","line":4,"range":{"start_line":4,"start_character":69,"end_line":4,"end_character":80},"updated":"2020-02-07 00:10:08.000000000","message":"Linking this would be nice like Eric said. Should be as simple as doing:\n\n`bug 1862205`_ here and below and then adding at the bottom:\n\n_bug 1862205: https://launchpad.net/bugs/1862205","commit_id":"c465009446388e68ba356326b48240dd4ebca1c3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76a4a1ba187d7993224c7d463e79fed31669ce0a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Upgrading to Train on a deployment with a large database may hit bug 1862205,"},{"line_number":5,"context_line":"    which results in instance records left in a bad state, and manifests as"},{"line_number":6,"context_line":"    instances not being shown in list operations. Users upgrading to Train for"},{"line_number":7,"context_line":"    the first time will definitely want to have this fix applied before they do."},{"line_number":8,"context_line":"    Users who have already upgraded should apply this fix to address the problem"},{"line_number":9,"context_line":"    which may or may not have already become apparent."},{"line_number":10,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_c9fc2073","line":7,"range":{"start_line":6,"start_character":50,"end_line":7,"end_character":80},"updated":"2020-02-07 00:10:08.000000000","message":"nit: this is a bit confusing - it reads to me like hey before you upgrade to train make sure you apply this fix, but the fix is part of train, so that\u0027s weird. It\u0027d make more sense of the fix is targeted for let\u0027s say stein and fixes an issue upgrading to train. Maybe just saying \"when they do\" rather than \"before they do\" would fix that?","commit_id":"c465009446388e68ba356326b48240dd4ebca1c3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9ab752c98678254a6fdd896835c5a366c6743549","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Upgrading to Train on a deployment with a large database may hit bug 1862205,"},{"line_number":5,"context_line":"    which results in instance records left in a bad state, and manifests as"},{"line_number":6,"context_line":"    instances not being shown in list operations. Users upgrading to Train for"},{"line_number":7,"context_line":"    the first time will definitely want to have this fix applied before they do."},{"line_number":8,"context_line":"    Users who have already upgraded should apply this fix to address the problem"},{"line_number":9,"context_line":"    which may or may not have already become apparent."},{"line_number":10,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_c8940f38","line":7,"range":{"start_line":6,"start_character":50,"end_line":7,"end_character":80},"in_reply_to":"3fa7e38b_17d1e6f9","updated":"2020-02-07 16:45:45.000000000","message":"s/have this fix applied before they do/apply a version which includes this fix/","commit_id":"c465009446388e68ba356326b48240dd4ebca1c3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9a22183b8925f97fcdcf895dfb62b0528287f08f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Upgrading to Train on a deployment with a large database may hit bug 1862205,"},{"line_number":5,"context_line":"    which results in instance records left in a bad state, and manifests as"},{"line_number":6,"context_line":"    instances not being shown in list operations. Users upgrading to Train for"},{"line_number":7,"context_line":"    the first time will definitely want to have this fix applied before they do."},{"line_number":8,"context_line":"    Users who have already upgraded should apply this fix to address the problem"},{"line_number":9,"context_line":"    which may or may not have already become apparent."},{"line_number":10,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_17d1e6f9","line":7,"range":{"start_line":6,"start_character":50,"end_line":7,"end_character":80},"in_reply_to":"3fa7e38b_49d910ef","updated":"2020-02-07 14:51:14.000000000","message":"FWIW I thought this was weird when I read it as well, though I didn\u0027t put my finger on why.\n\nSo what we\u0027re really trying to say is:\n- If you\u0027re upgrading to Train, make sure the Train version you\u0027re laying down is one that includes this fix; and\n- If you\u0027ve already upgraded to an earlier Train, you may (or may not) be broken without realizing it, and you should apply the Train with this fix to ensure you are unbroken.\n\nRight?\n\nAnd I guess the way it\u0027s worded currently makes it sound like you can apply this fix independently somehow, which isn\u0027t the way people reading a reno in its native habitat will be doing things.\n\nAnyway, I don\u0027t have a wonderful suggestion, just thinking aloud.","commit_id":"c465009446388e68ba356326b48240dd4ebca1c3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ed1bf862f13205ab18cf7d09754560777ba551c4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Upgrading to Train on a deployment with a large database may hit bug 1862205,"},{"line_number":5,"context_line":"    which results in instance records left in a bad state, and manifests as"},{"line_number":6,"context_line":"    instances not being shown in list operations. Users upgrading to Train for"},{"line_number":7,"context_line":"    the first time will definitely want to have this fix applied before they do."},{"line_number":8,"context_line":"    Users who have already upgraded should apply this fix to address the problem"},{"line_number":9,"context_line":"    which may or may not have already become apparent."},{"line_number":10,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_49d910ef","line":7,"range":{"start_line":6,"start_character":50,"end_line":7,"end_character":80},"in_reply_to":"3fa7e38b_c9fc2073","updated":"2020-02-07 00:21:36.000000000","message":"I\u0027m not sure if it\u0027s not clear what I\u0027m trying to say, or you think it won\u0027t be clear to other people. I\u0027m trying to address your comment on IRC earlier of making this read like instructions.\n\nIf someone is getting ready to upgrade to train, say T.0 and they\u0027re reading this and realize their vendor hasn\u0027t released T.1 yet, they might want to wait or make sure they\u0027re getting the newest packages.","commit_id":"c465009446388e68ba356326b48240dd4ebca1c3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76a4a1ba187d7993224c7d463e79fed31669ce0a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    which results in instance records left in a bad state, and manifests as"},{"line_number":6,"context_line":"    instances not being shown in list operations. Users upgrading to Train for"},{"line_number":7,"context_line":"    the first time will definitely want to have this fix applied before they do."},{"line_number":8,"context_line":"    Users who have already upgraded should apply this fix to address the problem"},{"line_number":9,"context_line":"    which may or may not have already become apparent."},{"line_number":10,"context_line":"fixes:"},{"line_number":11,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_29edb4b7","line":8,"updated":"2020-02-07 00:10:08.000000000","message":"This is also a bit tricky since if you upgraded and got past 399 you can\u0027t apply the fix and run the db schema migrations again to resolve the issue, you\u0027d have to do manual DB surgery. So I\u0027d probably either remove this sentence or say if you have already upgraded and are experiencing this issue you will need to manually resolve it by updating existing `instances` table records to set hidden\u003dfalse.","commit_id":"c465009446388e68ba356326b48240dd4ebca1c3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9ab752c98678254a6fdd896835c5a366c6743549","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    which results in instance records left in a bad state, and manifests as"},{"line_number":6,"context_line":"    instances not being shown in list operations. Users upgrading to Train for"},{"line_number":7,"context_line":"    the first time will definitely want to have this fix applied before they do."},{"line_number":8,"context_line":"    Users who have already upgraded should apply this fix to address the problem"},{"line_number":9,"context_line":"    which may or may not have already become apparent."},{"line_number":10,"context_line":"fixes:"},{"line_number":11,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_08b8e7c4","line":8,"in_reply_to":"3fa7e38b_09ed588c","updated":"2020-02-07 16:45:45.000000000","message":"Users already on Train should upgrade to a version including this fix to ensure the problem is addressed.","commit_id":"c465009446388e68ba356326b48240dd4ebca1c3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ed1bf862f13205ab18cf7d09754560777ba551c4","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    which results in instance records left in a bad state, and manifests as"},{"line_number":6,"context_line":"    instances not being shown in list operations. Users upgrading to Train for"},{"line_number":7,"context_line":"    the first time will definitely want to have this fix applied before they do."},{"line_number":8,"context_line":"    Users who have already upgraded should apply this fix to address the problem"},{"line_number":9,"context_line":"    which may or may not have already become apparent."},{"line_number":10,"context_line":"fixes:"},{"line_number":11,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_09ed588c","line":8,"in_reply_to":"3fa7e38b_29edb4b7","updated":"2020-02-07 00:21:36.000000000","message":"No, applying this fix if they\u0027re already on T.0 is fine. Their DB won\u0027t get fixed up, but the code will handle reading fixed and unfixed instance records. So this is trying to say \"don\u0027t think this isn\u0027t important just because you\u0027ve already upgraded to T.0\"","commit_id":"c465009446388e68ba356326b48240dd4ebca1c3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a65f70ae27ae18ef9770ba7ae6a1abfeb3d0011","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    already on Train should upgrade to a version including this fix to"},{"line_number":10,"context_line":"    ensure the problem is addressed."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    _bug 1862205: https://launchpad.net/bugs/1862205"},{"line_number":13,"context_line":"fixes:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    A fix for serious `bug 1862205` is provided which addresses both"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3fa7e38b_a852f368","line":12,"updated":"2020-02-07 16:54:04.000000000","message":".. _bug 1862205: https://launchpad.net/bugs/1862205","commit_id":"6533d2c9ce66163260ce0043a2a3a39b52443d85"}]}
