-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Abscissa context poisoned in tests #326
Comments
Yeah, this is a bug. The runner should catch the panics but otherwise release the mutex cleanly. |
// The lock is poisoned by this point, but the returned result can be
// pattern matched on to return the underlying guard on both branches.
let mut guard = match lock.lock() {
Ok(guard) => guard,
Err(poisoned) => poisoned.into_inner(),
}; src.: https://doc.rust-lang.org/std/sync/struct.Mutex.html#examples Wouldn't be just matching on the result in https://github.com/iqlusioninc/abscissa/blob/main/core/src/testing/runner.rs#L195 be easier than to |
Without Adding a |
I've been using the Abscissa test framework to do integration testing.
The shared context gets poisoned if one of the tests fails, bringing down all the other tests with it. (Regardless of if they should succeed or fail.)
I guess this should be considered a bug, but I don't know the working details to evaluate the issue.
This is a log from GitHub Actions: https://github.com/informalsystems/ibc-rs/runs/926134260
The
query_channel_id
test fails properly, but the upcomingquery_client_id
andquery_connection_id
tests, which should fail similarly, panic instead, because of the poisoned mutex.Note: the tests all fail, even if only one fails properly and the rest should succeed.
The text was updated successfully, but these errors were encountered: