Fix Test Failure - TestScanAsync_InvalidCursorId
#133
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The
TestScanAsync_InvalidCursorIdtest was failing due to a race condition in the Rust FFI layer. When an invalid cursor ID was provided to cluster scan operations, the Rust code was calling the failure callback twice:panic_guard.panickedwas not set.This caused
SetExceptionto be called multiple times on the sameMessageobject in C#, leading to assertion failures and process crashes. This caused the test runner to stall while it waited for the process to complete.Solution
panic_guard.panicked = falsebefore early returns to prevent the panic guard from triggering additional failure callbacksreport_errorfunction instead of manual string formatting to avoid potential dangling pointer issuesChanges
rust/src/lib.rs: Fixed panic guard handling and improved error reporting inrequest_cluster_scantests/Valkey.Glide.IntegrationTests/ScanTests.cs: Simplified test implementationFixes #132