mirror of
https://github.com/deepseek-ai/3FS.git
synced 2026-11-05 00:47:47 +00:00
[PR #422] fix(python): release userdata reference when prepare fails #426
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/3FS#426
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/deepseek-ai/3FS/pull/422
Author: @030611
Created: 8/11/2026
Status: 🔄 Open
Base:
main← Head:fix/usrbio-prepare-error-ref📝 Commits (1)
5ebc19cfix(python): release userdata on prepare failure📊 Changes
1 file changed (+13 additions, -10 deletions)
View changed files
📝
src/lib/py/usrbio_binding.cc(+13 -10)📄 Description
The Python binding retains userdata manually so an asynchronous completion can return it later. When hf3fs_prep_io() returns a negative errno, no completion will be produced, but the retained reference was previously left behind.
Limit the GIL release to the native prepare call and release the manual reference on the error path after the GIL has been restored. The successful prepare/completion ownership path is unchanged.
This is separate from the userdata/iov reference cycle addressed by #421.
Validation:
I could not run the 3FS/FUSE integration path locally.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.