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

Crashed when multithreading? #166

Open
yannickwurm opened this issue Sep 30, 2022 · 8 comments
Open

Crashed when multithreading? #166

yannickwurm opened this issue Sep 30, 2022 · 8 comments

Comments

@yannickwurm
Copy link
Member

No description provided.

@IsmailM
Copy link
Member

IsmailM commented Oct 2, 2022

Do you have any further details? What was the command that you ran? How many sequences in the input file? Where did you run this (I.e. OS / available resources etc.)

@yannickwurm
Copy link
Member Author

I think its when 1 uesr uses the web app, and another one does too... a bunch of requests failed
I imagine some multithreading collision is an easy explanation

(was with MSc students with short example file)

@yannickwurm
Copy link
Member Author

18.08 with many cores

@IsmailM
Copy link
Member

IsmailM commented Oct 4, 2022

So, are you referring to use via the web app?

If so, this is an expected bug - as we do not have a queueing system in place. Therefore, the current implementation will attempt to run everything as soon as the request is received.

@yannickwurm
Copy link
Member Author

yannickwurm commented Oct 4, 2022 via email

@IsmailM
Copy link
Member

IsmailM commented Oct 10, 2022

We would need a queueing system.

e.g. this could be as simple as having an array stored in memory (or storing the input query in a file and keeping the filenames in the array)...

But it might be easier to rewrite the app side of this with Rails and use ActiveJob (e.g. Delayed)...

@yannickwurm
Copy link
Member Author

yannickwurm commented Oct 11, 2022 via email

@IsmailM
Copy link
Member

IsmailM commented Oct 11, 2022

Yep, good idea.

We are using the same pool.rb code for the GeneValidator threads queue.

We should be able to use the same queueing system for the app as well. And set it up so that the app only processes a single query at a time. (and then use the threads arguments as normal inside GeneValidator for blast etc.).

If we go down this route, we would also need to move to a polling system - which will mean we need changes to the routes + frontend.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants