)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"1b01d7499431ff5a3f072560caac4e56ef9ed36b","unresolved":true,"context_lines":[{"line_number":24,"context_line":"independently from the rest."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks many parallel tempest test"},{"line_number":27,"context_line":"execution this patch also introduced a zzz_serial test directory to"},{"line_number":28,"context_line":"store the serial tests. The current test ordering uses alphabetical"},{"line_number":29,"context_line":"order so the serial tests will run at the end of the execution not"},{"line_number":30,"context_line":"randomly in the middle."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"2e2b16d4_11f1bf60","line":27,"range":{"start_line":27,"start_character":39,"end_line":27,"end_character":49},"updated":"2022-04-25 13:33:48.000000000","message":"for this serial is enough, as that is after scenario, so even if we/anybody executes these together with scenario it will be after the rest, or am I missing something?","commit_id":"8cf537f4d1a81774b26a001798d56a8c91a5df8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5b8fc130d0fe5a34408e65820faf6bde82315f51","unresolved":false,"context_lines":[{"line_number":24,"context_line":"independently from the rest."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks many parallel tempest test"},{"line_number":27,"context_line":"execution this patch also introduced a zzz_serial test directory to"},{"line_number":28,"context_line":"store the serial tests. The current test ordering uses alphabetical"},{"line_number":29,"context_line":"order so the serial tests will run at the end of the execution not"},{"line_number":30,"context_line":"randomly in the middle."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"2ed3855c_26163cbd","line":27,"range":{"start_line":27,"start_character":39,"end_line":27,"end_character":49},"in_reply_to":"2e2b16d4_11f1bf60","updated":"2022-04-27 11:33:43.000000000","message":"I just went for a future proof name that will work even if somebody starts adding a separate test set for zodiac signs. ;)","commit_id":"8cf537f4d1a81774b26a001798d56a8c91a5df8c"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Introduce @serial test execution decorator"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Tempest provides a LockFixture to avoid two potentially interfering"},{"line_number":10,"context_line":"tests torun in parallel. However this solution does not scale when"},{"line_number":11,"context_line":"we want to separate a set of tests from many other test cases. For"},{"line_number":12,"context_line":"example host aggregate and availability zone testing needs compute"},{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"755eee47_04f6ea64","line":10,"range":{"start_line":10,"start_character":25,"end_line":10,"end_character":32},"updated":"2022-11-18 10:42:55.000000000","message":"However,","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Introduce @serial test execution decorator"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Tempest provides a LockFixture to avoid two potentially interfering"},{"line_number":10,"context_line":"tests torun in parallel. However this solution does not scale when"},{"line_number":11,"context_line":"we want to separate a set of tests from many other test cases. For"},{"line_number":12,"context_line":"example host aggregate and availability zone testing needs compute"},{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"cd0c4b96_536168c3","line":10,"range":{"start_line":10,"start_character":6,"end_line":10,"end_character":11},"updated":"2022-11-18 10:42:55.000000000","message":"to run","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Introduce @serial test execution decorator"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Tempest provides a LockFixture to avoid two potentially interfering"},{"line_number":10,"context_line":"tests torun in parallel. However this solution does not scale when"},{"line_number":11,"context_line":"we want to separate a set of tests from many other test cases. For"},{"line_number":12,"context_line":"example host aggregate and availability zone testing needs compute"},{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"e8beba0b_8ea6ba1f","line":10,"range":{"start_line":10,"start_character":25,"end_line":10,"end_character":32},"in_reply_to":"755eee47_04f6ea64","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Introduce @serial test execution decorator"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Tempest provides a LockFixture to avoid two potentially interfering"},{"line_number":10,"context_line":"tests torun in parallel. However this solution does not scale when"},{"line_number":11,"context_line":"we want to separate a set of tests from many other test cases. For"},{"line_number":12,"context_line":"example host aggregate and availability zone testing needs compute"},{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"1be165af_39736af0","line":10,"range":{"start_line":10,"start_character":6,"end_line":10,"end_character":11},"in_reply_to":"cd0c4b96_536168c3","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Tempest provides a LockFixture to avoid two potentially interfering"},{"line_number":10,"context_line":"tests torun in parallel. However this solution does not scale when"},{"line_number":11,"context_line":"we want to separate a set of tests from many other test cases. For"},{"line_number":12,"context_line":"example host aggregate and availability zone testing needs compute"},{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"},{"line_number":14,"context_line":"between aggregates but a lot of other tests are creating nova"},{"line_number":15,"context_line":"servers. To fully separate these aggregate test from the rest of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"4fc3af48_36b8545a","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":7},"updated":"2022-11-18 10:42:55.000000000","message":"example,","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Tempest provides a LockFixture to avoid two potentially interfering"},{"line_number":10,"context_line":"tests torun in parallel. However this solution does not scale when"},{"line_number":11,"context_line":"we want to separate a set of tests from many other test cases. For"},{"line_number":12,"context_line":"example host aggregate and availability zone testing needs compute"},{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"},{"line_number":14,"context_line":"between aggregates but a lot of other tests are creating nova"},{"line_number":15,"context_line":"servers. To fully separate these aggregate test from the rest of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"c1550412_c2fff077","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":7},"in_reply_to":"4fc3af48_36b8545a","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":12,"context_line":"example host aggregate and availability zone testing needs compute"},{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"},{"line_number":14,"context_line":"between aggregates but a lot of other tests are creating nova"},{"line_number":15,"context_line":"servers. To fully separate these aggregate test from the rest of"},{"line_number":16,"context_line":"tempest test case this patch proposes a @serial class decorator to"},{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"d50e5d33_0f2f057e","line":15,"range":{"start_line":15,"start_character":43,"end_line":15,"end_character":47},"updated":"2022-11-18 10:42:55.000000000","message":"tests","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":12,"context_line":"example host aggregate and availability zone testing needs compute"},{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"},{"line_number":14,"context_line":"between aggregates but a lot of other tests are creating nova"},{"line_number":15,"context_line":"servers. To fully separate these aggregate test from the rest of"},{"line_number":16,"context_line":"tempest test case this patch proposes a @serial class decorator to"},{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"375bc17a_c89342e6","line":15,"range":{"start_line":15,"start_character":43,"end_line":15,"end_character":47},"in_reply_to":"d50e5d33_0f2f057e","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"},{"line_number":14,"context_line":"between aggregates but a lot of other tests are creating nova"},{"line_number":15,"context_line":"servers. To fully separate these aggregate test from the rest of"},{"line_number":16,"context_line":"tempest test case this patch proposes a @serial class decorator to"},{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"ea4e41d7_0437bc83","line":16,"range":{"start_line":16,"start_character":13,"end_line":16,"end_character":17},"updated":"2022-11-18 10:42:55.000000000","message":"cases,","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"},{"line_number":14,"context_line":"between aggregates but a lot of other tests are creating nova"},{"line_number":15,"context_line":"servers. To fully separate these aggregate test from the rest of"},{"line_number":16,"context_line":"tempest test case this patch proposes a @serial class decorator to"},{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"b07528df_390718a3","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":7},"updated":"2022-11-18 10:42:55.000000000","message":"the tempest","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"},{"line_number":14,"context_line":"between aggregates but a lot of other tests are creating nova"},{"line_number":15,"context_line":"servers. To fully separate these aggregate test from the rest of"},{"line_number":16,"context_line":"tempest test case this patch proposes a @serial class decorator to"},{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"d63ca132_f0d5bbf4","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":7},"in_reply_to":"b07528df_390718a3","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":13,"context_line":"hosts without any nova servers to be able to test moving computes"},{"line_number":14,"context_line":"between aggregates but a lot of other tests are creating nova"},{"line_number":15,"context_line":"servers. To fully separate these aggregate test from the rest of"},{"line_number":16,"context_line":"tempest test case this patch proposes a @serial class decorator to"},{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"b9121b52_968428f4","line":16,"range":{"start_line":16,"start_character":13,"end_line":16,"end_character":17},"in_reply_to":"ea4e41d7_0437bc83","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Under the hood the @serial decorator is implemented with a tempest wide"},{"line_number":21,"context_line":"interprocess read write lock. The serial test classes always take the"},{"line_number":22,"context_line":"write lock, while the non-serial classes take the read lock. The lock"},{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"39b2d77c_a33db0da","line":20,"range":{"start_line":20,"start_character":10,"end_line":20,"end_character":14},"updated":"2022-11-18 10:42:55.000000000","message":"hood,","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Under the hood the @serial decorator is implemented with a tempest wide"},{"line_number":21,"context_line":"interprocess read write lock. The serial test classes always take the"},{"line_number":22,"context_line":"write lock, while the non-serial classes take the read lock. The lock"},{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"d1d7ea7a_9e8b8b50","line":20,"range":{"start_line":20,"start_character":59,"end_line":20,"end_character":71},"updated":"2022-11-18 10:42:55.000000000","message":"tempest-wide","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Under the hood the @serial decorator is implemented with a tempest wide"},{"line_number":21,"context_line":"interprocess read write lock. The serial test classes always take the"},{"line_number":22,"context_line":"write lock, while the non-serial classes take the read lock. The lock"},{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"8ea63ff4_13efe8eb","line":20,"range":{"start_line":20,"start_character":10,"end_line":20,"end_character":14},"in_reply_to":"39b2d77c_a33db0da","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":17,"context_line":"mark a test class to be run totally independently of any other test"},{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Under the hood the @serial decorator is implemented with a tempest wide"},{"line_number":21,"context_line":"interprocess read write lock. The serial test classes always take the"},{"line_number":22,"context_line":"write lock, while the non-serial classes take the read lock. The lock"},{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"68784617_132870cb","line":20,"range":{"start_line":20,"start_character":59,"end_line":20,"end_character":71},"in_reply_to":"d1d7ea7a_9e8b8b50","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Under the hood the @serial decorator is implemented with a tempest wide"},{"line_number":21,"context_line":"interprocess read write lock. The serial test classes always take the"},{"line_number":22,"context_line":"write lock, while the non-serial classes take the read lock. The lock"},{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"},{"line_number":24,"context_line":"independently from the rest."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"0ba7b3a7_9fbd76de","line":21,"range":{"start_line":21,"start_character":13,"end_line":21,"end_character":23},"updated":"2022-11-18 10:42:55.000000000","message":"read-write","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":18,"context_line":"classes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Under the hood the @serial decorator is implemented with a tempest wide"},{"line_number":21,"context_line":"interprocess read write lock. The serial test classes always take the"},{"line_number":22,"context_line":"write lock, while the non-serial classes take the read lock. The lock"},{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"},{"line_number":24,"context_line":"independently from the rest."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"7fb38338_59e6e2f9","line":21,"range":{"start_line":21,"start_character":13,"end_line":21,"end_character":23},"in_reply_to":"0ba7b3a7_9fbd76de","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":20,"context_line":"Under the hood the @serial decorator is implemented with a tempest wide"},{"line_number":21,"context_line":"interprocess read write lock. The serial test classes always take the"},{"line_number":22,"context_line":"write lock, while the non-serial classes take the read lock. The lock"},{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"},{"line_number":24,"context_line":"independently from the rest."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks many parallel tempest test"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"c526280e_7e274f81","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":6},"updated":"2022-11-18 10:42:55.000000000","message":"allows in","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Under the hood the @serial decorator is implemented with a tempest wide"},{"line_number":21,"context_line":"interprocess read write lock. The serial test classes always take the"},{"line_number":22,"context_line":"write lock, while the non-serial classes take the read lock. The lock"},{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"},{"line_number":24,"context_line":"independently from the rest."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks many parallel tempest test"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"4b475001_58af18e9","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":6},"in_reply_to":"c526280e_7e274f81","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"},{"line_number":24,"context_line":"independently from the rest."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks many parallel tempest test"},{"line_number":27,"context_line":"execution this patch also introduced a zzz_serial test directory to"},{"line_number":28,"context_line":"store the serial tests. The current test ordering in a fresh env"},{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"6ef7b48a_b8840b6d","line":27,"range":{"start_line":26,"start_character":42,"end_line":27,"end_character":9},"updated":"2022-11-18 10:42:55.000000000","message":"\"many parallel tempest test executions\" - this might suggest that tempest is run in multiple processes (\u0027tempest run \u0026; tempest run \u0026; ...\u0027), however, the lock doesn\u0027t work that way - it works only if tempest is executed once while the tests might run in parallel ... so I\u0027d suggest a wording like:\n\"To minimize the time a serial test blocks other tempest tests run in parallel, this patch ...\"","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":23,"context_line":"allows many readers OR a single writer. So the serial tests are run"},{"line_number":24,"context_line":"independently from the rest."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks many parallel tempest test"},{"line_number":27,"context_line":"execution this patch also introduced a zzz_serial test directory to"},{"line_number":28,"context_line":"store the serial tests. The current test ordering in a fresh env"},{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"b523a731_b1653446","line":27,"range":{"start_line":26,"start_character":42,"end_line":27,"end_character":9},"in_reply_to":"6ef7b48a_b8840b6d","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run the subsequent runs will be ordered by"},{"line_number":33,"context_line":"runtime by stestr. So there longer runtime might be observed due to"},{"line_number":34,"context_line":"locking, but the correctness of the test execution is still kept."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"9251339a_9bdc83cc","line":32,"range":{"start_line":32,"start_character":64,"end_line":32,"end_character":66},"updated":"2022-11-18 10:42:55.000000000","message":"in","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run the subsequent runs will be ordered by"},{"line_number":33,"context_line":"runtime by stestr. So there longer runtime might be observed due to"},{"line_number":34,"context_line":"locking, but the correctness of the test execution is still kept."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"664a35dc_ca9a6c23","line":32,"range":{"start_line":32,"start_character":21,"end_line":32,"end_character":27},"updated":"2022-11-18 10:42:55.000000000","message":"re-run,","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run the subsequent runs will be ordered by"},{"line_number":33,"context_line":"runtime by stestr. So there longer runtime might be observed due to"},{"line_number":34,"context_line":"locking, but the correctness of the test execution is still kept."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"a43f08e6_87427301","line":32,"range":{"start_line":32,"start_character":21,"end_line":32,"end_character":27},"in_reply_to":"664a35dc_ca9a6c23","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run the subsequent runs will be ordered by"},{"line_number":33,"context_line":"runtime by stestr. So there longer runtime might be observed due to"},{"line_number":34,"context_line":"locking, but the correctness of the test execution is still kept."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"5762cb6a_16dfa64f","line":32,"range":{"start_line":32,"start_character":64,"end_line":32,"end_character":66},"in_reply_to":"9251339a_9bdc83cc","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run the subsequent runs will be ordered by"},{"line_number":33,"context_line":"runtime by stestr. So there longer runtime might be observed due to"},{"line_number":34,"context_line":"locking, but the correctness of the test execution is still kept."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Change-Id: I0181517edab75f586464a38c4811417f888783b1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"fc1cb04a_e06bfc8d","line":33,"range":{"start_line":33,"start_character":19,"end_line":33,"end_character":34},"updated":"2022-11-18 10:42:55.000000000","message":"Therefore, a longer","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run the subsequent runs will be ordered by"},{"line_number":33,"context_line":"runtime by stestr. So there longer runtime might be observed due to"},{"line_number":34,"context_line":"locking, but the correctness of the test execution is still kept."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Change-Id: I0181517edab75f586464a38c4811417f888783b1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"790d0d42_27d6b43d","line":33,"range":{"start_line":33,"start_character":19,"end_line":33,"end_character":34},"in_reply_to":"fc1cb04a_e06bfc8d","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bdde53fbe0895d284d74f5091ec41973c54390b1","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks other tempest tests run in"},{"line_number":27,"context_line":"parallel, this patch also introduced a zzz_serial test directory to"},{"line_number":28,"context_line":"store the serial tests. The current test ordering in a fresh env"},{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run, the subsequent runs will be ordered at"},{"line_number":33,"context_line":"runtime by stestr. Therfore, a longer runtime might be observed due to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"af99dc6e_54b0cd55","line":30,"range":{"start_line":28,"start_character":24,"end_line":30,"end_character":41},"updated":"2023-01-11 17:39:31.000000000","message":"yeah, But zzz_* seems little odd, can we rename this to test_serial which will still be after the Tempest current test dir structure?","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"801a05e274fdd997cb76eff5f9b89de7df7ba567","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks other tempest tests run in"},{"line_number":27,"context_line":"parallel, this patch also introduced a zzz_serial test directory to"},{"line_number":28,"context_line":"store the serial tests. The current test ordering in a fresh env"},{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run, the subsequent runs will be ordered at"},{"line_number":33,"context_line":"runtime by stestr. Therfore, a longer runtime might be observed due to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"6274d3c0_8eb553cd","line":30,"range":{"start_line":28,"start_character":24,"end_line":30,"end_character":41},"in_reply_to":"4b4a23db_a750584e","updated":"2023-01-17 00:43:04.000000000","message":"I agree to run those at the end but with \"test_serial\" it will run at the end right (with given current dir structure of Tempest)?\n\nEven if end up running a few series tests in between of parallel execution, it will not impact the overall tempest run time.","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0e535f7fbea1064f16ea3f7879aa98e96f4beb90","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks other tempest tests run in"},{"line_number":27,"context_line":"parallel, this patch also introduced a zzz_serial test directory to"},{"line_number":28,"context_line":"store the serial tests. The current test ordering in a fresh env"},{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run, the subsequent runs will be ordered at"},{"line_number":33,"context_line":"runtime by stestr. Therfore, a longer runtime might be observed due to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"71a22788_1558b38b","line":30,"range":{"start_line":28,"start_character":24,"end_line":30,"end_character":41},"in_reply_to":"6274d3c0_8eb553cd","updated":"2023-01-17 16:17:27.000000000","message":"serial_test looks better in term of running the test at the end.","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8ba9b7b95e1c0454743875814d12551b7b649ade","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"To minimize the time a serial test blocks other tempest tests run in"},{"line_number":27,"context_line":"parallel, this patch also introduced a zzz_serial test directory to"},{"line_number":28,"context_line":"store the serial tests. The current test ordering in a fresh env"},{"line_number":29,"context_line":"uses alphabetical order so the serial tests will run at the end of"},{"line_number":30,"context_line":"the execution not randomly in the middle. The gate uses fresh VMs"},{"line_number":31,"context_line":"for every run so we can rely on this optimization there. In local"},{"line_number":32,"context_line":"envs where tests are re-run, the subsequent runs will be ordered at"},{"line_number":33,"context_line":"runtime by stestr. Therfore, a longer runtime might be observed due to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"4b4a23db_a750584e","line":30,"range":{"start_line":28,"start_character":24,"end_line":30,"end_character":41},"in_reply_to":"af99dc6e_54b0cd55","updated":"2023-01-16 12:04:49.000000000","message":"no we cant\n\nas i have said in the past we are relying on the lexagapic ordering created by adding a zzz prefix to ensure that it runs after everythign else.\n\nso the name was not arbiary its a funcitonal choice to acihve teh desired ordering.\n\nsee comment https://review.opendev.org/c/openstack/tempest/+/821732/19#message-25c1bc021886ae80bf4ad42875717542720bd0ea where we discussed this previously.","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f48b4a677b144d850b981f3f9f8e836a5698b2d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8c6441d2_5c2e31c1","updated":"2021-12-15 11:55:23.000000000","message":"This needs a bunch of local troubleshooting as far as I see","commit_id":"be64a32a122b4bbbd661110fff14b4aaaecb205f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2b5b3d021c4367854ce087c591cebf2ef94e8e4b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"547f6c2e_b0fbf8d3","updated":"2021-12-15 17:28:43.000000000","message":"Not perfect yet: https://07840cc657b6cb5df66a-ca0266261d8d95f33f1974de7a62fd54.ssl.cf1.rackcdn.com/821732/3/check/nova-live-migration/8de2818/testr_results.html","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"300841b3288f3a4656818095f3f9636914ae156a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"36362539_63d79d73","updated":"2021-12-16 14:33:48.000000000","message":"So fasteners\u0027 inter process rw lock works, but we waste a lot of cpu time waiting for the write lock https://paste.opendev.org/show/811724/","commit_id":"dc3eb0af5d074b69b3efc2b52998bed77a6f0b5a"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ca047c11e88ee4db445fd2bb4a338fad03ff608b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"74099fb2_657ba7ca","in_reply_to":"36362539_63d79d73","updated":"2021-12-16 16:30:39.000000000","message":"fasteners unfortunately does not implement an inter process rw lock that could be configured to prefer writers over readers. And with the fcntl primitives I don\u0027t see how that would be possible to implement.\n\nStill additional to the lock if we could also influence the order of the test execution in a way that serial tests are run at the end then we could avoid most of the wasted execution time we see in the current case.\n\nThe tempest CLI uses stestr internally to execute the tests. Stestr allows for grouping of the tests with --group-regex but uses an alphabetical ordering of the tests (if no timing data available)[1]. \n\nThe unittest lib exposes some test case ordering configurable[2] but it does not seem to work together with stestr. At least in my trials I was able to hook into the unittest config but was not able to override the alphabetical ordering of stestr.\n\nAlso from my trials it is visible that the order of the tests in the file stestr uses via --load-list does not effect the order of the test execution.\n\nSo based on all this the best we can do is to influence the ordering by _naming_ the serial tests in a way that they end up at the end of the alphabetical list (assuming that tempest is always used in a clean stestr env where no timing data is available). \n\n\n[1] https://stestr.readthedocs.io/en/latest/MANUAL.html#test-scheduling\n[2] https://docs.python.org/3/library/unittest.html#unittest.TestLoader.sortTestMethodsUsing","commit_id":"dc3eb0af5d074b69b3efc2b52998bed77a6f0b5a"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"443f1bf1_eaec8fa8","in_reply_to":"74099fb2_657ba7ca","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"dc3eb0af5d074b69b3efc2b52998bed77a6f0b5a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b247dd1e9c3ed07f89eb7340e362a7673c048cff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9addc280_fd32e74e","updated":"2021-12-17 13:07:21.000000000","message":"this not only seams to work but the reorderign has more or less elimnated the perfromace hit.\n\ni agree with the commit message that this need docs for why the serial execution is needed and how\nto add more test but +1 as directionally i think this is correct.\n\n\nthe lock supports correct execution and the renaming enforced ordering deferring the serial portion to the end maximising concurrency.","commit_id":"670b684ebba097aa88d2873dca243dc6f015ac6c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7972f217ae9be56c960b1f95fa0b1cacfc18d176","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"66a362d6_26a3130d","in_reply_to":"5face6b0_d736a9bb","updated":"2021-12-18 08:19:19.000000000","message":"Now we get back the test coverage and the ordering works. No write lock was being blocked for long https://paste.opendev.org/show/811753/","commit_id":"670b684ebba097aa88d2873dca243dc6f015ac6c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3c9265f7_6b05c0ac","in_reply_to":"66a362d6_26a3130d","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"670b684ebba097aa88d2873dca243dc6f015ac6c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7529ca2ac8770548c884bba9109cda1de319f1f7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5face6b0_d736a9bb","in_reply_to":"97faad8e_ad63b2ac","updated":"2021-12-17 15:40:45.000000000","message":"did some mingling in the tox.ini, we should have more results in the next run","commit_id":"670b684ebba097aa88d2873dca243dc6f015ac6c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1c882f1570b5e6b71c3605a5652d64cf61f95c1f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c616b848_a3b21451","in_reply_to":"9addc280_fd32e74e","updated":"2021-12-17 15:01:51.000000000","message":"bah, it did not run the serial tests at all :/","commit_id":"670b684ebba097aa88d2873dca243dc6f015ac6c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b7590082e1e1b7faa28112ee18c2c74f7a80eda3","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"97faad8e_ad63b2ac","in_reply_to":"c616b848_a3b21451","updated":"2021-12-17 15:06:45.000000000","message":"I have to tune the regexes in tox.ini as now only the full tempest includes the serial test set","commit_id":"670b684ebba097aa88d2873dca243dc6f015ac6c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"265e75f64e3237234cf0c2f5beb80fc74bbc1c1f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"89752da3_00db88d7","updated":"2022-01-17 13:48:01.000000000","message":"As the upper constraints of fasteners was bumped to 0.16.3 globally we can drop the local copy of the fasteners lib from this patch \\o/","commit_id":"1f78c94376e98ea70af56c1c95cd283328bcd33b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6aa60a6e2e2994fccdecb1c6f924119aa46eb273","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"39389539_13835552","updated":"2022-01-27 10:28:55.000000000","message":"recheck https://review.opendev.org/c/openstack/devstack/+/824991 supposed to fix the grenade issue","commit_id":"1f78c94376e98ea70af56c1c95cd283328bcd33b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6b1ca08b_a45a4d84","updated":"2022-02-07 12:21:50.000000000","message":"closed the unrelated open comments ","commit_id":"d0b9705bd56fd2f5c3532ecbe1791c91862a5645"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"13eeb82d58edf85d2e70db8c9dd82122eb536df3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a5670a3c_7cac5862","updated":"2022-02-04 11:57:38.000000000","message":"recheck","commit_id":"d0b9705bd56fd2f5c3532ecbe1791c91862a5645"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"87e3768ad9d7773aa46ecfd057c6fa82c59feb53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"34a4c2ff_91050fbf","updated":"2022-05-26 12:53:23.000000000","message":"The ordering forced by the name of the tests (zzz_serial) will not work in every case. It will only work when you run tempest for the first time. When you run it for the second time, then the stestr library uses run times of the tests (stored in the .stestr folder) to find the optimal order of the tests [1].\n\n[1] https://stestr.readthedocs.io/en/latest/MANUAL.html?highlight\u003dworker#test-scheduling\n\n\n-----------------------------\nI had an idea that turned out to be incorrect. I will put it here just for future reference. I was thinking whether we can somehow use --worker-file stestr option for this [1][2]. Something like this:\n\n```\n- worker:\n  - [regex for tests we want to run serially]\n  concurrency: 1\n\n- worker:\n  - [regex for tests we want to run in parallel]\n```\n\n[1] https://stestr.readthedocs.io/en/latest/MANUAL.html#test-scheduling\n[2] https://docs.openstack.org/tempest/latest/run.html","commit_id":"cc8381562fdf0db8ee298d22d4615018291ad833"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b47625cfee2e4b4e21094b1dc0a245c8090b05e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"72827cae_cec5acc8","updated":"2022-05-06 08:20:25.000000000","message":"recheck","commit_id":"cc8381562fdf0db8ee298d22d4615018291ad833"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"94be984e847545bb9f707279d8005b750121b78d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"255a4c92_e870a888","in_reply_to":"34a4c2ff_91050fbf","updated":"2022-05-31 13:49:17.000000000","message":"Good point about the ordering being arbitrary after the first run. I did not realized that as the gate always runs the test in a fresh VM. \n\nIf the ordering is not forced then still the tests will be correctly run due to locking, but then we cannot optimize the runtime of the whole tempest suite with the test ordering.\n\nI noted this now in the commit message.\n\n--\n\nYeah worker files are not helping as the workers run in parallel.","commit_id":"cc8381562fdf0db8ee298d22d4615018291ad833"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"52d2cea97774f08cd23bee461cc672ff46b5cbc3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"1cf6e6ce_e2333ba5","updated":"2022-06-22 14:50:21.000000000","message":"I am taking a second look at this patch and I am thinking about two things:\n\n1) I would change the \"zzz_serial\" to \"serial\"\n\n2) Whether there is a way how to make the ordering more permanent (so the serial tests always run at the end). I think that if we merge the patch as it is right now, we will give up the scheduling feature of stestr which uses the logs from previous runs to optimize the usage of workers [1].\n\n[1] https://stestr.readthedocs.io/en/latest/MANUAL.html#test-scheduling","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"3a5f33f7_63a57bbe","updated":"2022-11-18 10:42:55.000000000","message":"I\u0027ve tested the logic, it seems it\u0027s working as expected, we can also confirm that by checking the stackviz output (after the check jobs will be retriggered).\n\nThe zzz_serial tests are executed at the end even on a non-first tempest run. Therefore it doesn\u0027t affect stestr optimization very much (considering there will be just a handful of tests like this, which I believe is the case).\n\nI made several suggestions to the documentation wording to make it more clear, readable and understandable to everyone reading that after we merge this.","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"acd877b12378ba143d8f76bea2ffedea9c7abff2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":16,"id":"fc0810c5_cf36ace7","in_reply_to":"1cf6e6ce_e2333ba5","updated":"2022-07-04 10:02:59.000000000","message":"\u003e I am taking a second look at this patch and I am thinking about two things:\n\u003e \n\u003e 1) I would change the \"zzz_serial\" to \"serial\"\n\nWe can, zzz is just an optimization to run the serial test at last (when tempest runs in a clean env like in the gate)\n\n\u003e \n\u003e 2) Whether there is a way how to make the ordering more permanent (so the serial tests always run at the end). I think that if we merge the patch as it is right now, we will give up the scheduling feature of stestr which uses the logs from previous runs to optimize the usage of workers [1].\n\nI don\u0027t think so. You mentioned previously that at the second run in the same env stestr will reorder the tests base on the logs of previous runs. So in a local env you keep the stestr optimization on and loose the serial optimization. In the gate we always run tempest in a clean env so there we never have stestr run optimization as there is no logs from previous run, in return we would have the serial optimization working.\n\nI think this is a fair compromise to be able to test system level resources in tempest like host aggregates. I don\u0027t see much alternatives how to test them and keep running tempest in parallel.\n\n\u003e \n\u003e [1] https://stestr.readthedocs.io/en/latest/MANUAL.html#test-scheduling","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"25c1bc021886ae80bf4ad42875717542720bd0ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"8f3a59c2_e4302348","in_reply_to":"1cf6e6ce_e2333ba5","updated":"2022-07-04 10:03:21.000000000","message":"regarding \"zzz_serial\" to \"serial\" i think no the reason for the zzz_ prefix is because of how the test order is determined and that will force it to be last.\n\n\"Whether there is a way how to make the ordering more permanent (so the serial tests always run at the end).\"\n\nthat is what the zzz_ prefix does.\n\nfrom a ci perspective the test runs are always the first run so stestr never has previous info to use to imporve subsequent runs so i dont see how this is relevent in the context of ci. i dont think it will degrade that but if it did it woudl only be loclaly not in the ci.","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"5774e3f5_ee921a31","in_reply_to":"3545655c_7c85ddc4","updated":"2022-11-24 09:18:47.000000000","message":"your right, i thought it might be a feature as it introduces a new mode for running tests, but what you\u0027re saying makes sense, thanks","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"e43614bee498345b83706ec0897e7df27886961e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"5440048a_804d8379","in_reply_to":"3a5f33f7_63a57bbe","updated":"2022-11-18 12:42:12.000000000","message":"I forgot to mention a releasenote, could you please write one as this is a new feature and it would be beneficial to have a note of that in the release documentation, thanks","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4dca6f13f664f554a4b05cb484a650c9ca56c6a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"3545655c_7c85ddc4","in_reply_to":"5440048a_804d8379","updated":"2022-11-18 13:24:04.000000000","message":"this is not really a feature its part of a bug fix \nhttps://bugs.launchpad.net/nova/+bug/1907775\n\nthe instablity of the tests as currently wriiten were causing a high failure rates in our ci. \n\nthe fact some of the test were racing highlighted the bug in nova but the test were also incorrect which is what this was trying to solve.","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6b022e88973cef8d500fb1f9cd4c136dd5ee3683","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"0f4ddcd4_f9ab00a9","in_reply_to":"8f3a59c2_e4302348","updated":"2022-08-15 12:58:08.000000000","message":"I also don\u0027t like zzz_ prefix, but as I see it is the way to make these tests run after all other tests, quite easy to understand for new developers if they need similar execution.","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"94cdccbd_a7e8e241","updated":"2022-11-24 09:18:47.000000000","message":"I only rebased this and fixed the documentation issues in order to push this forward ","commit_id":"66e69e44a18474ed3e9e2075069571691dee528f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0f2a24d2965159495e83ad1491092e8dbc7a3274","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"c710efef_18a0756d","in_reply_to":"94cdccbd_a7e8e241","updated":"2022-11-25 08:55:37.000000000","message":"Thanks, I just came back to here to address your comments :-)","commit_id":"66e69e44a18474ed3e9e2075069571691dee528f"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"fd46e157e82cbf453229cc3131f98746506254c6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"d8fd0b57_c9aedd96","in_reply_to":"c710efef_18a0756d","updated":"2022-11-25 10:08:55.000000000","message":"I hope I didn\u0027t intrude, I figured I could fast forward this since you\u0027ve waited too long for the review .. I\u0027d like to get this merged before we release a new tag (which should happen soon)","commit_id":"66e69e44a18474ed3e9e2075069571691dee528f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bdde53fbe0895d284d74f5091ec41973c54390b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"eab717dc_6055e6be","updated":"2023-01-11 17:39:31.000000000","message":"@gibi, thanks a lot for the idea and it looks good to me. Also, sorry for not reviewing it early which we should.\n\nOverall I like to idea, a few comments inline please check if those make sense? ","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"8c76a6919e1c1f4fbb89f0fb2404e92d272514b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"a5b1f4a1_faad05be","updated":"2022-12-02 11:23:02.000000000","message":"Looks good to me! The patch works. I have just two things on my mind:\n\n1) I think that we should name the folder \"serial\" instead o \"zzz_serial\" and place a comment here [1] to inform future maintainers that the \"serial\" folder should always be last in alphabetical order. There are only two root test folders in tempest \"api\" + \"scenario\" so the \"serial\" folder without the \"zzz_\" prefix would still be last in alphabetical order.\n\n2) We should document more the reason why the tests are moved to the \"serial\" folder. I would add to each class that is moved to the \"serial\" folder a short comment explaining why it needs to be isolated from the rest of the tests. It might help future maintainers to decide whether a test can be removed from the \"serial\" folder if some circumstances in tempest change. And I would also update the documentation so that it explains the need to add a comment to the class when moving it to the \"serial\" folder.\n\n[1] https://opendev.org/openstack/tempest/src/commit/96cd444cac4a0d2d1db619365f645a60c3de73a5/tempest/test_discover/test_discover.py#L27","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"79b9afeb1729c23d7c62afdbb99eb95124fbc980","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"82fb7eb9_ec2cdcb6","updated":"2022-11-28 08:51:47.000000000","message":"lgtm, i tested patchset 16 and it worked as expected, since then it was only rebased and a few doc issues got addressed","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"dee4105cf8d737b5995e9faccc5f877ea4a0bf86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"c8ba2fbc_6e76301a","updated":"2022-11-25 09:05:45.000000000","message":"recheck\nSSH timeout seems unrelated","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"4a10a9f65d7dc43e2d816669088e5af533a24b6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"ab8fb65f_a0f4f82d","updated":"2023-01-17 09:44:41.000000000","message":"Locally I can\u0027t see merge conflict.....","commit_id":"b752669efee4aa4da4c74996637b084af4f909c0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"aedd82a8c8a9bcb634c0b364e7c85b37562dc5bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"960eb8b9_380eb141","updated":"2023-01-16 17:46:18.000000000","message":"as noted on the #openstack-qa irc this does appeare to work based on \n\nhttps://zuul.opendev.org/t/openstack/build/cf236899fbc741058588dc27bac2eb00/log/job-output.txt#21057-21087\n\nhowever that is because serial_test happens to be later then any other module\n\nif we had a teardown_test or any other alpahbetical later module then the serial test would not run last\n\nthis woudl not cause test failures but would reduce the effective concurancy.\n\nremoving -1 as its functional but not nessisarly optimal.\n","commit_id":"b752669efee4aa4da4c74996637b084af4f909c0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca0162b0cd6c5f9a78cd21a81a3754a9a0015c6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"78a2ec6d_9921bace","updated":"2023-01-16 12:16:39.000000000","message":"i have rechecked https://review.opendev.org/c/openstack/nova/+/821423 so that should validate if the new revision works or not.","commit_id":"b752669efee4aa4da4c74996637b084af4f909c0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0e535f7fbea1064f16ea3f7879aa98e96f4beb90","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"c37009b3_1abd8fe3","updated":"2023-01-17 16:17:27.000000000","message":"interop-tempest-consistency is broken job, let me remove it until it is fixed","commit_id":"b752669efee4aa4da4c74996637b084af4f909c0"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fffe9ab7123016dd1f23118cfe1a0edd0935a370","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"3fcdd544_76b21e99","updated":"2023-01-17 09:43:29.000000000","message":"recheck\ntimeouted jobs results was green, and failures don\u0027t seem relevant","commit_id":"b752669efee4aa4da4c74996637b084af4f909c0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"801a05e274fdd997cb76eff5f9b89de7df7ba567","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"840507ee_a959a8db","updated":"2023-01-17 00:43:04.000000000","message":"recheck connection timeout in volume attached test\n","commit_id":"b752669efee4aa4da4c74996637b084af4f909c0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8ba9b7b95e1c0454743875814d12551b7b649ade","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"374d545e_82784829","updated":"2023-01-16 12:04:49.000000000","message":"the latest revison pushed by lajos will likely break things as the folder was renamed","commit_id":"b752669efee4aa4da4c74996637b084af4f909c0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1ef878a82798badecf21faeaed978b2ba249a0e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"a95847ed_505bd0a9","updated":"2023-01-17 19:05:46.000000000","message":"rebased on top of gate fix 259a6a730b21c583acf817ba05253ec8614e9e18","commit_id":"365e53813b29cf0e786bca2f838403b2bc17f83d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"51ddb4b1d4ea31e40e573301ae7b80cc7024271d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"198f6fcf_b7dea46a","updated":"2023-01-17 23:39:01.000000000","message":"recheck stable/zed job timeout","commit_id":"365e53813b29cf0e786bca2f838403b2bc17f83d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"fb5a01487d142f40909f8c33bc5ed4f2c48d6ffc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"7d22352a_62401ed1","updated":"2023-01-18 02:45:39.000000000","message":"this lgtm, things are running fine.\n\nNeed to rebase on master as gate is fixed by https://review.opendev.org/c/openinfra/interop/+/870878","commit_id":"365e53813b29cf0e786bca2f838403b2bc17f83d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"f27ede7218cac9fcded8c959fd4924ef26abae3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"8fd1f04c_e44cf16f","updated":"2023-01-18 10:36:48.000000000","message":"recheck\ntest_get_object_after_expiry_time failure in tempest-full-py3 seems irrelevant","commit_id":"dfb304355b46882696ef26386637836577be8db7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"19dec72ad7ec16589ccbcdd563a2d891e8638894","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"b480df0d_78970724","updated":"2023-01-20 07:59:37.000000000","message":"recheck\ntest_list_get_volume_attachments failed with ssh timeout","commit_id":"dfb304355b46882696ef26386637836577be8db7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5a2637ed8817fd5285ea57b908db7823427998f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"f854a0ee_2f36394b","updated":"2023-01-19 09:01:46.000000000","message":"recheck\ntest_snapshot_create_delete_with_volume_in_use failure is irrelevant","commit_id":"dfb304355b46882696ef26386637836577be8db7"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"19b57b7cceda2e98e3c471ff289efd1ff3d95166","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"1fc9229a_844c792e","updated":"2023-01-18 23:52:47.000000000","message":"recheck different timeout errors","commit_id":"dfb304355b46882696ef26386637836577be8db7"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"a19fec47bbb63b17b2e756d61b09574f9fc6f700","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"c43ad266_9d9616da","updated":"2023-01-18 14:05:47.000000000","message":"recheck multinode again :/","commit_id":"dfb304355b46882696ef26386637836577be8db7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d29334562646d10d623504e1a916e31a0e4ea44f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"0721e5e7_ef4a124e","updated":"2023-01-19 16:06:20.000000000","message":"recheck multinode ssh timeout","commit_id":"dfb304355b46882696ef26386637836577be8db7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a3575d97cc6bb1f77280e41d6eb4ac45a9beba3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"240dabad_71e32b77","updated":"2023-01-20 23:38:08.000000000","message":"recheck ssh timout","commit_id":"dfb304355b46882696ef26386637836577be8db7"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"3b34208ece0c4f55850068330560d50266e2182f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"93b8bf23_b19fb407","updated":"2023-01-23 13:58:24.000000000","message":"recheck timeout, tempest-full-py3 has a good passing rate, it was a random failure","commit_id":"dfb304355b46882696ef26386637836577be8db7"}],"HACKING.rst":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"1b01d7499431ff5a3f072560caac4e56ef9ed36b","unresolved":true,"context_lines":[{"line_number":323,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":324,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":325,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":326,"context_line":"  run a set of tests separately from potential all other tests then"},{"line_number":327,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":328,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"},{"line_number":329,"context_line":"  of the test class holding the tests that are need to run separately from the"}],"source_content_type":"text/x-rst","patch_set":13,"id":"b101f715_b8463577","line":326,"range":{"start_line":326,"start_character":37,"end_line":326,"end_character":46},"updated":"2022-04-25 13:33:48.000000000","message":"nit: potentially","commit_id":"8cf537f4d1a81774b26a001798d56a8c91a5df8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"5b8fc130d0fe5a34408e65820faf6bde82315f51","unresolved":false,"context_lines":[{"line_number":323,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":324,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":325,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":326,"context_line":"  run a set of tests separately from potential all other tests then"},{"line_number":327,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":328,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"},{"line_number":329,"context_line":"  of the test class holding the tests that are need to run separately from the"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7bac2945_4d9ab72c","line":326,"range":{"start_line":326,"start_character":37,"end_line":326,"end_character":46},"in_reply_to":"b101f715_b8463577","updated":"2022-04-27 11:33:43.000000000","message":"Done","commit_id":"8cf537f4d1a81774b26a001798d56a8c91a5df8c"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"- If the execution of a set of tests is required to be serialized then locking"},{"line_number":324,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":325,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1ba7e617_23170cfd","line":325,"range":{"start_line":325,"start_character":17,"end_line":325,"end_character":36},"updated":"2022-11-18 10:42:55.000000000","message":"However, LockFixture","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"- If the execution of a set of tests is required to be serialized then locking"},{"line_number":324,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":325,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"e913d1d1_ed4651cf","line":325,"range":{"start_line":325,"start_character":42,"end_line":325,"end_character":46},"updated":"2022-11-18 10:42:55.000000000","message":"helps","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"- If the execution of a set of tests is required to be serialized then locking"},{"line_number":324,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":325,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"988884a7_91460873","line":325,"range":{"start_line":325,"start_character":17,"end_line":325,"end_character":36},"in_reply_to":"1ba7e617_23170cfd","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"- If the execution of a set of tests is required to be serialized then locking"},{"line_number":324,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":325,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"33f03467_2e8ea8af","line":325,"range":{"start_line":325,"start_character":42,"end_line":325,"end_character":46},"in_reply_to":"e913d1d1_ed4651cf","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":323,"context_line":"- If the execution of a set of tests is required to be serialized then locking"},{"line_number":324,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":325,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":329,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"}],"source_content_type":"text/x-rst","patch_set":16,"id":"91de4aa2_bf5b1ed7","line":326,"range":{"start_line":326,"start_character":45,"end_line":326,"end_character":47},"updated":"2022-11-18 10:42:55.000000000","message":"On","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":323,"context_line":"- If the execution of a set of tests is required to be serialized then locking"},{"line_number":324,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":325,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":329,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"}],"source_content_type":"text/x-rst","patch_set":16,"id":"6863197b_a824935d","line":326,"range":{"start_line":326,"start_character":58,"end_line":326,"end_character":62},"updated":"2022-11-18 10:42:55.000000000","message":"hand,","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":323,"context_line":"- If the execution of a set of tests is required to be serialized then locking"},{"line_number":324,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":325,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":329,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"}],"source_content_type":"text/x-rst","patch_set":16,"id":"250447fb_c96f4ff1","line":326,"range":{"start_line":326,"start_character":58,"end_line":326,"end_character":62},"in_reply_to":"6863197b_a824935d","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":323,"context_line":"- If the execution of a set of tests is required to be serialized then locking"},{"line_number":324,"context_line":"  can be used to perform this. See usage of ``LockFixture`` for examples of"},{"line_number":325,"context_line":"  using locking. However LockFixture only help if you want to separate the"},{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":329,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5486e136_b4d8a491","line":326,"range":{"start_line":326,"start_character":45,"end_line":326,"end_character":47},"in_reply_to":"91de4aa2_bf5b1ed7","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":329,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"},{"line_number":330,"context_line":"  of the test class holding the tests that are need to run separately from the"},{"line_number":331,"context_line":"  potentially parallel test set. See more in :ref:`tempest_test_writing`."},{"line_number":332,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"e1b17245_63268cd0","line":329,"range":{"start_line":329,"start_character":27,"end_line":329,"end_character":31},"updated":"2022-11-18 10:42:55.000000000","message":"case,","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":326,"context_line":"  execution of two small sets of test cases. In the other hand if you need to"},{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":329,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"},{"line_number":330,"context_line":"  of the test class holding the tests that are need to run separately from the"},{"line_number":331,"context_line":"  potentially parallel test set. See more in :ref:`tempest_test_writing`."},{"line_number":332,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"9918041c_761a789b","line":329,"range":{"start_line":329,"start_character":27,"end_line":329,"end_character":31},"in_reply_to":"e1b17245_63268cd0","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":329,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"},{"line_number":330,"context_line":"  of the test class holding the tests that are need to run separately from the"},{"line_number":331,"context_line":"  potentially parallel test set. See more in :ref:`tempest_test_writing`."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"a6ff7f88_c49c05a5","line":330,"range":{"start_line":330,"start_character":38,"end_line":330,"end_character":58},"updated":"2022-11-18 10:42:55.000000000","message":"\u0027that need to run\u0027 or \u0027that are needed to run\u0027","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":327,"context_line":"  run a set of tests separately from potentially all other tests then"},{"line_number":328,"context_line":"  ``LockFixture`` does not scale as you would need to take the lock in all the"},{"line_number":329,"context_line":"  other tests too. In this case you can use the ``@serial`` decorator on top"},{"line_number":330,"context_line":"  of the test class holding the tests that are need to run separately from the"},{"line_number":331,"context_line":"  potentially parallel test set. See more in :ref:`tempest_test_writing`."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"d7e130de_1b84d3e1","line":330,"range":{"start_line":330,"start_character":38,"end_line":330,"end_character":58},"in_reply_to":"a6ff7f88_c49c05a5","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"}],"doc/source/write_tests.rst":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":256,"context_line":"worth checking the immediate parent for what is set to determine if your"},{"line_number":257,"context_line":"class needs to override that setting."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Running some test in serial"},{"line_number":260,"context_line":"---------------------------"},{"line_number":261,"context_line":"Tempest potentially run test cases in parallel, depending on the configuration."},{"line_number":262,"context_line":"However sometime you need to make sure that tests are not interfering with"}],"source_content_type":"text/x-rst","patch_set":16,"id":"474ed12b_6ced0028","line":259,"range":{"start_line":259,"start_character":13,"end_line":259,"end_character":17},"updated":"2022-11-18 10:42:55.000000000","message":"tests","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":256,"context_line":"worth checking the immediate parent for what is set to determine if your"},{"line_number":257,"context_line":"class needs to override that setting."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Running some test in serial"},{"line_number":260,"context_line":"---------------------------"},{"line_number":261,"context_line":"Tempest potentially run test cases in parallel, depending on the configuration."},{"line_number":262,"context_line":"However sometime you need to make sure that tests are not interfering with"}],"source_content_type":"text/x-rst","patch_set":16,"id":"2eaa3d47_f2e8b4a7","line":259,"range":{"start_line":259,"start_character":13,"end_line":259,"end_character":17},"in_reply_to":"474ed12b_6ced0028","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Running some test in serial"},{"line_number":260,"context_line":"---------------------------"},{"line_number":261,"context_line":"Tempest potentially run test cases in parallel, depending on the configuration."},{"line_number":262,"context_line":"However sometime you need to make sure that tests are not interfering with"},{"line_number":263,"context_line":"each other via OpenStack resources. Tempest creates separate projects for each"},{"line_number":264,"context_line":"test class to separate project based resources between test cases."}],"source_content_type":"text/x-rst","patch_set":16,"id":"544de7a5_3877c524","line":261,"range":{"start_line":261,"start_character":20,"end_line":261,"end_character":23},"updated":"2022-11-18 10:42:55.000000000","message":"runs","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Running some test in serial"},{"line_number":260,"context_line":"---------------------------"},{"line_number":261,"context_line":"Tempest potentially run test cases in parallel, depending on the configuration."},{"line_number":262,"context_line":"However sometime you need to make sure that tests are not interfering with"},{"line_number":263,"context_line":"each other via OpenStack resources. Tempest creates separate projects for each"},{"line_number":264,"context_line":"test class to separate project based resources between test cases."}],"source_content_type":"text/x-rst","patch_set":16,"id":"35212b18_eb4f79ad","line":261,"range":{"start_line":261,"start_character":20,"end_line":261,"end_character":23},"in_reply_to":"544de7a5_3877c524","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":259,"context_line":"Running some test in serial"},{"line_number":260,"context_line":"---------------------------"},{"line_number":261,"context_line":"Tempest potentially run test cases in parallel, depending on the configuration."},{"line_number":262,"context_line":"However sometime you need to make sure that tests are not interfering with"},{"line_number":263,"context_line":"each other via OpenStack resources. Tempest creates separate projects for each"},{"line_number":264,"context_line":"test class to separate project based resources between test cases."},{"line_number":265,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"a013bece_6d5754d2","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":16},"updated":"2022-11-18 10:42:55.000000000","message":"However, sometimes","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":259,"context_line":"Running some test in serial"},{"line_number":260,"context_line":"---------------------------"},{"line_number":261,"context_line":"Tempest potentially run test cases in parallel, depending on the configuration."},{"line_number":262,"context_line":"However sometime you need to make sure that tests are not interfering with"},{"line_number":263,"context_line":"each other via OpenStack resources. Tempest creates separate projects for each"},{"line_number":264,"context_line":"test class to separate project based resources between test cases."},{"line_number":265,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"6042c551_d17faa0f","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":16},"in_reply_to":"a013bece_6d5754d2","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":263,"context_line":"each other via OpenStack resources. Tempest creates separate projects for each"},{"line_number":264,"context_line":"test class to separate project based resources between test cases."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"If your tests uses resources outside of projects, e.g. host aggregates. Then"},{"line_number":267,"context_line":"you might need to explicitly separate interfering test cases. If you only need"},{"line_number":268,"context_line":"to separate a small set of testcases from each other then you can use the"},{"line_number":269,"context_line":"``LockFixture``."}],"source_content_type":"text/x-rst","patch_set":16,"id":"3de9b76e_a7d79784","line":266,"range":{"start_line":266,"start_character":60,"end_line":266,"end_character":76},"updated":"2022-11-18 10:42:55.000000000","message":"aggregates then","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":263,"context_line":"each other via OpenStack resources. Tempest creates separate projects for each"},{"line_number":264,"context_line":"test class to separate project based resources between test cases."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"If your tests uses resources outside of projects, e.g. host aggregates. Then"},{"line_number":267,"context_line":"you might need to explicitly separate interfering test cases. If you only need"},{"line_number":268,"context_line":"to separate a small set of testcases from each other then you can use the"},{"line_number":269,"context_line":"``LockFixture``."}],"source_content_type":"text/x-rst","patch_set":16,"id":"da49c2fe_d4e47e48","line":266,"range":{"start_line":266,"start_character":14,"end_line":266,"end_character":18},"updated":"2022-11-18 10:42:55.000000000","message":"use","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":263,"context_line":"each other via OpenStack resources. Tempest creates separate projects for each"},{"line_number":264,"context_line":"test class to separate project based resources between test cases."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"If your tests uses resources outside of projects, e.g. host aggregates. Then"},{"line_number":267,"context_line":"you might need to explicitly separate interfering test cases. If you only need"},{"line_number":268,"context_line":"to separate a small set of testcases from each other then you can use the"},{"line_number":269,"context_line":"``LockFixture``."}],"source_content_type":"text/x-rst","patch_set":16,"id":"df030d87_1850a5c2","line":266,"range":{"start_line":266,"start_character":60,"end_line":266,"end_character":76},"in_reply_to":"3de9b76e_a7d79784","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":263,"context_line":"each other via OpenStack resources. Tempest creates separate projects for each"},{"line_number":264,"context_line":"test class to separate project based resources between test cases."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"If your tests uses resources outside of projects, e.g. host aggregates. Then"},{"line_number":267,"context_line":"you might need to explicitly separate interfering test cases. If you only need"},{"line_number":268,"context_line":"to separate a small set of testcases from each other then you can use the"},{"line_number":269,"context_line":"``LockFixture``."}],"source_content_type":"text/x-rst","patch_set":16,"id":"1bba58b0_c8eb721b","line":266,"range":{"start_line":266,"start_character":14,"end_line":266,"end_character":18},"in_reply_to":"da49c2fe_d4e47e48","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":268,"context_line":"to separate a small set of testcases from each other then you can use the"},{"line_number":269,"context_line":"``LockFixture``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"However in some cases a small set of test needs to be run independently from"},{"line_number":272,"context_line":"the rest of the test cases. For example some of the host aggregate and"},{"line_number":273,"context_line":"availability zone testing needs compute nodes without any running nova server"},{"line_number":274,"context_line":"to be able to move compute hosts between availability zones. But many tempest"}],"source_content_type":"text/x-rst","patch_set":16,"id":"b6da9bef_bced5efc","line":271,"range":{"start_line":271,"start_character":1,"end_line":271,"end_character":10},"updated":"2022-11-18 10:42:55.000000000","message":"However, in","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":268,"context_line":"to separate a small set of testcases from each other then you can use the"},{"line_number":269,"context_line":"``LockFixture``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"However in some cases a small set of test needs to be run independently from"},{"line_number":272,"context_line":"the rest of the test cases. For example some of the host aggregate and"},{"line_number":273,"context_line":"availability zone testing needs compute nodes without any running nova server"},{"line_number":274,"context_line":"to be able to move compute hosts between availability zones. But many tempest"}],"source_content_type":"text/x-rst","patch_set":16,"id":"8b977c2c_bcb219ab","line":271,"range":{"start_line":271,"start_character":37,"end_line":271,"end_character":41},"updated":"2022-11-18 10:42:55.000000000","message":"tests","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":268,"context_line":"to separate a small set of testcases from each other then you can use the"},{"line_number":269,"context_line":"``LockFixture``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"However in some cases a small set of test needs to be run independently from"},{"line_number":272,"context_line":"the rest of the test cases. For example some of the host aggregate and"},{"line_number":273,"context_line":"availability zone testing needs compute nodes without any running nova server"},{"line_number":274,"context_line":"to be able to move compute hosts between availability zones. But many tempest"}],"source_content_type":"text/x-rst","patch_set":16,"id":"e4fe9067_b0b51a34","line":271,"range":{"start_line":271,"start_character":37,"end_line":271,"end_character":41},"in_reply_to":"8b977c2c_bcb219ab","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":268,"context_line":"to separate a small set of testcases from each other then you can use the"},{"line_number":269,"context_line":"``LockFixture``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"However in some cases a small set of test needs to be run independently from"},{"line_number":272,"context_line":"the rest of the test cases. For example some of the host aggregate and"},{"line_number":273,"context_line":"availability zone testing needs compute nodes without any running nova server"},{"line_number":274,"context_line":"to be able to move compute hosts between availability zones. But many tempest"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ebb6e6a2_38f958e9","line":271,"range":{"start_line":271,"start_character":1,"end_line":271,"end_character":10},"in_reply_to":"b6da9bef_bced5efc","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":269,"context_line":"``LockFixture``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"However in some cases a small set of test needs to be run independently from"},{"line_number":272,"context_line":"the rest of the test cases. For example some of the host aggregate and"},{"line_number":273,"context_line":"availability zone testing needs compute nodes without any running nova server"},{"line_number":274,"context_line":"to be able to move compute hosts between availability zones. But many tempest"},{"line_number":275,"context_line":"tests start one or more nova servers. In this scenario you can mark the small"}],"source_content_type":"text/x-rst","patch_set":16,"id":"df45d7b6_884457bd","line":272,"range":{"start_line":272,"start_character":32,"end_line":272,"end_character":44},"updated":"2022-11-18 10:42:55.000000000","message":"example, some","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":269,"context_line":"``LockFixture``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"However in some cases a small set of test needs to be run independently from"},{"line_number":272,"context_line":"the rest of the test cases. For example some of the host aggregate and"},{"line_number":273,"context_line":"availability zone testing needs compute nodes without any running nova server"},{"line_number":274,"context_line":"to be able to move compute hosts between availability zones. But many tempest"},{"line_number":275,"context_line":"tests start one or more nova servers. In this scenario you can mark the small"}],"source_content_type":"text/x-rst","patch_set":16,"id":"345dc935_edb3f139","line":272,"range":{"start_line":272,"start_character":32,"end_line":272,"end_character":44},"in_reply_to":"df45d7b6_884457bd","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":275,"context_line":"tests start one or more nova servers. In this scenario you can mark the small"},{"line_number":276,"context_line":"set of tests that needs to be independent from the rest with the ``@serial``"},{"line_number":277,"context_line":"class decorator. This will make sure that even if tempest is configured to run"},{"line_number":278,"context_line":"the test in parallel the tests in the marked test class will always be executed"},{"line_number":279,"context_line":"separately from the rest of the test cases."},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"Please note that due to test ordering optimization reasons test cases marked"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1953d7a9_e2886bc5","line":278,"range":{"start_line":278,"start_character":4,"end_line":278,"end_character":8},"updated":"2022-11-18 10:42:55.000000000","message":"tests","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":275,"context_line":"tests start one or more nova servers. In this scenario you can mark the small"},{"line_number":276,"context_line":"set of tests that needs to be independent from the rest with the ``@serial``"},{"line_number":277,"context_line":"class decorator. This will make sure that even if tempest is configured to run"},{"line_number":278,"context_line":"the test in parallel the tests in the marked test class will always be executed"},{"line_number":279,"context_line":"separately from the rest of the test cases."},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"Please note that due to test ordering optimization reasons test cases marked"}],"source_content_type":"text/x-rst","patch_set":16,"id":"644c47be_e438f1a3","line":278,"range":{"start_line":278,"start_character":4,"end_line":278,"end_character":8},"in_reply_to":"1953d7a9_e2886bc5","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":279,"context_line":"separately from the rest of the test cases."},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"Please note that due to test ordering optimization reasons test cases marked"},{"line_number":282,"context_line":"for ``@serial`` execution needs to be put under ``tempest/zzz_serial``"},{"line_number":283,"context_line":"directory. This will ensure that the serial tests will block the parallel tests"},{"line_number":284,"context_line":"in the least amount of time."},{"line_number":285,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"72ee7b5c_f2bedcfc","line":282,"range":{"start_line":282,"start_character":26,"end_line":282,"end_character":31},"updated":"2022-11-18 10:42:55.000000000","message":"need","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":279,"context_line":"separately from the rest of the test cases."},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"Please note that due to test ordering optimization reasons test cases marked"},{"line_number":282,"context_line":"for ``@serial`` execution needs to be put under ``tempest/zzz_serial``"},{"line_number":283,"context_line":"directory. This will ensure that the serial tests will block the parallel tests"},{"line_number":284,"context_line":"in the least amount of time."},{"line_number":285,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a378718_360b035c","line":282,"range":{"start_line":282,"start_character":26,"end_line":282,"end_character":31},"in_reply_to":"72ee7b5c_f2bedcfc","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"}],"tempest/test.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bf47a56b82a1619f51be39a25d1c8179f8448a95","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def serial(cls):"},{"line_number":77,"context_line":"    \"\"\"A decorator to mark a test class for serial execution\"\"\""},{"line_number":78,"context_line":"    cls.__serial \u003d True"},{"line_number":79,"context_line":"    return cls"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"f5b76295_21098657","line":77,"updated":"2021-12-15 12:56:18.000000000","message":"i wonder if you need to do this something like \ndef serial(Cls):\n    class NewCls(Cls):\n        def __init__(self,*args,**kwargs):\n            self.__serial \u003d True\n            super().__init__(*args,**kwargs)\n    return NewCls\n\nthat said i think you decorator should more or less work too.","commit_id":"be64a32a122b4bbbd661110fff14b4aaaecb205f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def serial(cls):"},{"line_number":77,"context_line":"    \"\"\"A decorator to mark a test class for serial execution\"\"\""},{"line_number":78,"context_line":"    cls.__serial \u003d True"},{"line_number":79,"context_line":"    return cls"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9487f4c3_9295150c","line":77,"in_reply_to":"9e8bfc75_54c8e618","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"be64a32a122b4bbbd661110fff14b4aaaecb205f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"402bb2485f69b54da23cb7dfe170c38767a6d7a4","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def serial(cls):"},{"line_number":77,"context_line":"    \"\"\"A decorator to mark a test class for serial execution\"\"\""},{"line_number":78,"context_line":"    cls.__serial \u003d True"},{"line_number":79,"context_line":"    return cls"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9e8bfc75_54c8e618","line":77,"in_reply_to":"f5b76295_21098657","updated":"2021-12-15 13:08:28.000000000","message":"no need for a wrapper class, it is totally OK for a decorator to return the same class as it decorates. The pattern you propose is coming from the function decorators. Changing a behavior of a function often means wrapping the function into another function to manipulate args and return values.","commit_id":"be64a32a122b4bbbd661110fff14b4aaaecb205f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"511be37303f9438dc66f7cc8682c1265b1e0e42c","unresolved":true,"context_lines":[{"line_number":94,"context_line":"            \"tempest-serial-rw-reader-lock\")"},{"line_number":95,"context_line":"        self.global_lock \u003d lockutils.external_lock("},{"line_number":96,"context_line":"            \"tempest-serial-rw-global-lock\")"},{"line_number":97,"context_line":"        self.nr_of_readers \u003d 0"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def acquire_read_lock(self):"},{"line_number":100,"context_line":"        with self.reader_lock:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7fb18df4_c9307d07","line":97,"updated":"2021-12-15 14:11:50.000000000","message":"We have the deadlock most probably because this should have been a shared integers between the processes using the lock. Obviously it isn\u0027t now.","commit_id":"be64a32a122b4bbbd661110fff14b4aaaecb205f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f663f72414a9180d2ba7696a970ed58c0891fd85","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            \"tempest-serial-rw-reader-lock\")"},{"line_number":95,"context_line":"        self.global_lock \u003d lockutils.external_lock("},{"line_number":96,"context_line":"            \"tempest-serial-rw-global-lock\")"},{"line_number":97,"context_line":"        self.nr_of_readers \u003d 0"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def acquire_read_lock(self):"},{"line_number":100,"context_line":"        with self.reader_lock:"}],"source_content_type":"text/x-python","patch_set":2,"id":"e1fc6e75_eb9dce80","line":97,"in_reply_to":"35582c35_6a085c5a","updated":"2021-12-15 17:47:57.000000000","message":"ah yes this is currently per process but it needs to be avaiabel to all test runners.","commit_id":"be64a32a122b4bbbd661110fff14b4aaaecb205f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2cc3ba112656b623ea699e7fb25c96c5bc7d85e0","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            \"tempest-serial-rw-reader-lock\")"},{"line_number":95,"context_line":"        self.global_lock \u003d lockutils.external_lock("},{"line_number":96,"context_line":"            \"tempest-serial-rw-global-lock\")"},{"line_number":97,"context_line":"        self.nr_of_readers \u003d 0"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def acquire_read_lock(self):"},{"line_number":100,"context_line":"        with self.reader_lock:"}],"source_content_type":"text/x-python","patch_set":2,"id":"35582c35_6a085c5a","line":97,"in_reply_to":"7fb18df4_c9307d07","updated":"2021-12-15 16:32:48.000000000","message":"Done. I more and more want to replace the whole home rolled lock with a fasteners one :/","commit_id":"be64a32a122b4bbbd661110fff14b4aaaecb205f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"402bb2485f69b54da23cb7dfe170c38767a6d7a4","unresolved":true,"context_lines":[{"line_number":195,"context_line":"        cls._teardowns \u003d []"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    @classmethod"},{"line_number":198,"context_line":"    def is_serial_execution_requested(cls):"},{"line_number":199,"context_line":"        return cls.__serial"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    @classmethod"},{"line_number":202,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"a7cd7a7e_a8c5c154","line":199,"range":{"start_line":198,"start_character":0,"end_line":199,"end_character":27},"updated":"2021-12-15 13:08:28.000000000","message":"This is the problem. I assumed that cls.__serial will return the __serial field of the actual class passed to this function. But due to __ it does not. It returns BaseTestCase.__serial. So moving away from dunder fixes the decorator and is_serial_execution_requested. So now I can move forward to the actual deadlock.","commit_id":"be64a32a122b4bbbd661110fff14b4aaaecb205f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2cc3ba112656b623ea699e7fb25c96c5bc7d85e0","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        cls._teardowns \u003d []"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    @classmethod"},{"line_number":198,"context_line":"    def is_serial_execution_requested(cls):"},{"line_number":199,"context_line":"        return cls.__serial"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    @classmethod"},{"line_number":202,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ee6c0ec_afbd6704","line":199,"range":{"start_line":198,"start_character":0,"end_line":199,"end_character":27},"in_reply_to":"a7cd7a7e_a8c5c154","updated":"2021-12-15 16:32:48.000000000","message":"Done","commit_id":"be64a32a122b4bbbd661110fff14b4aaaecb205f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f663f72414a9180d2ba7696a970ed58c0891fd85","unresolved":true,"context_lines":[{"line_number":115,"context_line":"            \u0027tempest-serial-rw-nr-of-readers\u0027"},{"line_number":116,"context_line":"        )"},{"line_number":117,"context_line":"        with self.reader_lock:"},{"line_number":118,"context_line":"            if self.global_lock.acquire(timeout\u003d1):"},{"line_number":119,"context_line":"                # no other readers in the system, safe to initialize the reader"},{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fb88cf9b_463b5834","line":118,"range":{"start_line":118,"start_character":20,"end_line":118,"end_character":31},"updated":"2021-12-15 17:47:57.000000000","message":"ok we use the global lock to ensure that only one class will initalise this.\n\nyou still might have a bug here however.\nyou shoudl only set it to 0 if it does not exist right?","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            \u0027tempest-serial-rw-nr-of-readers\u0027"},{"line_number":116,"context_line":"        )"},{"line_number":117,"context_line":"        with self.reader_lock:"},{"line_number":118,"context_line":"            if self.global_lock.acquire(timeout\u003d1):"},{"line_number":119,"context_line":"                # no other readers in the system, safe to initialize the reader"},{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":3,"id":"779c1dc9_d7ec887d","line":118,"range":{"start_line":118,"start_character":20,"end_line":118,"end_character":31},"in_reply_to":"b6959881_2a4f453c","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d7f537f3f7701c1de4e5f87854a1db78641fd25","unresolved":true,"context_lines":[{"line_number":115,"context_line":"            \u0027tempest-serial-rw-nr-of-readers\u0027"},{"line_number":116,"context_line":"        )"},{"line_number":117,"context_line":"        with self.reader_lock:"},{"line_number":118,"context_line":"            if self.global_lock.acquire(timeout\u003d1):"},{"line_number":119,"context_line":"                # no other readers in the system, safe to initialize the reader"},{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":3,"id":"b6959881_2a4f453c","line":118,"range":{"start_line":118,"start_character":20,"end_line":118,"end_character":31},"in_reply_to":"fb88cf9b_463b5834","updated":"2021-12-15 19:00:53.000000000","message":"The global lock is not held by others means:\na) we are the first process initializing the lock\nb) other process initialized the lock already but neither reader nor writer is running\n\nBoth cases writing 0 to the file is a valid. In case of b) we might overwrite an file that already holds 0, but I don\u0027t see how that is a bug. It is more like idempotency. \n\nSo what is the scenario that causing a bug?","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f663f72414a9180d2ba7696a970ed58c0891fd85","unresolved":true,"context_lines":[{"line_number":118,"context_line":"            if self.global_lock.acquire(timeout\u003d1):"},{"line_number":119,"context_line":"                # no other readers in the system, safe to initialize the reader"},{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":122,"context_line":"                    f.writelines([str(0)])"},{"line_number":123,"context_line":"                    LOG.debug("},{"line_number":124,"context_line":"                        \u0027InterProcessReaderWriterLock inited nr_of_readers on \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"cb5a1edf_a8809eb7","line":121,"range":{"start_line":121,"start_character":16,"end_line":121,"end_character":61},"updated":"2021-12-15 17:47:57.000000000","message":"soi do you need to check if the file already exists and only set it to 0 if it does not?\ni would assume that should be the desired behavior so that if we initalize this in multiple test workers\nonly one of them will do it.","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            if self.global_lock.acquire(timeout\u003d1):"},{"line_number":119,"context_line":"                # no other readers in the system, safe to initialize the reader"},{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":122,"context_line":"                    f.writelines([str(0)])"},{"line_number":123,"context_line":"                    LOG.debug("},{"line_number":124,"context_line":"                        \u0027InterProcessReaderWriterLock inited nr_of_readers on \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffa18b04_18027bb7","line":121,"range":{"start_line":121,"start_character":16,"end_line":121,"end_character":61},"in_reply_to":"2e837c23_487fd94f","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d7f537f3f7701c1de4e5f87854a1db78641fd25","unresolved":true,"context_lines":[{"line_number":118,"context_line":"            if self.global_lock.acquire(timeout\u003d1):"},{"line_number":119,"context_line":"                # no other readers in the system, safe to initialize the reader"},{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":122,"context_line":"                    f.writelines([str(0)])"},{"line_number":123,"context_line":"                    LOG.debug("},{"line_number":124,"context_line":"                        \u0027InterProcessReaderWriterLock inited nr_of_readers on \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"2e837c23_487fd94f","line":121,"range":{"start_line":121,"start_character":16,"end_line":121,"end_character":61},"in_reply_to":"cb5a1edf_a8809eb7","updated":"2021-12-15 19:00:53.000000000","message":"It is not a problem if multiple process does this, the only necessary thing is that each process should do the same thing, set it to 0.","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f663f72414a9180d2ba7696a970ed58c0891fd85","unresolved":true,"context_lines":[{"line_number":119,"context_line":"                # no other readers in the system, safe to initialize the reader"},{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":122,"context_line":"                    f.writelines([str(0)])"},{"line_number":123,"context_line":"                    LOG.debug("},{"line_number":124,"context_line":"                        \u0027InterProcessReaderWriterLock inited nr_of_readers on \u0027"},{"line_number":125,"context_line":"                        \u0027the fs\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"068efcea_82553af6","line":122,"range":{"start_line":122,"start_character":20,"end_line":122,"end_character":42},"updated":"2021-12-15 17:47:57.000000000","message":"nit: this probably could have been f.write(\u00270\u0027)\nbut ok now you have moved the count of reader to a file so its aviabel to all test runners.","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d7f537f3f7701c1de4e5f87854a1db78641fd25","unresolved":true,"context_lines":[{"line_number":119,"context_line":"                # no other readers in the system, safe to initialize the reader"},{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":122,"context_line":"                    f.writelines([str(0)])"},{"line_number":123,"context_line":"                    LOG.debug("},{"line_number":124,"context_line":"                        \u0027InterProcessReaderWriterLock inited nr_of_readers on \u0027"},{"line_number":125,"context_line":"                        \u0027the fs\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"eadd7898_73643823","line":122,"range":{"start_line":122,"start_character":20,"end_line":122,"end_character":42},"in_reply_to":"068efcea_82553af6","updated":"2021-12-15 19:00:53.000000000","message":"True, I will do that","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                # no other readers in the system, safe to initialize the reader"},{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":122,"context_line":"                    f.writelines([str(0)])"},{"line_number":123,"context_line":"                    LOG.debug("},{"line_number":124,"context_line":"                        \u0027InterProcessReaderWriterLock inited nr_of_readers on \u0027"},{"line_number":125,"context_line":"                        \u0027the fs\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff03dced_7b05853b","line":122,"range":{"start_line":122,"start_character":20,"end_line":122,"end_character":42},"in_reply_to":"eadd7898_73643823","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1f0d1260c938d48889826165a41b556f636e05f1","unresolved":true,"context_lines":[{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":122,"context_line":"                    f.writelines([str(0)])"},{"line_number":123,"context_line":"                    LOG.debug("},{"line_number":124,"context_line":"                        \u0027InterProcessReaderWriterLock inited nr_of_readers on \u0027"},{"line_number":125,"context_line":"                        \u0027the fs\u0027)"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"50292730_12fbf17b","line":123,"updated":"2021-12-15 18:17:07.000000000","message":"we can see this printed multiple times in the logs\n\nhttps://07840cc657b6cb5df66a-ca0266261d8d95f33f1974de7a62fd54.ssl.cf1.rackcdn.com/821732/3/check/nova-live-migration/8de2818/controller/logs/tempest_log.txt\n\n2021-12-15 17:17:55.887 119669 DEBUG tempest.test [-] InterProcessReaderWriterLock inited nr_of_readers on the fs __init__ /opt/stack/tempest/tempest/test.py:123\n2021-12-15 17:17:55.887 119669 DEBUG tempest.test [-] InterProcessReaderWriterLock initialized __init__ /opt/stack/tempest/tempest/test.py:133\n2021-12-15 17:17:55.892 119667 DEBUG tempest.test [-] InterProcessReaderWriterLock inited nr_of_readers on the fs __init__ /opt/stack/tempest/tempest/test.py:123\n2021-12-15 17:17:55.893 119667 DEBUG tempest.test [-] InterProcessReaderWriterLock initialized __init__ /opt/stack/tempest/tempest/test.py:133\n2021-12-15 17:17:55.896 119663 DEBUG tempest.test [-] InterProcessReaderWriterLock inited nr_of_readers on the fs __init__ /opt/stack/tempest/tempest/test.py:123\n2021-12-15 17:17:55.897 119663 DEBUG tempest.test [-] InterProcessReaderWriterLock initialized __init__ /opt/stack/tempest/tempest/test.py:133\n2021-12-15 17:17:55.905 119665 DEBUG tempest.test [-] InterProcessReaderWriterLock inited nr_of_readers on the fs __init__ /opt/stack/tempest/tempest/test.py:123\n\n\nreally this shoudl only be printed once.\n\nit might work as is as it imples there are no active readers or writers when we are intialising all the test calsses. but they are each overwiting the file.","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":122,"context_line":"                    f.writelines([str(0)])"},{"line_number":123,"context_line":"                    LOG.debug("},{"line_number":124,"context_line":"                        \u0027InterProcessReaderWriterLock inited nr_of_readers on \u0027"},{"line_number":125,"context_line":"                        \u0027the fs\u0027)"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"58556505_e2dc66bc","line":123,"in_reply_to":"105aebdc_f66447d0","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d7f537f3f7701c1de4e5f87854a1db78641fd25","unresolved":true,"context_lines":[{"line_number":120,"context_line":"                # value to 0"},{"line_number":121,"context_line":"                with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":122,"context_line":"                    f.writelines([str(0)])"},{"line_number":123,"context_line":"                    LOG.debug("},{"line_number":124,"context_line":"                        \u0027InterProcessReaderWriterLock inited nr_of_readers on \u0027"},{"line_number":125,"context_line":"                        \u0027the fs\u0027)"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"105aebdc_f66447d0","line":123,"in_reply_to":"50292730_12fbf17b","updated":"2021-12-15 19:00:53.000000000","message":"I think this is not a problem per se.","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8c9c8b0101f466fe1dfa6e8d416c0a4c47cdf578","unresolved":true,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"                self.global_lock.release()"},{"line_number":128,"context_line":"            else:"},{"line_number":129,"context_line":"                # we cannot get the lock so there are readers so we can safely"},{"line_number":130,"context_line":"                # assume that the value is initialized"},{"line_number":131,"context_line":"                pass"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        LOG.debug(\u0027InterProcessReaderWriterLock initialized\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9362fee0_983538e8","line":130,"range":{"start_line":129,"start_character":16,"end_line":130,"end_character":54},"updated":"2021-12-15 17:53:09.000000000","message":"i dont think this  is nessiaarly correct it could mean that a writer has been created but not readers","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"                self.global_lock.release()"},{"line_number":128,"context_line":"            else:"},{"line_number":129,"context_line":"                # we cannot get the lock so there are readers so we can safely"},{"line_number":130,"context_line":"                # assume that the value is initialized"},{"line_number":131,"context_line":"                pass"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        LOG.debug(\u0027InterProcessReaderWriterLock initialized\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"00fbddeb_eb205b30","line":130,"range":{"start_line":129,"start_character":16,"end_line":130,"end_character":54},"in_reply_to":"263a2cde_4228408d","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d7f537f3f7701c1de4e5f87854a1db78641fd25","unresolved":true,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"                self.global_lock.release()"},{"line_number":128,"context_line":"            else:"},{"line_number":129,"context_line":"                # we cannot get the lock so there are readers so we can safely"},{"line_number":130,"context_line":"                # assume that the value is initialized"},{"line_number":131,"context_line":"                pass"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        LOG.debug(\u0027InterProcessReaderWriterLock initialized\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"263a2cde_4228408d","line":130,"range":{"start_line":129,"start_character":16,"end_line":130,"end_character":54},"in_reply_to":"9362fee0_983538e8","updated":"2021-12-15 19:00:53.000000000","message":"True, the proper statement is. We cannot get the lock so there are either one or more readers or one writer active. If they are active it means they already initialized the file.\nI will fix this up","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f663f72414a9180d2ba7696a970ed58c0891fd85","unresolved":true,"context_lines":[{"line_number":137,"context_line":"            \u0027InterProcessReaderWriterLock._inc_nr_of_readers should be called \u0027"},{"line_number":138,"context_line":"            \u0027while holding the reader_lock\u0027)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        with open(self.nr_of_readers_path, \u0027r\u0027) as f:"},{"line_number":141,"context_line":"            nr_of_readers \u003d int(f.readline())"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        nr_of_readers +\u003d 1"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":146,"context_line":"            f.writelines([str(nr_of_readers)])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        return nr_of_readers"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fef15f70_232a0f28","line":146,"range":{"start_line":140,"start_character":0,"end_line":146,"end_character":46},"updated":"2021-12-15 17:47:57.000000000","message":"i woudl be tempted to wrap this in a property\n\ne.g.\n@property\ndef nr_readers(self):\n    with open(self.nr_of_readers_path, \u0027r\u0027) as f:\n      return int(f.readline())\n\n@nr_readers.setter\ndef nr_readers(self, val)\n   with open(self.nr_of_readers_path, \u0027w\u0027) as f:\n      f.write(str(val))\n\nthen you could do self.nr_readers +\u003d 1\n\nor self.nr_readers \u003d self.nr_readers + 1 if you wanted to be explcit but i think +\u003d woudl work","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            \u0027InterProcessReaderWriterLock._inc_nr_of_readers should be called \u0027"},{"line_number":138,"context_line":"            \u0027while holding the reader_lock\u0027)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        with open(self.nr_of_readers_path, \u0027r\u0027) as f:"},{"line_number":141,"context_line":"            nr_of_readers \u003d int(f.readline())"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        nr_of_readers +\u003d 1"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":146,"context_line":"            f.writelines([str(nr_of_readers)])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        return nr_of_readers"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"93856d45_b66343fb","line":146,"range":{"start_line":140,"start_character":0,"end_line":146,"end_character":46},"in_reply_to":"cdc43868_0aa37449","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d7f537f3f7701c1de4e5f87854a1db78641fd25","unresolved":true,"context_lines":[{"line_number":137,"context_line":"            \u0027InterProcessReaderWriterLock._inc_nr_of_readers should be called \u0027"},{"line_number":138,"context_line":"            \u0027while holding the reader_lock\u0027)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        with open(self.nr_of_readers_path, \u0027r\u0027) as f:"},{"line_number":141,"context_line":"            nr_of_readers \u003d int(f.readline())"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        nr_of_readers +\u003d 1"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        with open(self.nr_of_readers_path, \u0027w\u0027) as f:"},{"line_number":146,"context_line":"            f.writelines([str(nr_of_readers)])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        return nr_of_readers"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"cdc43868_0aa37449","line":146,"range":{"start_line":140,"start_character":0,"end_line":146,"end_character":46},"in_reply_to":"fef15f70_232a0f28","updated":"2021-12-15 19:00:53.000000000","message":"Then I would add the assert to both property. But yeah this can be done. I will make it work properly first then I can transform this to properties.","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1f0d1260c938d48889826165a41b556f636e05f1","unresolved":true,"context_lines":[{"line_number":172,"context_line":"        with self.reader_lock:"},{"line_number":173,"context_line":"            nr_of_readers \u003d self._dec_nr_of_readers()"},{"line_number":174,"context_line":"            if nr_of_readers \u003d\u003d 0:"},{"line_number":175,"context_line":"                self.global_lock.release()"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def acquire_write_lock(self):"},{"line_number":178,"context_line":"        self.global_lock.acquire()"}],"source_content_type":"text/x-python","patch_set":3,"id":"d575c3c9_047abc3a","line":175,"range":{"start_line":175,"start_character":21,"end_line":175,"end_character":32},"updated":"2021-12-15 18:17:07.000000000","message":"so this is where its currently failing.\n\nhttps://07840cc657b6cb5df66a-ca0266261d8d95f33f1974de7a62fd54.ssl.cf1.rackcdn.com/821732/3/check/nova-live-migration/8de2818/testr_results.html\n\nthe failing test is \n\n tearDownClass (tempest.api.compute.admin.test_live_migration.LiveAutoBlockMigrationV225Test)testtools.testresult.real._StringException\n\n\nits odd because we can see in the logs \n\n2021-12-15 17:17:55.925 119663 DEBUG tempest.test [-] LiveAutoBlockMigrationV225Test taking the read lock setUpClass /opt/stack/tempest/tempest/test.py:298\n2021-12-15 17:17:55.925 119669 DEBUG tempest.test [-] LiveMigrationTest took the read lock setUpClass /opt/stack/tempest/tempest/test.py:300\n2021-12-15 17:17:55.925 119665 DEBUG tempest.test [-] LiveMigrationNegativeTest taking the read lock setUpClass /opt/stack/tempest/tempest/test.py:298\n2021-12-15 17:17:55.926 119667 DEBUG tempest.test [-] MigrationsAdminTest took the read lock setUpClass /opt/stack/tempest/tempest/test.py:300\n2021-12-15 17:17:55.936 119663 DEBUG tempest.test [-] LiveAutoBlockMigrationV225Test took the read lock setUpClass /opt/stack/tempest/tempest/test.py:300\n\n\nfron https://07840cc657b6cb5df66a-ca0266261d8d95f33f1974de7a62fd54.ssl.cf1.rackcdn.com/821732/3/check/nova-live-migration/8de2818/controller/logs/tempest_log.txt\n\nthat it did take the lock in setup\n\nand it released it in teardown\n\n2021-12-15 17:20:00.118 119663 DEBUG tempest.test [-] LiveAutoBlockMigrationV225Test releasing the read lock tearDownClass /opt/stack/tempest/tempest/test.py:382\n\n\nyou could perhaps test to see if the lock is currenlty held before releasing it but you shoudl not need too.","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c461f4fc7af2e95f94f6b8f31cc45f9a2f9b79a7","unresolved":true,"context_lines":[{"line_number":172,"context_line":"        with self.reader_lock:"},{"line_number":173,"context_line":"            nr_of_readers \u003d self._dec_nr_of_readers()"},{"line_number":174,"context_line":"            if nr_of_readers \u003d\u003d 0:"},{"line_number":175,"context_line":"                self.global_lock.release()"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def acquire_write_lock(self):"},{"line_number":178,"context_line":"        self.global_lock.acquire()"}],"source_content_type":"text/x-python","patch_set":3,"id":"df560d87_0d0704e2","line":175,"range":{"start_line":175,"start_character":21,"end_line":175,"end_character":32},"in_reply_to":"55752e6d_6128f6fb","updated":"2021-12-16 13:17:31.000000000","message":"We really need fasteners inter process rw lock... So PS4 is pulling them in.","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d7f537f3f7701c1de4e5f87854a1db78641fd25","unresolved":true,"context_lines":[{"line_number":172,"context_line":"        with self.reader_lock:"},{"line_number":173,"context_line":"            nr_of_readers \u003d self._dec_nr_of_readers()"},{"line_number":174,"context_line":"            if nr_of_readers \u003d\u003d 0:"},{"line_number":175,"context_line":"                self.global_lock.release()"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def acquire_write_lock(self):"},{"line_number":178,"context_line":"        self.global_lock.acquire()"}],"source_content_type":"text/x-python","patch_set":3,"id":"55752e6d_6128f6fb","line":175,"range":{"start_line":175,"start_character":21,"end_line":175,"end_character":32},"in_reply_to":"d575c3c9_047abc3a","updated":"2021-12-15 19:00:53.000000000","message":"This is a bug I have to track down. I will add more logs to the lock handling and retry. I do not want to test the lock being held, as that would paper over a logic error. Each class should be able to release the lock.\n\n//later \n\nHm. I might be able to guess the problem:\n\nProcess A: acquire_read_lock -\u003e nr_of_readers \u003d\u003d 1 -\u003e takes the global lock\nProcess B: acquire_read_lock -\u003e nr_of_readers \u003d\u003d 2 -\u003e noop\nProcess A: release_read_lock -\u003e nr_of_readers \u003d\u003d 1 -\u003e noop\nProcess B: release_read_lock -\u003e nr_of_readers \u003d\u003d 0 -\u003e release the global lock !!! but Process B never held the global lock. :/","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f9713f31a17c870c8a4368e5614a5cad29d03b33","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        with self.reader_lock:"},{"line_number":173,"context_line":"            nr_of_readers \u003d self._dec_nr_of_readers()"},{"line_number":174,"context_line":"            if nr_of_readers \u003d\u003d 0:"},{"line_number":175,"context_line":"                self.global_lock.release()"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def acquire_write_lock(self):"},{"line_number":178,"context_line":"        self.global_lock.acquire()"}],"source_content_type":"text/x-python","patch_set":3,"id":"a15d8313_10a7ca7a","line":175,"range":{"start_line":175,"start_character":21,"end_line":175,"end_character":32},"in_reply_to":"df560d87_0d0704e2","updated":"2022-02-07 11:44:03.000000000","message":"Done","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1f0d1260c938d48889826165a41b556f636e05f1","unresolved":true,"context_lines":[{"line_number":343,"context_line":"        # If there was no exception during setup we shall re-raise the first"},{"line_number":344,"context_line":"        # exception in teardown"},{"line_number":345,"context_line":"        re_raise \u003d (etype is None)"},{"line_number":346,"context_line":"        try:"},{"line_number":347,"context_line":"            while cls._teardowns:"},{"line_number":348,"context_line":"                name, teardown \u003d cls._teardowns.pop()"},{"line_number":349,"context_line":"                # Catch any exception in tearDown so we can re-raise the"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f547bd5_604764dc","line":346,"range":{"start_line":346,"start_character":6,"end_line":346,"end_character":12},"updated":"2021-12-15 18:17:07.000000000","message":"this should be on line 333","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c29fd795240e63d64ce7fa0c841686cfb39dfd5c","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        # If there was no exception during setup we shall re-raise the first"},{"line_number":344,"context_line":"        # exception in teardown"},{"line_number":345,"context_line":"        re_raise \u003d (etype is None)"},{"line_number":346,"context_line":"        try:"},{"line_number":347,"context_line":"            while cls._teardowns:"},{"line_number":348,"context_line":"                name, teardown \u003d cls._teardowns.pop()"},{"line_number":349,"context_line":"                # Catch any exception in tearDown so we can re-raise the"}],"source_content_type":"text/x-python","patch_set":3,"id":"d067219a_d8d2f296","line":346,"range":{"start_line":346,"start_character":6,"end_line":346,"end_character":12},"in_reply_to":"9f547bd5_604764dc","updated":"2022-02-07 12:21:50.000000000","message":"Done","commit_id":"2ae65c9f66ad995ab31b31bfac3288a6a98ca750"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"87e3768ad9d7773aa46ecfd057c6fa82c59feb53","unresolved":true,"context_lines":[{"line_number":73,"context_line":"atexit.register(validate_tearDownClass)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def serial(cls):"},{"line_number":77,"context_line":"    \"\"\"A decorator to mark a test class for serial execution\"\"\""},{"line_number":78,"context_line":"    cls._serial \u003d True"},{"line_number":79,"context_line":"    LOG.debug(\u0027marked %s for serial execution\u0027, cls.__name__)"},{"line_number":80,"context_line":"    return cls"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class BaseTestCase(testtools.testcase.WithAttributes,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f28f64d_abf984c1","line":80,"range":{"start_line":76,"start_character":0,"end_line":80,"end_character":14},"updated":"2022-05-26 12:53:23.000000000","message":"Maybe this can go here: tempest/tests/lib/decorators.py?","commit_id":"cc8381562fdf0db8ee298d22d4615018291ad833"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"94be984e847545bb9f707279d8005b750121b78d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"atexit.register(validate_tearDownClass)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def serial(cls):"},{"line_number":77,"context_line":"    \"\"\"A decorator to mark a test class for serial execution\"\"\""},{"line_number":78,"context_line":"    cls._serial \u003d True"},{"line_number":79,"context_line":"    LOG.debug(\u0027marked %s for serial execution\u0027, cls.__name__)"},{"line_number":80,"context_line":"    return cls"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class BaseTestCase(testtools.testcase.WithAttributes,"}],"source_content_type":"text/x-python","patch_set":15,"id":"68071da6_e51a0079","line":80,"range":{"start_line":76,"start_character":0,"end_line":80,"end_character":14},"in_reply_to":"1f28f64d_abf984c1","updated":"2022-05-31 13:49:17.000000000","message":"Done","commit_id":"cc8381562fdf0db8ee298d22d4615018291ad833"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":126,"context_line":"    TIMEOUT_SCALING_FACTOR \u003d 1"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    # An interprocess lock to implement serial test execution if requested."},{"line_number":129,"context_line":"    # The serial test classes are the writers as only one can be executed from"},{"line_number":130,"context_line":"    # them. The rest of the test classes are the readers as many of them can"},{"line_number":131,"context_line":"    # be run in parallel."},{"line_number":132,"context_line":"    # Only classes can be decorated with @serial decorator not individual test"},{"line_number":133,"context_line":"    # case as tempest allows test class level resource setup which could"}],"source_content_type":"text/x-python","patch_set":16,"id":"a5973ebc_79d44d19","line":130,"range":{"start_line":129,"start_character":46,"end_line":130,"end_character":10},"updated":"2022-11-18 10:42:55.000000000","message":"as only one of them can be executed.","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    TIMEOUT_SCALING_FACTOR \u003d 1"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    # An interprocess lock to implement serial test execution if requested."},{"line_number":129,"context_line":"    # The serial test classes are the writers as only one can be executed from"},{"line_number":130,"context_line":"    # them. The rest of the test classes are the readers as many of them can"},{"line_number":131,"context_line":"    # be run in parallel."},{"line_number":132,"context_line":"    # Only classes can be decorated with @serial decorator not individual test"},{"line_number":133,"context_line":"    # case as tempest allows test class level resource setup which could"}],"source_content_type":"text/x-python","patch_set":16,"id":"52fd0679_d67481b7","line":130,"range":{"start_line":129,"start_character":46,"end_line":130,"end_character":10},"in_reply_to":"a5973ebc_79d44d19","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":130,"context_line":"    # them. The rest of the test classes are the readers as many of them can"},{"line_number":131,"context_line":"    # be run in parallel."},{"line_number":132,"context_line":"    # Only classes can be decorated with @serial decorator not individual test"},{"line_number":133,"context_line":"    # case as tempest allows test class level resource setup which could"},{"line_number":134,"context_line":"    # interfere with serialized execution on test cases level. I.e. the class"},{"line_number":135,"context_line":"    # setup of one of the test case could run before taking a test case level"},{"line_number":136,"context_line":"    # lock."}],"source_content_type":"text/x-python","patch_set":16,"id":"db195122_cecb99da","line":133,"range":{"start_line":133,"start_character":6,"end_line":133,"end_character":10},"updated":"2022-11-18 10:42:55.000000000","message":"cases","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    # them. The rest of the test classes are the readers as many of them can"},{"line_number":131,"context_line":"    # be run in parallel."},{"line_number":132,"context_line":"    # Only classes can be decorated with @serial decorator not individual test"},{"line_number":133,"context_line":"    # case as tempest allows test class level resource setup which could"},{"line_number":134,"context_line":"    # interfere with serialized execution on test cases level. I.e. the class"},{"line_number":135,"context_line":"    # setup of one of the test case could run before taking a test case level"},{"line_number":136,"context_line":"    # lock."}],"source_content_type":"text/x-python","patch_set":16,"id":"5cb37198_667470b6","line":133,"range":{"start_line":133,"start_character":6,"end_line":133,"end_character":10},"in_reply_to":"db195122_cecb99da","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[{"line_number":132,"context_line":"    # Only classes can be decorated with @serial decorator not individual test"},{"line_number":133,"context_line":"    # case as tempest allows test class level resource setup which could"},{"line_number":134,"context_line":"    # interfere with serialized execution on test cases level. I.e. the class"},{"line_number":135,"context_line":"    # setup of one of the test case could run before taking a test case level"},{"line_number":136,"context_line":"    # lock."},{"line_number":137,"context_line":"    # We cannot init the lock here as external lock needs oslo configuration"},{"line_number":138,"context_line":"    # to be loaded first to get the lock_path"}],"source_content_type":"text/x-python","patch_set":16,"id":"ca1bee8c_92da70e8","line":135,"range":{"start_line":135,"start_character":31,"end_line":135,"end_character":35},"updated":"2022-11-18 10:42:55.000000000","message":"cases","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    # Only classes can be decorated with @serial decorator not individual test"},{"line_number":133,"context_line":"    # case as tempest allows test class level resource setup which could"},{"line_number":134,"context_line":"    # interfere with serialized execution on test cases level. I.e. the class"},{"line_number":135,"context_line":"    # setup of one of the test case could run before taking a test case level"},{"line_number":136,"context_line":"    # lock."},{"line_number":137,"context_line":"    # We cannot init the lock here as external lock needs oslo configuration"},{"line_number":138,"context_line":"    # to be loaded first to get the lock_path"}],"source_content_type":"text/x-python","patch_set":16,"id":"14c5d135_af85ca08","line":135,"range":{"start_line":135,"start_character":31,"end_line":135,"end_character":35},"in_reply_to":"ca1bee8c_92da70e8","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"c08b80b0ae36e09a31bbbabf06e2e7dbad22eb97"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bdde53fbe0895d284d74f5091ec41973c54390b1","unresolved":true,"context_lines":[{"line_number":177,"context_line":"                LOG.debug(\u0027%s taking the write lock\u0027, cls.__name__)"},{"line_number":178,"context_line":"                cls.serial_rw_lock.acquire_write_lock()"},{"line_number":179,"context_line":"                LOG.debug(\u0027%s took the write lock\u0027, cls.__name__)"},{"line_number":180,"context_line":"            else:"},{"line_number":181,"context_line":"                LOG.debug(\u0027%s taking the read lock\u0027, cls.__name__)"},{"line_number":182,"context_line":"                cls.serial_rw_lock.acquire_read_lock()"},{"line_number":183,"context_line":"                LOG.debug(\u0027%s took the read lock\u0027, cls.__name__)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"            cls.skip_checks()"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"98172226_84870d78","line":183,"range":{"start_line":180,"start_character":0,"end_line":183,"end_character":64},"updated":"2023-01-11 17:39:31.000000000","message":"I have not checked how much it this fill the log files but almost all which is ~1500 test (except 5-10 serial tests) will be logging those. I think we can skip read lock logging and keep only write lock logs so that we know other than write lock tests everything else get read lock.","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0e535f7fbea1064f16ea3f7879aa98e96f4beb90","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                LOG.debug(\u0027%s taking the write lock\u0027, cls.__name__)"},{"line_number":178,"context_line":"                cls.serial_rw_lock.acquire_write_lock()"},{"line_number":179,"context_line":"                LOG.debug(\u0027%s took the write lock\u0027, cls.__name__)"},{"line_number":180,"context_line":"            else:"},{"line_number":181,"context_line":"                LOG.debug(\u0027%s taking the read lock\u0027, cls.__name__)"},{"line_number":182,"context_line":"                cls.serial_rw_lock.acquire_read_lock()"},{"line_number":183,"context_line":"                LOG.debug(\u0027%s took the read lock\u0027, cls.__name__)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"            cls.skip_checks()"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"4605fe25_4b15edbc","line":183,"range":{"start_line":180,"start_character":0,"end_line":183,"end_character":64},"in_reply_to":"98172226_84870d78","updated":"2023-01-17 16:17:27.000000000","message":"thanks","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bdde53fbe0895d284d74f5091ec41973c54390b1","unresolved":true,"context_lines":[{"line_number":259,"context_line":"                LOG.debug(\u0027%s releasing the write lock\u0027, cls.__name__)"},{"line_number":260,"context_line":"                cls.serial_rw_lock.release_write_lock()"},{"line_number":261,"context_line":"                LOG.debug(\u0027%s released the write lock\u0027, cls.__name__)"},{"line_number":262,"context_line":"            else:"},{"line_number":263,"context_line":"                LOG.debug(\u0027%s releasing the read lock\u0027, cls.__name__)"},{"line_number":264,"context_line":"                cls.serial_rw_lock.release_read_lock()"},{"line_number":265,"context_line":"                LOG.debug(\u0027%s released the read lock\u0027, cls.__name__)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        # If exceptions were raised during teardown, and not before, re-raise"},{"line_number":268,"context_line":"        # the first one"}],"source_content_type":"text/x-python","patch_set":18,"id":"4f8e9054_562dcba8","line":265,"range":{"start_line":262,"start_character":0,"end_line":265,"end_character":68},"updated":"2023-01-11 17:39:31.000000000","message":"ditto","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"}],"tempest/zzz_serial/test_aggregates_basic_ops.py":[{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"12fa448e498bf1660f90fc1a0774f0c34ea3f0f0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":16,"id":"7ac05e4f_41f3fac7","side":"PARENT","line":15,"updated":"2022-11-18 10:42:55.000000000","message":"unnecessary change","commit_id":"fef7da022400ece56f2fc39ef2880eedb4c28125"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"82171fc16ce32ac3247084383ae93fd9f08cf328","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"e0798e1c_11db4c25","side":"PARENT","line":15,"in_reply_to":"7ac05e4f_41f3fac7","updated":"2022-11-24 09:18:47.000000000","message":"Done","commit_id":"fef7da022400ece56f2fc39ef2880eedb4c28125"}],"tox.ini":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bdde53fbe0895d284d74f5091ec41973c54390b1","unresolved":true,"context_lines":[{"line_number":222,"context_line":"# The regex below is used to select all scenario tests"},{"line_number":223,"context_line":"commands \u003d"},{"line_number":224,"context_line":"    find . -type f -name \"*.pyc\" -delete"},{"line_number":225,"context_line":"    tempest run --serial --regex \u0027(^tempest\\.scenario)\u0027 {posargs}"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"[testenv:smoke]"},{"line_number":228,"context_line":"envdir \u003d .tox/tempest"}],"source_content_type":"text/x-properties","patch_set":18,"id":"a284750d_ebdd7328","line":225,"range":{"start_line":225,"start_character":0,"end_line":225,"end_character":65},"updated":"2023-01-11 17:39:31.000000000","message":"we can have more scenario tests in zzz_serial for example test_aggregates_basic_ops.py scenario tests you are moving to \u0027zzz_serial\u0027 dir so we should include them too here.\n\nThere are some use case to know what type (API, scenario, admin) of test for example, select and run them in different tox env/jobs, interop certification program run only non-admin tests etc. To keep supporting those use case, I think we should keep same directory structure in zzz_serial dir also. something like:\n\nzzz_serial\n-\u003e admin \u003call admin test goes here so that interop will have a way to skip all admin tests eaisly\u003e\n-\u003e api \u003chave all api tests\u003e\n-\u003e scenario \u003chave all scneario test here\u003e","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"712fda50a5bae46038bd84253307765c50ece023","unresolved":true,"context_lines":[{"line_number":222,"context_line":"# The regex below is used to select all scenario tests"},{"line_number":223,"context_line":"commands \u003d"},{"line_number":224,"context_line":"    find . -type f -name \"*.pyc\" -delete"},{"line_number":225,"context_line":"    tempest run --serial --regex \u0027(^tempest\\.scenario)\u0027 {posargs}"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"[testenv:smoke]"},{"line_number":228,"context_line":"envdir \u003d .tox/tempest"}],"source_content_type":"text/x-properties","patch_set":18,"id":"3db0596e_c25512ac","line":225,"range":{"start_line":225,"start_character":0,"end_line":225,"end_character":65},"in_reply_to":"9525c082_24919c7e","updated":"2023-01-17 00:45:42.000000000","message":"sure, we can do it in followup  as this tox env is not much used in CI so we will not leave any moved tests to run.","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8ba9b7b95e1c0454743875814d12551b7b649ade","unresolved":true,"context_lines":[{"line_number":222,"context_line":"# The regex below is used to select all scenario tests"},{"line_number":223,"context_line":"commands \u003d"},{"line_number":224,"context_line":"    find . -type f -name \"*.pyc\" -delete"},{"line_number":225,"context_line":"    tempest run --serial --regex \u0027(^tempest\\.scenario)\u0027 {posargs}"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"[testenv:smoke]"},{"line_number":228,"context_line":"envdir \u003d .tox/tempest"}],"source_content_type":"text/x-properties","patch_set":18,"id":"9525c082_24919c7e","line":225,"range":{"start_line":225,"start_character":0,"end_line":225,"end_character":65},"in_reply_to":"a284750d_ebdd7328","updated":"2023-01-16 12:04:49.000000000","message":"you could replciate teh structure yes but that shoudl be done in a Follow up in my opipion.\n\nwe disable some of these test a year ago because this was a gate blocking bug.\nits very frustrating that we ahve not made any progress on this in that time espcially since gibi has limited time for upstream work currently as do i.\n\ni would like to proceed with the patch as is so we can renebale test coverage and then we can improve it by replciating the strcure fo radmin/api/senario under the serial folder.","commit_id":"07177cc55b82fb03b6b503faacf4abca918722ad"}]}
