fix: allow async SMB read responses#167
Conversation
WalkthroughUpdated Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Opened the downstream OpenDAL draft PR that depends on this fix: apache/opendal#7374 That PR intentionally avoids carrying a local |
|
I finally got to properly release v0.11.2, which rolls out this patch to crates.io! |
Closes #165
Summary
File::read_blockto accept async SMB2 responsesWhy
This fixes a real downstream problem in OpenDAL's new SMB backend draft PR: apache/opendal#7374.
That OpenDAL branch is intentionally not carrying a local
smb-rsfork. With crates.iosmb = 0.11.1, a real Samba behavior run still hits read-path failures like:OpenDAL only passes today because its retry layer reconnects and retries those reads. In other words, the downstream behavior suite is green, but only because retries are masking this
smb-rsbug.This change makes
read_blockconsistent with the existing write path, which already callswith_allow_async(true).Public downstream reproduction
The downstream reproduction is public now:
41faefd11f0f76253136e6aaa610bf360342d0a2To reproduce the bug without this fix:
Observed downstream behavior with crates.io
smb = 0.11.1:92 passed; 0 failedAsync command is not allowed in this contextRepresentative downstream log lines:
Validation
cargo check -p smbTo validate this change against the public downstream repro above, temporarily point the OpenDAL checkout to this PR branch and rerun the same behavior command. For example:
Expected result with this PR applied:
92 passed; 0 failedAsync command is not allowed in this contextread failures disappear