cubimedrub / macworp

A web interface for Nextflow
15 stars 8 forks source link

Problem Standing Up Worker with Makefile #20

Open braisgaldo opened 1 week ago

braisgaldo commented 1 week ago

Hi! I'm trying to stand up all components using the makefile.

First of all, the statemente production-test is executed followed tb production-worker-test. But when worker want to achieve the nginx engine, it has a problem retrieving the certificate.

These are the logs: Process WorkflowExecutor-2: Traceback (most recent call last): File "/home/brais/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 466, in _make_request self._validate_conn(conn) File "/home/brais/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 1095, in _validate_conn conn.connect() File "/home/brais/.local/lib/python3.10/site-packages/urllib3/connection.py", line 730, in connect sock_and_verified = _ssl_wrap_socket_and_match_hostname( File "/home/brais/.local/lib/python3.10/site-packages/urllib3/connection.py", line 909, in _ssl_wrap_socket_and_match_hostname ssl_sock = ssl_wrapsocket( File "/home/brais/.local/lib/python3.10/site-packages/urllib3/util/ssl.py", line 469, in ssl_wrap_socket ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, serverhostname) File "/home/brais/.local/lib/python3.10/site-packages/urllib3/util/ssl.py", line 513, in _ssl_wrap_socket_impl return ssl_context.wrap_socket(sock, server_hostname=server_hostname) File "/home/brais/anaconda3/envs/nf_cloud/lib/python3.10/ssl.py", line 513, in wrap_socket return self.sslsocket_class._create( File "/home/brais/anaconda3/envs/nf_cloud/lib/python3.10/ssl.py", line 1104, in _create self.do_handshake() File "/home/brais/anaconda3/envs/nf_cloud/lib/python3.10/ssl.py", line 1375, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/brais/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 789, in urlopen response = self._make_request( File "/home/brais/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 490, in _make_request raise new_e urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/home/brais/.local/lib/python3.10/site-packages/requests/adapters.py", line 667, in send resp = conn.urlopen( File "/home/brais/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 843, in urlopen retries = retries.increment( File "/home/brais/.local/lib/python3.10/site-packages/urllib3/util/retry.py", line 519, in increment raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='localhost', port=16161): Max retries exceeded with url: /api/workflows/1 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/brais/anaconda3/envs/nf_cloud/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap self.run() File "macworp/worker/src/nf_cloud_worker/workflow_executor.py", line 250, in run workflow: Dict[str, Any] = self.__nf_cloud_web_api_client.get_workflow(project_params["workflow_id"]) File "macworp/worker/src/nf_cloud_worker/web/nf_cloud_web_api_client.py", line 60, in get_workflow with requests.get( File "/home/brais/.local/lib/python3.10/site-packages/requests/api.py", line 73, in get return request("get", url, params=params, kwargs) File "/home/brais/.local/lib/python3.10/site-packages/requests/api.py", line 59, in request return session.request(method=method, url=url, kwargs) File "/home/brais/.local/lib/python3.10/site-packages/requests/sessions.py", line 589, in request resp = self.send(prep, send_kwargs) File "/home/brais/.local/lib/python3.10/site-packages/requests/sessions.py", line 703, in send r = adapter.send(request, kwargs) File "/home/brais/.local/lib/python3.10/site-packages/requests/adapters.py", line 698, in send raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='localhost', port=16161): Max retries exceeded with url: /api/workflows/1 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)')))

Another question is if the progressbar of the workflow is completed, i meant if it is filled when workflow is executed.

Thanks Best Regards

di-hardt commented 1 week ago

Hey, thanks for the report. I'll have a look into the production-test setup, this week. It is something I rarely use. Normally I pay attention to it after a bunch of updates.

Regarding the progress bar - Yes it is getting updates while the workflow is executed. But it has two strange behaviors:

  1. It decreases from time to time as the initial number of processes of a workflow is initially unknown
  2. It happens, that the websockets are not connecting correctly to the backaned. In this case nohting is updated. Currently only a page refresh is helping until I have time to dig into the issue.
braisgaldo commented 6 days ago

Okey thanks a lot!!

I understand it, but maybe in my case it was relation with the fact that no worker could start its process.

What would be the alternative to be able to run the complete ecosystem?

Thanks a lot, Best regards!

di-hardt commented 5 days ago

If you just want to check it out, I would recommend to follow the development guide to get it running. This is the most basic working setup, no fancy SSL-setup, no reverse proxy and the users are managed by a file (https://github.com/cubimedrub/macworp/blob/main/dev_auth.yaml).

The Makefile production test is really the most fancy setup with all features. Too much for just having a look.