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

test harness doesn"t run in parallel #9

Open
nikomatsakis opened this issue Jan 6, 2022 · 8 comments
Open

test harness doesn"t run in parallel #9

nikomatsakis opened this issue Jan 6, 2022 · 8 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@nikomatsakis
Copy link
Member

It should. Shouldn"t be that hard, maybe just call tokio::spawn around this call

self.test_dada_file(path)
.await
.with_context(|| format!("testing `{}`", path.display()))?;

and add some joins later on?

@nikomatsakis nikomatsakis added enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed labels Jan 6, 2022
@lqd
Copy link
Contributor

lqd commented Jan 8, 2022

Some of these futures seem to be referencing the salsa db and holding it across await points -- that is, they are !Send -- so presumably this is slightly more complex than a tokio::spawn call ?

@nikomatsakis
Copy link
Member Author

Hmm. I thought that each test created its own database? Not sure.

@lqd
Copy link
Contributor

lqd commented Jan 10, 2022

I believe that they do, but IIRC some of the Kernel interpretation is async and uses the non-Send db. I"ll check again.

@nikomatsakis
Copy link
Member Author

nikomatsakis commented Jan 10, 2022

Ah, I see. We should use a "non-workstealing" setup of tokio, or switch to glommio perhaps. We could also make things Send but I"m not sure that"s worth the bother.

@nikomatsakis
Copy link
Member Author

That said, I imagine everything is Send...

@nikomatsakis nikomatsakis removed the help wanted Extra attention is needed label Jan 13, 2022
@brson
Copy link
Contributor

brson commented Sep 28, 2022

I spent some time looking at this and got stuck once I started running tests in parallel and in arbitrary order. The shared LSP appears to deadlock within salsa while interning InputFile. It"s pretty unexpected since I"m serializing requests to the LSP and it shouldn"t be experiencing any parallelism.

I"m stumped for now. Here"s my branch: https://github.com/brson/dada/tree/parallel-tests

@nikomatsakis
Copy link
Member Author

We just landed a PR fixing a potential deadlock with interning in salsa, so that may be related.

@brson
Copy link
Contributor

brson commented Nov 27, 2022

I rebased my parallel testing branch and it still deadlocks. Haven"t investigated further.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants