Skip to content

scipion breaks if protocols database is unavailable #615

@rmarabini

Description

@rmarabini

There is a Scipion large database that contains many workflows
contributed by different users. Based on this database, Scipion
attempts to anticipate what users may want to do next by:

Suggesting the next protocol likely to be used.
Partially completing the corresponding form.

The database runs on Amazon Cloud. Unfortunately, if it is temporarily
unavailable Scipion breaks. we should make this step more robust so scipion
may be used even if the database is not available. (I guess a try/except will do the trick)

Follows Error message:

The import line here is:

Traceback (most recent call last):
File "/apps/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/project/usage.py", line 161, in getNextProtocolSuggestions

Suggestions system not available
Traceback (most recent call last):
File "/apps/miniconda3/envs/scipion3/lib/python3.8/urllib/request.py", line 1354, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/apps/miniconda3/envs/scipion3/lib/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/apps/miniconda3/envs/scipion3/lib/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/apps/miniconda3/envs/scipion3/lib/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/apps/miniconda3/envs/scipion3/lib/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/apps/miniconda3/envs/scipion3/lib/python3.8/http/client.py", line 951, in send
self.connect()
File "/apps/miniconda3/envs/scipion3/lib/python3.8/http/client.py", line 1418, in connect
super().connect()
File "/apps/miniconda3/envs/scipion3/lib/python3.8/http/client.py", line 922, in connect
self.sock = self._create_connection(
File "/apps/miniconda3/envs/scipion3/lib/python3.8/socket.py", line 820, in create_connection
raise err
File "/apps/miniconda3/envs/scipion3/lib/python3.8/socket.py", line 808, in create_connection
sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/apps/miniconda3/envs/scipion3/lib/python3.8/site-packages/pyworkflow/project/usage.py", line 161, in getNextProtocolSuggestions
results = json.loads(urlopen(url).read().decode('utf-8'))
File "/apps/miniconda3/envs/scipion3/lib/python3.8/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/apps/miniconda3/envs/scipion3/lib/python3.8/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/apps/miniconda3/envs/scipion3/lib/python3.8/urllib/request.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/apps/miniconda3/envs/scipion3/lib/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/apps/miniconda3/envs/scipion3/lib/python3.8/urllib/request.py", line 1397, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File "/apps/miniconda3/envs/scipion3/lib/python3.8/urllib/request.py", line 1357, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 110] Connection timed out>

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions