)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"185388e937e3999315e65da73a70c4cc723b6348","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e897b386_cde78400","updated":"2026-05-14 13:00:40.000000000","message":"Let\u0027s establish a set of tests that are passing with this change in place. It is interesting how much of the test suite runs stable with this.","commit_id":"1fc14b80ff42d2be42621cb21be59281ee838919"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"18652fa5e5a41337a68053e55bb49fef164ee251","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"efc6f9a1_55970a1d","in_reply_to":"6f89b39d_9b990956","updated":"2026-05-14 14:01:09.000000000","message":"@gibizer@gmail.com sure, I agree there are lots of failing tests with database is locked but the execution is never finishing because I am seeing below error in live migrations tests\n\n```\n\u0027oslo_db.exception.DBNonExistentDatabase: (sqlite3.OperationalError) unable to open database file\\n(Background on this error at: https://sqlalche.me/e/20/e3q8)\\n\u0027]: oslo_db.exception.DBNonExistentDatabase: (sqlite3.OperationalError) unable to open database file\n```\n\nI am still trying to figure out what\u0027s causing this but because of this the run keep getting stuck","commit_id":"1fc14b80ff42d2be42621cb21be59281ee838919"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"36aa59a4990bdaeb274a1675d8231cc12ac58138","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6f89b39d_9b990956","in_reply_to":"e897b386_cde78400","updated":"2026-05-14 13:11:56.000000000","message":"I tried to run this locally and it seems there is plenty of hanging or close to hanging tests cases as the execution never finishes.\n\nMost of the failing test fails with `sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is locked.` I see it in UPDATE statements so either WAL does not get applied properly or two write transactions are happening in parallel and therefore the second gets rejected and we need the DB write serialization from https://review.opendev.org/c/openstack/nova/+/983069/1/nova/tests/fixtures/nova.py#659\n\nMaybe add one more patch top of this with that write serialization and then see what tests can be run in a stable way","commit_id":"1fc14b80ff42d2be42621cb21be59281ee838919"}],"nova/tests/fixtures/nova.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"185388e937e3999315e65da73a70c4cc723b6348","unresolved":true,"context_lines":[{"line_number":89,"context_line":"    empty; WAL is set on the file with :mod:`sqlite3` before SQLAlchemy opens"},{"line_number":90,"context_line":"    it."},{"line_number":91,"context_line":"    \"\"\""},{"line_number":92,"context_line":"    safe \u003d \u0027\u0027.join(c if c.isalnum() or c in \u0027-_\u0027 else \u0027-\u0027 for c in name)"},{"line_number":93,"context_line":"    fd, path \u003d tempfile.mkstemp("},{"line_number":94,"context_line":"        prefix\u003d\u0027nova-test-%s-\u0027 % safe,"},{"line_number":95,"context_line":"        suffix\u003d\u0027.sqlite\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff3131f5_302ae70e","line":92,"updated":"2026-05-14 13:00:40.000000000","message":"this is unnecessary complexity. We are calling this with \"main\" and \"api\" which are correct filenames.","commit_id":"1fc14b80ff42d2be42621cb21be59281ee838919"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"18652fa5e5a41337a68053e55bb49fef164ee251","unresolved":true,"context_lines":[{"line_number":89,"context_line":"    empty; WAL is set on the file with :mod:`sqlite3` before SQLAlchemy opens"},{"line_number":90,"context_line":"    it."},{"line_number":91,"context_line":"    \"\"\""},{"line_number":92,"context_line":"    safe \u003d \u0027\u0027.join(c if c.isalnum() or c in \u0027-_\u0027 else \u0027-\u0027 for c in name)"},{"line_number":93,"context_line":"    fd, path \u003d tempfile.mkstemp("},{"line_number":94,"context_line":"        prefix\u003d\u0027nova-test-%s-\u0027 % safe,"},{"line_number":95,"context_line":"        suffix\u003d\u0027.sqlite\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c086ed39_fefa0c8a","line":92,"in_reply_to":"ff3131f5_302ae70e","updated":"2026-05-14 14:01:09.000000000","message":"sorry,This is not required and I meant to remove this but looks like it got added from my stash. I will remove it in next patch","commit_id":"1fc14b80ff42d2be42621cb21be59281ee838919"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"185388e937e3999315e65da73a70c4cc723b6348","unresolved":true,"context_lines":[{"line_number":101,"context_line":"    return \u0027sqlite:///%s\u0027 % abs_path, abs_path"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"def _unlink_sqlite_db_files(base_paths):"},{"line_number":105,"context_line":"    \"\"\"Remove each SQLite DB file and any -wal / -shm sidecars.\"\"\""},{"line_number":106,"context_line":"    for base in base_paths:"},{"line_number":107,"context_line":"        for suffix in (\u0027\u0027, \u0027-wal\u0027, \u0027-shm\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"618a343b_a691cd12","line":104,"updated":"2026-05-14 13:00:40.000000000","message":"If we store everything in a temp directory that is deleted at the end of the test case then we don\u0027t need to track and explicitly delete files from that temp directory.","commit_id":"1fc14b80ff42d2be42621cb21be59281ee838919"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"18652fa5e5a41337a68053e55bb49fef164ee251","unresolved":true,"context_lines":[{"line_number":101,"context_line":"    return \u0027sqlite:///%s\u0027 % abs_path, abs_path"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"def _unlink_sqlite_db_files(base_paths):"},{"line_number":105,"context_line":"    \"\"\"Remove each SQLite DB file and any -wal / -shm sidecars.\"\"\""},{"line_number":106,"context_line":"    for base in base_paths:"},{"line_number":107,"context_line":"        for suffix in (\u0027\u0027, \u0027-wal\u0027, \u0027-shm\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"a511cc60_f1408dfd","line":104,"in_reply_to":"618a343b_a691cd12","updated":"2026-05-14 14:01:09.000000000","message":"Acknowledged","commit_id":"1fc14b80ff42d2be42621cb21be59281ee838919"}]}
