)]}'
{"id":"openstack%2Fliberasurecode~982505","triplet_id":"openstack%2Fliberasurecode~master~I939b9afd19fb10c37238873e71537f6f80d95fa0","project":"openstack/liberasurecode","branch":"master","attention_set":{"15343":{"account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"last_update":"2026-04-08 01:43:24.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I939b9afd19fb10c37238873e71537f6f80d95fa0","subject":"Introduce a session-based API","status":"NEW","created":"2026-03-27 21:54:32.000000000","updated":"2026-04-27 21:15:06.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":10,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"8b01a6409ad0521b8f9522d33bd29c23c4980d6f","_number":982505,"virtual_id_number":982505,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-04-27 21:15:06.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-03-27 22:05:58.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-03-27 22:10:18.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"ebf2bf03c867249fc38e9c49bdb5289b2ffa923a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-03-27 21:54:32.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"05deba589b98b0d674910505395e645a746543e4","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-27 22:05:58.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6cc5b55abd8b4326bf2d241810f4fd45\n\n- liberasurecode-unittests-arm64 https://zuul.opendev.org/t/openstack/build/ad8356368e8f4258aa4e90d5f11139ed : SUCCESS in 8m 29s","accounts_in_message":[],"_revision_number":1},{"id":"128a5a43eee64d273b7eca28d9d4ebb167d995a2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-27 22:10:18.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9c67c2dcd48b43ca9ef0ddbb85d11322\n\n- liberasurecode-check-symbols https://zuul.opendev.org/t/openstack/build/3a84684f2dff4d5bb6f0f5215744294c : SUCCESS in 1m 57s\n- liberasurecode-unittests https://zuul.opendev.org/t/openstack/build/d2948bf08e604799beb6335c456831d8 : SUCCESS in 4m 31s\n- liberasurecode-unittests-memcheck https://zuul.opendev.org/t/openstack/build/4b238ed4e9e4456ca69a8f52ddbe99f3 : SUCCESS in 10m 12s\n- liberasurecode-unittests-helgrind https://zuul.opendev.org/t/openstack/build/55aa2befca0a43ce90ed78556a76c89b : SUCCESS in 4m 17s\n- liberasurecode-unittests-centos-9-stream https://zuul.opendev.org/t/openstack/build/70a6b278a72b4759b9943012bea4a6aa : SUCCESS in 4m 10s\n- liberasurecode-unittests-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e8dead8d476647cba593266617421634 : SUCCESS in 5m 27s","accounts_in_message":[],"_revision_number":1},{"id":"e76cea15ad240ccff797e599b7a8ac3677bd46ac","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-03-28 16:49:24.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"357b14263a8dbcb670522ca5763c077ec57c8dd2","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-28 16:55:52.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b1a2e54802674b50b00b7f5423fbfa1b\n\n- liberasurecode-unittests-arm64 https://zuul.opendev.org/t/openstack/build/1c835064f62a41638cb227e9c45e8a01 : SUCCESS in 5m 01s","accounts_in_message":[],"_revision_number":2},{"id":"b53e1a5fc5ce352efecb1080c44ba2b99ddb3a6a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-28 17:03:14.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d1770ff9c37a430892ab9c3aa1fda1d0\n\n- liberasurecode-check-symbols https://zuul.opendev.org/t/openstack/build/0c98cd5004fc4251be191dc65f6c15e1 : SUCCESS in 1m 39s\n- liberasurecode-unittests https://zuul.opendev.org/t/openstack/build/80c44c238a294ced9ea0310e4ac852fa : SUCCESS in 3m 05s\n- liberasurecode-unittests-memcheck https://zuul.opendev.org/t/openstack/build/c274dd1efafb49349761e48ce6a022d9 : SUCCESS in 9m 28s\n- liberasurecode-unittests-helgrind https://zuul.opendev.org/t/openstack/build/de0fad0366b74393b1ff3770e364578a : SUCCESS in 2m 44s\n- liberasurecode-unittests-centos-9-stream https://zuul.opendev.org/t/openstack/build/4e27a2ba07b54d6695996dff220c3bb2 : SUCCESS in 4m 02s\n- liberasurecode-unittests-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5c7226b527594f1cb8635a431fee1582 : SUCCESS in 7m 58s","accounts_in_message":[],"_revision_number":2},{"id":"7d644b921b15f20e4e2f77701e0f31e46085e314","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-04-06 04:42:19.000000000","message":"Patch Set 2: Code-Review-1 Workflow-1\n\n(5 comments)","accounts_in_message":[],"_revision_number":2},{"id":"da8826a8678f43a3531c8a6eaa5495c7614e7f8b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-04-08 01:27:29.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":3},{"id":"5d16e2d6021c6b6724e8018983555e53c719bbdc","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-04-08 01:27:38.000000000","message":"Patch Set 2: Code-Review-1 Workflow-1\n\n(5 comments)","accounts_in_message":[],"_revision_number":2},{"id":"6c4e70bac91622d4787a0219a9be1de7f5e086b6","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-08 01:33:54.000000000","message":"Patch Set 3:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1ee8ee16caec432b8a70b7ac2613164e\n\n- liberasurecode-unittests-arm64 https://zuul.opendev.org/t/openstack/build/ee8c20d7fefb445c8c72ab9b036a59c5 : FAILURE in 4m 50s","accounts_in_message":[],"_revision_number":3},{"id":"0be17697ca37211a9ac5881b1692e39c610351af","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-08 01:43:24.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/8a8b3fc7c32c48429bead0755eb491fe\n\n- liberasurecode-check-symbols https://zuul.opendev.org/t/openstack/build/f8ee051a88534511b005ba7b43780a54 : SUCCESS in 2m 11s\n- liberasurecode-unittests https://zuul.opendev.org/t/openstack/build/91df49c6bdb84164be14012569f9652f : FAILURE in 5m 06s\n- liberasurecode-unittests-memcheck https://zuul.opendev.org/t/openstack/build/f409226c8d8f4283bb62f0e6355eea1f : SKIPPED Skipped due to failed job liberasurecode-unittests\n- liberasurecode-unittests-helgrind https://zuul.opendev.org/t/openstack/build/2ed70d668363462b82bcabd7b5c23503 : SKIPPED Skipped due to failed job liberasurecode-unittests\n- liberasurecode-unittests-centos-9-stream https://zuul.opendev.org/t/openstack/build/bf1d748fa2e849aba3fc4fa750f1da64 : FAILURE in 6m 18s\n- liberasurecode-unittests-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4180c73059644ef0b617602981eb267e : FAILURE in 10m 27s","accounts_in_message":[],"_revision_number":3},{"id":"597f8585617dd2c0d30399a13f3e4e6f5c81a0c6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-04-08 04:30:18.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":4},{"id":"1cbb8d36e771c9856d6b09096be4fe28fb71a1a4","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-08 04:36:01.000000000","message":"Patch Set 4:\n\nBuild failed (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5b8814ee93c9434b988a1c6b93103904\n\n- liberasurecode-unittests-arm64 https://zuul.opendev.org/t/openstack/build/7afab5f955294420bccba14d369ce3c1 : FAILURE in 4m 12s","accounts_in_message":[],"_revision_number":4},{"id":"5af1b31c942ef011aed7be4567d4b9623ccdc92b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-04-08 04:42:15.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"0e36eb1369b1eaefee9e165b39d7306f13331573","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-08 04:50:39.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/14b219dbef57423d8d1113788ea6fc3b\n\n- liberasurecode-unittests-arm64 https://zuul.opendev.org/t/openstack/build/7a54fd9c34ce41a0a40ad8cbf8c8b914 : SUCCESS in 7m 03s","accounts_in_message":[],"_revision_number":5},{"id":"8edbc211c2397f3685164da21649c5c97a14d25c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-08 05:05:35.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f2a60b2fdb0f4af4b58169523e71a973\n\n- liberasurecode-check-symbols https://zuul.opendev.org/t/openstack/build/6695e0d15b2f412f889bdfb3248d37c2 : SUCCESS in 1m 51s\n- liberasurecode-unittests https://zuul.opendev.org/t/openstack/build/d48b7ef9adda4f989d00bb0088f7012a : SUCCESS in 3m 05s\n- liberasurecode-unittests-memcheck https://zuul.opendev.org/t/openstack/build/c15601576c2b411685ac0e1d726d03d8 : SUCCESS in 18m 00s\n- liberasurecode-unittests-helgrind https://zuul.opendev.org/t/openstack/build/34f326ea65af40aa9eac1fe32319ba61 : SUCCESS in 4m 43s\n- liberasurecode-unittests-centos-9-stream https://zuul.opendev.org/t/openstack/build/20fd445fc8f34600824c10eabb1cffbe : SUCCESS in 7m 06s\n- liberasurecode-unittests-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/85054535f587420d8badfec7d9a09d53 : SUCCESS in 5m 21s","accounts_in_message":[],"_revision_number":5},{"id":"bd4538da0fc5500954107196f4138479826317cc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-04-27 20:27:19.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"a8e252ff54b3c4b23fff3e0b4ef4ecee3d8bbbb1","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-27 20:54:00.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d9f3b064b3f3405faa427d7981718525\n\n- liberasurecode-unittests-arm64 https://zuul.opendev.org/t/openstack/build/2a1be74e5e7a4f26b839a8c834489fca : SUCCESS in 10m 52s","accounts_in_message":[],"_revision_number":6},{"id":"8b01a6409ad0521b8f9522d33bd29c23c4980d6f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-27 21:15:06.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b0276ff171334050bb57f97feac162e1\n\n- liberasurecode-check-symbols https://zuul.opendev.org/t/openstack/build/e42d247bcd3f4b7c9baf6a81095d67f5 : SUCCESS in 1m 28s\n- liberasurecode-unittests https://zuul.opendev.org/t/openstack/build/2f64b841164740968fd983d4e5312b1a : SUCCESS in 6m 32s\n- liberasurecode-unittests-memcheck https://zuul.opendev.org/t/openstack/build/f8d8e22d46064dcab99435f8050fe6a1 : SUCCESS in 25m 15s\n- liberasurecode-unittests-helgrind https://zuul.opendev.org/t/openstack/build/27d788b6f1bb4daa935fac5f764dc1b5 : SUCCESS in 5m 42s\n- liberasurecode-unittests-centos-9-stream https://zuul.opendev.org/t/openstack/build/dfcd3b44795c4170ae61ad32efaf4296 : SUCCESS in 5m 43s\n- liberasurecode-unittests-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/1c84a9cb17054c8ea356f963349ffb33 : SUCCESS in 8m 39s","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"56437e0defca2c91526c77f0abaea61407cfb20f","revisions":{"e483c1cd3aca4c47ffa95ab1cde4ce5a33e6bf1b":{"kind":"REWORK","_number":1,"created":"2026-03-27 21:54:32.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/05/982505/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/05/982505/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/1"}}},"commit":{"parents":[{"commit":"e1e11e42c7e43151c679f78bf87280abe0665d45","subject":"Allow up to 256 total fragments","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/e1e11e42c7e43151c679f78bf87280abe0665d45"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-03-27 17:35:15.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-03-27 20:48:41.000000000","tz":-420},"subject":"Introduce a session-based API","message":"Introduce a session-based API\n\nCallers largely either repeatedly encode or repeatedly decode as\nquickly as they can. Introduce a session API so we can cache the\nbackend-instance lookup and get the global-lock holding out of the\nCPU-intensive paths. Sessions are owned by the thread that created\nthem; attempting to use them from another thread will return a new\nerror code, -EWRONGTHREAD.\n\nNote that this requires that backends not be destroyed while there are\nlive sessions open; add a new error code, -EBACKENDHASOPENSESSIONS,\nthat liberasurecode_instance_destroy may return in that case.\n\nThe session API is now the preferred API; the existing API is switched\nto use sessions under the hood.\n\nAssisted-by: Claude:claude-4.6-sonnet claude-code-2.1.85\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nChange-Id: I939b9afd19fb10c37238873e71537f6f80d95fa0\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/e483c1cd3aca4c47ffa95ab1cde4ce5a33e6bf1b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/e483c1cd3aca4c47ffa95ab1cde4ce5a33e6bf1b"}]},"branch":"refs/heads/master"},"cb8be3373d963879d19f21d2ba8446edb3d29192":{"kind":"REWORK","_number":2,"created":"2026-03-28 16:49:24.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/05/982505/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/05/982505/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/2"}}},"commit":{"parents":[{"commit":"e1e11e42c7e43151c679f78bf87280abe0665d45","subject":"Allow up to 256 total fragments","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/e1e11e42c7e43151c679f78bf87280abe0665d45"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-03-27 17:35:15.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-03-28 06:24:47.000000000","tz":-420},"subject":"Introduce a session-based API","message":"Introduce a session-based API\n\nCallers largely either repeatedly encode or repeatedly decode as\nquickly as they can. Introduce a session API so we can cache the\nbackend-instance lookup and get the global-lock holding out of the\nCPU-intensive paths. Sessions are owned by the thread that created\nthem; attempting to use them from another thread will return a new\nerror code, -EWRONGTHREAD.\n\nNote that this requires that backends not be destroyed while there are\nlive sessions open; add a new error code, -EBACKENDHASOPENSESSIONS,\nthat liberasurecode_instance_destroy may return in that case.\n\nThe session API is now the preferred API; the existing API is switched\nto use sessions under the hood.\n\nAssisted-by: Claude:claude-4.6-sonnet claude-code-2.1.85\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nChange-Id: I939b9afd19fb10c37238873e71537f6f80d95fa0\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/cb8be3373d963879d19f21d2ba8446edb3d29192"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/cb8be3373d963879d19f21d2ba8446edb3d29192"}]},"branch":"refs/heads/master"},"2456955731eb13e31a6befe7d9c7b8b3adcf6253":{"kind":"REWORK","_number":3,"created":"2026-04-08 01:27:29.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/05/982505/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/05/982505/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/3"}}},"commit":{"parents":[{"commit":"e80dad3bc7b2c94b6ddb43b543591d27dbeeb018","subject":"Fix buffer size in get_lrc_inverse_rows","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/e80dad3bc7b2c94b6ddb43b543591d27dbeeb018"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-03-27 17:35:15.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-04-07 19:45:49.000000000","tz":-420},"subject":"Introduce a session-based API","message":"Introduce a session-based API\n\nCallers largely either repeatedly encode or repeatedly decode as\nquickly as they can. Introduce a session API so we can cache the\nbackend-instance lookup and get the global-lock holding out of the\nCPU-intensive paths. Sessions are owned by the thread that created\nthem; attempting to use them from another thread will return a new\nerror code, -EWRONGTHREAD.\n\nNote that this requires that backends not be destroyed while there are\nlive sessions open; add a new error code, -EBACKENDHASOPENSESSIONS,\nthat liberasurecode_instance_destroy may return in that case.\n\nThe session API is now the preferred API; the existing API is switched\nto use sessions under the hood.\n\nAssisted-by: Claude:claude-4.6-sonnet claude-code-2.1.85\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nChange-Id: I939b9afd19fb10c37238873e71537f6f80d95fa0\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/2456955731eb13e31a6befe7d9c7b8b3adcf6253"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/2456955731eb13e31a6befe7d9c7b8b3adcf6253"}]},"branch":"refs/heads/master"},"faa9d00ab501fa0d5dee6232af59aa895e86f87e":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2026-04-08 04:30:18.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/05/982505/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/05/982505/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/4"}}},"commit":{"parents":[{"commit":"7375e875cca488f6516f4c1eed85af344a1c7914","subject":"builtin: Make region_dot_product responsible for zeroing buffers","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/7375e875cca488f6516f4c1eed85af344a1c7914"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-03-27 17:35:15.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-04-08 02:28:30.000000000","tz":-420},"subject":"Introduce a session-based API","message":"Introduce a session-based API\n\nCallers largely either repeatedly encode or repeatedly decode as\nquickly as they can. Introduce a session API so we can cache the\nbackend-instance lookup and get the global-lock holding out of the\nCPU-intensive paths. Sessions are owned by the thread that created\nthem; attempting to use them from another thread will return a new\nerror code, -EWRONGTHREAD.\n\nNote that this requires that backends not be destroyed while there are\nlive sessions open; add a new error code, -EBACKENDHASOPENSESSIONS,\nthat liberasurecode_instance_destroy may return in that case.\n\nThe session API is now the preferred API; the existing API is switched\nto use sessions under the hood.\n\nAssisted-by: Claude:claude-4.6-sonnet claude-code-2.1.85\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nChange-Id: I939b9afd19fb10c37238873e71537f6f80d95fa0\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/faa9d00ab501fa0d5dee6232af59aa895e86f87e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/faa9d00ab501fa0d5dee6232af59aa895e86f87e"}]},"branch":"refs/heads/master"},"352d767b8c7a4d58d1430f7ee01b3fa0ea4a54b5":{"kind":"REWORK","_number":5,"created":"2026-04-08 04:42:15.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/05/982505/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/05/982505/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/5"}}},"commit":{"parents":[{"commit":"7375e875cca488f6516f4c1eed85af344a1c7914","subject":"builtin: Make region_dot_product responsible for zeroing buffers","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/7375e875cca488f6516f4c1eed85af344a1c7914"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-03-27 17:35:15.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-04-08 04:41:12.000000000","tz":-420},"subject":"Introduce a session-based API","message":"Introduce a session-based API\n\nCallers largely either repeatedly encode or repeatedly decode as\nquickly as they can. Introduce a session API so we can cache the\nbackend-instance lookup and get the global-lock holding out of the\nCPU-intensive paths. Sessions are owned by the thread that created\nthem; attempting to use them from another thread will return a new\nerror code, -EWRONGTHREAD.\n\nNote that this requires that backends not be destroyed while there are\nlive sessions open; add a new error code, -EBACKENDHASOPENSESSIONS,\nthat liberasurecode_instance_destroy may return in that case.\n\nThe session API is now the preferred API; the existing API is switched\nto use sessions under the hood.\n\nAssisted-by: Claude:claude-4.6-sonnet claude-code-2.1.85\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nChange-Id: I939b9afd19fb10c37238873e71537f6f80d95fa0\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/352d767b8c7a4d58d1430f7ee01b3fa0ea4a54b5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/352d767b8c7a4d58d1430f7ee01b3fa0ea4a54b5"}]},"branch":"refs/heads/master"},"56437e0defca2c91526c77f0abaea61407cfb20f":{"kind":"REWORK","_number":6,"created":"2026-04-27 20:27:19.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/05/982505/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/05/982505/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/05/982505/6"}}},"commit":{"parents":[{"commit":"8fa40705a3dc9293b17554538c2de79aae15c5a0","subject":"builtin: Make region_dot_product responsible for zeroing buffers","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/8fa40705a3dc9293b17554538c2de79aae15c5a0"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-03-27 17:35:15.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-04-24 21:44:32.000000000","tz":-420},"subject":"Introduce a session-based API","message":"Introduce a session-based API\n\nCallers largely either repeatedly encode or repeatedly decode as\nquickly as they can. Introduce a session API so we can cache the\nbackend-instance lookup and get the global-lock holding out of the\nCPU-intensive paths. Sessions are owned by the thread that created\nthem; attempting to use them from another thread will return a new\nerror code, -EWRONGTHREAD.\n\nNote that this requires that backends not be destroyed while there are\nlive sessions open; add a new error code, -EBACKENDHASOPENSESSIONS,\nthat liberasurecode_instance_destroy may return in that case.\n\nThe session API is now the preferred API; the existing API is switched\nto use sessions under the hood.\n\nAssisted-by: Claude:claude-4.6-sonnet claude-code-2.1.85\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nChange-Id: I939b9afd19fb10c37238873e71537f6f80d95fa0\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/56437e0defca2c91526c77f0abaea61407cfb20f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/56437e0defca2c91526c77f0abaea61407cfb20f"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
