Skip to content
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

oneshot deadlock in 0.1.0-pre8 #29

Open
zzau13 opened this issue Jan 25, 2023 · 4 comments
Open

oneshot deadlock in 0.1.0-pre8 #29

zzau13 opened this issue Jan 25, 2023 · 4 comments
Labels
bug Something isn't working

Comments

@zzau13
Copy link
Contributor

zzau13 commented Jan 25, 2023

Have deadlock here https://github.com/botika/unblock/actions/runs/4009192427/jobs/6884250212

@fereidani fereidani changed the title deadlock in 0.1.0-pre8 oneshot deadlock in 0.1.0-pre8 Jan 25, 2023
@fereidani fereidani added the bug Something isn't working label Jan 25, 2023
@fereidani
Copy link
Owner

Thanks for the report, I'm working on it.

@fereidani
Copy link
Owner

Can you reproduce it on the stable branch or is it just on nightly?
Unfortunately, I can't reproduce this issue on my system in stable or nightly and it is making it hard to debug.
Are you sure that there is nothing wrong with your CI?

@zzau13
Copy link
Contributor Author

zzau13 commented Jan 25, 2023

I can't play it on my machine. But CI with tokyo or async-oneshot works fine in 4 seconds. And the same implementation but with kanal gives this timeout of 2 minutes.

@ppodolsky
Copy link

ppodolsky commented Feb 12, 2023

@fereidani Hola! I was experimenting with kanal and tried to use it as a drop-in replacement for crossbeam_channel (in my fork of Tantivy search library) and flume (in Iroh, IPFS implementation in Rust). Highly likely it is me doing something wrong, but I didn't manage to make tests to pass, looks like them had been deadlocked.

I've created an exhibition PR for you, https://github.com/izihawa/tantivy/pull/16/files
where I've replaced channels. Before patch cargo test works, after patch - does not.

I'm not very experienced in all this stuff and not sure is it any helpful, but still hope you may dig something there

UPD.
Well, I've should paid more attention to documentation, oneshot in kanal behaves differently and it was a reason of blockings. Tantivy works well if I take bounded(1) instead of oneshot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants