Repository navigation
[Bug]: Extraction stops after 30 seconds #69
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Bug Report
When extracting metadata from a large file, the extraction process times out after 30 seconds. Fails in production and via a local build of the container image
To Reproduce
Press the "extract metadata from files" button on the webform after files are uploaded.
CLI command used
docker pull ghcr.io/ccpbiosim/biosimdb-interface:2026-09-17-interface-1.0.0-schema-1.0.0-extractor-0.0.16
docker run -p 5002:5002 --env-file biosimdb_interface/.env ghcr.io/ccpbiosim/biosimdb-interface:2026-09-17-interface-1.0.0-schema-1.0.0-extractor-0.0.16Actual output
[2026-10-08 09:53:55 +0000] [8] [INFO] Worker exiting (pid: 8)
[2026-10-08 09:53:56 +0000] [32] [INFO] Booting worker with pid: 32
[2026-10-08 09:53:56 +0000] [7] [INFO] Control socket listening at /home/biosim/.gunicorn/gunicorn.ctl
[2026-10-08 09:54:28 +0000] [7] [CRITICAL] WORKER TIMEOUT (pid:32)
[2026-10-08 09:54:28 +0000] [32] [ERROR] Error handling request POST /biosimdb/extract_metadata
Traceback (most recent call last):
File "/venv/lib/python3.12/site-packages/gunicorn/workers/sync.py", line 141, in handle
self.handle_request(listener, req, client, addr)
File "/venv/lib/python3.12/site-packages/gunicorn/workers/sync.py", line 184, in handle_request
respiter = self.wsgi(environ, resp.start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/flask/app.py", line 1536, in __call__
return self.wsgi_app(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/biosimdb_interface/form/extract.py", line 70, in extract_metadata
workflow_id = request.form.get("workflow_id")
^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/werkzeug/utils.py", line 100, in __get__
value = self.fget(obj) # type: ignore
^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 445, in form
self._load_form_data()
File "/venv/lib/python3.12/site-packages/flask/wrappers.py", line 198, in _load_form_data
super()._load_form_data()
File "/venv/lib/python3.12/site-packages/werkzeug/wrappers/request.py", line 271, in _load_form_data
data = parser.parse(
^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/werkzeug/formparser.py", line 242, in parse
return parse_func(stream, mimetype, content_length, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/werkzeug/formparser.py", line 267, in _parse_multipart
form, files = parser.parse(stream, boundary, content_length)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/werkzeug/formparser.py", line 368, in parse
for data in _chunk_iter(stream.read, self.buffer_size):
File "/venv/lib/python3.12/site-packages/werkzeug/formparser.py", line 423, in _chunk_iter
data = read(size)
^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/gunicorn/http/body.py", line 227, in read
data = self.reader.read(1024)
^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/gunicorn/http/body.py", line 137, in read
data = self.unreader.read()
^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/gunicorn/http/unreader.py", line 44, in read
ret = self.buf.getvalue()
^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/gunicorn/workers/base.py", line 199, in handle_abort
sys.exit(1)
SystemExit: 1Expected output
Metadata extraction completes with form fields filled in with extracted metadata
Environment and Versions
- Operating System: Mac OSX
- biosimdb-interface Version: 1.0.0
- Python Version: python3.12
- Package list:
- "Flask==3.1.3",
- "Werkzeug==3.1.9",
- "data-collections-api==0.1.0",
- "MDAnalysis==2.10.0",
- "python-dotenv==1.2.4",
- "gunicorn>=26,<27",
- "biosim-extractor>=1.0.1,<2.0"
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity