)]}'
{"id":"snix~30585","triplet_id":"snix~canon~I58cdbd952f4ecc39bdc2f2fa69a788caa0cc78ba","project":"snix","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000004":{"account":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"last_update":"2025-06-29 15:35:18.000000000","reason":"Change was submitted"},"1000009":{"account":{"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"},"last_update":"2025-06-29 14:15:47.000000000","reason":"removed on reply"},"1000008":{"account":{"_account_id":1000008,"name":"Connor Brewster","email":"cbrewster@hey.com","username":"cbrewster"},"last_update":"2025-06-29 15:35:18.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I58cdbd952f4ecc39bdc2f2fa69a788caa0cc78ba","subject":"fix(castore/fs): enter the runtime context before blocking on tasks","status":"MERGED","created":"2025-06-29 13:14:31.000000000","updated":"2025-06-29 15:35:18.000000000","submitted":"2025-06-29 15:35:18.000000000","submitter":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"30586","meta_rev_id":"2797dae0f29e974f4c1403542ce90058b0054a7a","_number":30585,"virtual_id_number":30585,"owner":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"},"all":[{"value":0,"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2025-06-29 15:35:18.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"}],"values":{"-2":"This shall not be merged","-1":"I would prefer this is not merged as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0,"optional":true},"Verified":{"approved":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:gerrit:merged","value":1,"date":"2025-06-29 15:35:18.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0,"optional":true},"Autosubmit":{"all":[{"value":0,"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"}],"values":{" 0":"Submit manually","+1":"Submit automatically"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":1000008,"name":"Connor Brewster","email":"cbrewster@hey.com","username":"cbrewster"}],"reviewers":{"REVIEWER":[{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"_account_id":1000008,"name":"Connor Brewster","email":"cbrewster@hey.com","username":"cbrewster"},{"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-06-29 13:14:31.000000000","updated_by":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"},"state":"REVIEWER"},{"updated":"2025-06-29 13:14:31.000000000","updated_by":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000008,"name":"Connor Brewster","email":"cbrewster@hey.com","username":"cbrewster"},"state":"REVIEWER"},{"updated":"2025-06-29 13:14:33.000000000","updated_by":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2025-06-29 13:52:39.000000000","updated_by":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"e99920f393d0b9440343c2c1613708e04a17ce42","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"date":"2025-06-29 13:14:31.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"2d96087af3bb78c1a1f70d35673f8e1a6e989a70","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-06-29 13:14:33.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/snix/snix/builds/1385","accounts_in_message":[],"_revision_number":1},{"id":"bce6d63da4399dcfec821b78d8f0ae73effe7b86","tag":"autogenerated:buildkite~result","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-06-29 13:52:39.000000000","message":"Patch Set 1: Verified+1\n\nBuild of patchset 1 passed: https://buildkite.com/snix/snix/builds/1385","accounts_in_message":[],"_revision_number":1},{"id":"5b7a8d0fa3399b5323bc7983649f0df63fa187df","author":{"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"},"date":"2025-06-29 14:15:47.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"2797dae0f29e974f4c1403542ce90058b0054a7a","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"date":"2025-06-29 15:35:18.000000000","message":"Change has been successfully rebased and submitted as ae2af10cf84475da13f26722769796bfbf652502","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"ae2af10cf84475da13f26722769796bfbf652502","revisions":{"4e74f42e30681d90daefd8dd5a86cd1bb24b81ce":{"kind":"REWORK","_number":1,"created":"2025-06-29 13:14:31.000000000","uploader":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/85/30585/1","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/85/30585/1","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/85/30585/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/85/30585/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/85/30585/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/85/30585/1"}}},"commit":{"parents":[{"commit":"2f27760e3884d0c3e92ea50cee0b693186e48a09","subject":"fix(castore/fs): fix names"}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2025-06-28 22:15:04.000000000","tz":180},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2025-06-29 12:54:48.000000000","tz":180},"subject":"fix(castore/fs): enter the runtime context before blocking on tasks","message":"fix(castore/fs): enter the runtime context before blocking on tasks\n\nfuse-backend-rs spawns multiple threads, but these don\u0027t automatically\ninherit the tokio runtime context.\n\nSpawning tasks from \"the wrong thread\" would then cause a panic, as seen\nin https://git.snix.dev/snix/snix/issues/147.\n\nHowever, cl/30575 didn\u0027t really fix this, it only removed one place\nspawning tasks, without fixing the underlying issue.\n\nPathInfoService / BlobService / DirectoryService are expected to spawn\ntasks. We need to simply invoke `.enter()` from all worker threads, and\nthat\u0027s what this CL does.\n\nAn alternative would be to manually (re)-enter inside every function of\nthe FileSystem trait, but that\u0027d be very messy.\n\nA similar fix needs to end up in the virtiofs implementation, but we\ndon\u0027t have control over the (single) thread being spawned by\nVhostUserDaemon there, so cannot just enter the runtime context there,\nso virtiofs will stay broken for now.\n\nMaybe it\u0027s time to re-architect this a bit - have our FileSystem impl\nbe little code and call to sync endpoints to do the actual work, which\nis then handled by workers on another thread - but that\u0027s left for\nanother CL.\n\nChange-Id: I58cdbd952f4ecc39bdc2f2fa69a788caa0cc78ba\n"},"branch":"refs/heads/canon"},"ae2af10cf84475da13f26722769796bfbf652502":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":2,"created":"2025-06-29 15:35:18.000000000","uploader":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/85/30585/2","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/85/30585/2","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/85/30585/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/85/30585/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/85/30585/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/85/30585/2"}}},"commit":{"parents":[{"commit":"95fd048e00665d4a7c23a6138b1efef671f6a48e","subject":"fix(castore/fs): fix names"}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2025-06-28 22:15:04.000000000","tz":180},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2025-06-29 15:35:18.000000000","tz":0},"subject":"fix(castore/fs): enter the runtime context before blocking on tasks","message":"fix(castore/fs): enter the runtime context before blocking on tasks\n\nfuse-backend-rs spawns multiple threads, but these don\u0027t automatically\ninherit the tokio runtime context.\n\nSpawning tasks from \"the wrong thread\" would then cause a panic, as seen\nin https://git.snix.dev/snix/snix/issues/147.\n\nHowever, cl/30575 didn\u0027t really fix this, it only removed one place\nspawning tasks, without fixing the underlying issue.\n\nPathInfoService / BlobService / DirectoryService are expected to spawn\ntasks. We need to simply invoke `.enter()` from all worker threads, and\nthat\u0027s what this CL does.\n\nAn alternative would be to manually (re)-enter inside every function of\nthe FileSystem trait, but that\u0027d be very messy.\n\nA similar fix needs to end up in the virtiofs implementation, but we\ndon\u0027t have control over the (single) thread being spawned by\nVhostUserDaemon there, so cannot just enter the runtime context there,\nso virtiofs will stay broken for now.\n\nMaybe it\u0027s time to re-architect this a bit - have our FileSystem impl\nbe little code and call to sync endpoints to do the actual work, which\nis then handled by workers on another thread - but that\u0027s left for\nanother CL.\n\nChange-Id: I58cdbd952f4ecc39bdc2f2fa69a788caa0cc78ba\nReviewed-on: https://cl.snix.dev/c/snix/+/30585\nTested-by: besadii\nReviewed-by: Vova Kryachko \u003cv.kryachko@gmail.com\u003e\n"},"branch":"refs/heads/canon","description":"Rebase","conflicts":{"ours":"4e74f42e30681d90daefd8dd5a86cd1bb24b81ce","theirs":"95fd048e00665d4a7c23a6138b1efef671f6a48e","contains_conflicts":false}}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"}},{"label":"Verified","status":"MAY","applied_by":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]}},{"label":"Autosubmit","status":"MAY"}]},{"rule_name":"Code-Owners","status":"CLOSED"}],"submit_requirements":[{"name":"Verified","description":"Label \u0027Verified+1\u0027 is required","status":"SATISFIED","is_legacy":false,"applicability_expression_result":{"fulfilled":true,"status":"PASS"},"submittability_expression_result":{"expression":"label:Verified\u003dMAX,user\u003dnon_uploader","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX,user\u003dnon_uploader"],"failing_atoms":[],"atom_explanations":{"label:Verified\u003dMAX,user\u003dnon_uploader":""}}},{"name":"Code-Owners","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"rule:Code-Owners","fulfilled":true,"status":"PASS","passing_atoms":["Code-Owners"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","description":"At least one maximum vote for label \u0027Code-Review\u0027 is required, minimum votes block submits","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX,user\u003dnon_uploader AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX,user\u003dnon_uploader"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX,user\u003dnon_uploader":"","label:Code-Review\u003dMIN":""}}},{"name":"No-Unresolved-Comments","description":"Changes that have unresolved comments are not submittable.","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"-has:unresolved","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}}]}
