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

Emulate sync mode in client, while always sending async requests to server #207

Open
huard opened this issue Oct 27, 2021 · 4 comments
Open
Assignees

Comments

@huard
Copy link
Contributor

huard commented Oct 27, 2021

Description

Due to some weird interactions between dask and PyWPS multiprocessing logic, there is a lock happening when PyWPS runs a process in async mode after having run a process in sync mode. One option is to always run in async mode server side, but have the client "wait" for the server to respond, like in a sync call.

At the moment, the execution mode is set using the progress argument, which is not intuitive and mixes two concepts, the progress bar display and the execution mode. I believe we should review our user interface for this, to allow in particular the possibility to send async requests but wait for the response in the client.

@huard
Copy link
Contributor Author

huard commented Oct 27, 2021

@cehbrecht
@cjauvin

@cjauvin
Copy link

cjauvin commented Oct 27, 2021

The problem I see with this fix is that it is making a big change to the interface in order to essentially overcome a problem with only a very specific component: writing a NetCDF file in parallel with Dask + multiprocessing.

@cjauvin
Copy link

cjauvin commented Oct 27, 2021

The ideal would be to understand the problem and find a way to mitigate it at the core, but nobody seems to have a clue (I asked in many places/contexts).

@huard
Copy link
Contributor Author

huard commented Oct 27, 2021

We can keep the current interface as is, and just add new thin interfaces without disrupting existing code.

@huard huard self-assigned this Apr 4, 2022
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