huggingface / huggingface/dataset-viewer

Catch another UnexpectedException

Open
#2,999 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

error handling P2
Dominant language
Python
Stars
900
Forks
131
Avg merge
9h 26m
Merged PRs (30d)
14

Description

https://discuss.huggingface.co/t/strange-problems-with-datasets-server/43871/8

https://huggingface.co/datasets/rippleripple/ProbMed

The error was in step config-parquet-and-info:

{
  "error": "(ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')), '(Request ID: 2529cb6c-46ac-4c17-8e7a-44488f47d04e)')",
  "cause_exception": "ConnectionError",
  "cause_message": "(ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')), '(Request ID: 2529cb6c-46ac-4c17-8e7a-44488f47d04e)')",
  "cause_traceback": [
    "Traceback (most recent call last):\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 715, in urlopen\n httplib_response = self._make_request(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 467, in _make_request\n six.raise_from(e, None)\n",
    " File \"<string>\", line 3, in raise_from\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 462, in _make_request\n httplib_response = conn.getresponse()\n",
    " File \"/usr/local/lib/python3.9/http/client.py\", line 1377, in getresponse\n response.begin()\n",
    " File \"/usr/local/lib/python3.9/http/client.py\", line 320, in begin\n version, status, reason = self._read_status()\n",
    " File \"/usr/local/lib/python3.9/http/client.py\", line 289, in _read_status\n raise RemoteDisconnected(\"Remote end closed connection without\"\n",
    "http.client.RemoteDisconnected: Remote end closed connection without response\n",
    "\nDuring handling of the above exception, another exception occurred:\n\n",
    "Traceback (most recent call last):\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/requests/adapters.py\", line 589, in send\n resp = conn.urlopen(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 801, in urlopen\n retries = retries.increment(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/urllib3/util/retry.py\", line 552, in increment\n raise six.reraise(type(error), error, _stacktrace)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/urllib3/packages/six.py\", line 769, in reraise\n raise value.with_traceback(tb)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 715, in urlopen\n httplib_response = self._make_request(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 467, in _make_request\n six.raise_from(e, None)\n",
    " File \"<string>\", line 3, in raise_from\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 462, in _make_request\n httplib_response = conn.getresponse()\n",
    " File \"/usr/local/lib/python3.9/http/client.py\", line 1377, in getresponse\n response.begin()\n",
    " File \"/usr/local/lib/python3.9/http/client.py\", line 320, in begin\n version, status, reason = self._read_status()\n",
    " File \"/usr/local/lib/python3.9/http/client.py\", line 289, in _read_status\n raise RemoteDisconnected(\"Remote end closed connection without\"\n",
    "urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\n",
    "\nDuring handling of the above exception, another exception occurred:\n\n",
    "Traceback (most recent call last):\n",
    " File \"/src/services/worker/src/worker/job_manager.py\", line 127, in process\n job_result = self.job_runner.compute()\n",
    " File \"/src/services/worker/src/worker/job_runners/config/parquet_and_info.py\", line 1671, in compute\n compute_config_parquet_and_info_response(\n",
    " File \"/src/services/worker/src/worker/job_runners/config/parquet_and_info.py\", line 1577, in compute_config_parquet_and_info_response\n parquet_operations = convert_to_parquet(builder)\n",
    " File \"/src/services/worker/src/worker/job_runners/config/parquet_and_info.py\", line 1191, in convert_to_parquet\n builder.download_and_prepare(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/builder.py\", line 1027, in download_and_prepare\n self._download_and_prepare(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/builder.py\", line 1789, in _download_and_prepare\n super()._download_and_prepare(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/builder.py\", line 1100, in _download_and_prepare\n split_generators = self._split_generators(dl_manager, **split_generators_kwargs)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/packaged_modules/folder_based_builder/folder_based_builder.py\", line 114, in _split_generators\n downloaded_files = dl_manager.download(files)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/download/download_manager.py\", line 257, in download\n downloaded_path_or_paths = map_nested(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/utils/py_utils.py\", line 511, in map_nested\n mapped = [\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/utils/py_utils.py\", line 512, in <listcomp>\n _single_map_nested((function, obj, batched, batch_size, types, None, True, None))\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/utils/py_utils.py\", line 380, in _single_map_nested\n return [mapped_item for batch in iter_batched(data_struct, batch_size) for mapped_item in function(batch)]\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/utils/py_utils.py\", line 380, in <listcomp>\n return [mapped_item for batch in iter_batched(data_struct, batch_size) for mapped_item in function(batch)]\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/download/download_manager.py\", line 300, in _download_batched\n return thread_map(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/tqdm/contrib/concurrent.py\", line 69, in thread_map\n return _executor_map(ThreadPoolExecutor, fn, *iterables, **tqdm_kwargs)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/tqdm/contrib/concurrent.py\", line 51, in _executor_map\n return list(tqdm_class(ex.map(fn, *iterables, chunksize=chunksize), **kwargs))\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/tqdm/std.py\", line 1181, in __iter__\n for obj in iterable:\n",
    " File \"/usr/local/lib/python3.9/concurrent/futures/_base.py\", line 609, in result_iterator\n yield fs.pop().result()\n",
    " File \"/usr/local/lib/python3.9/concurrent/futures/_base.py\", line 446, in result\n return self.__get_result()\n",
    " File \"/usr/local/lib/python3.9/concurrent/futures/_base.py\", line 391, in __get_result\n raise self._exception\n",
    " File \"/usr/local/lib/python3.9/concurrent/futures/thread.py\", line 58, in run\n result = self.fn(*self.args, **self.kwargs)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/download/download_manager.py\", line 323, in _download_single\n out = cached_path(url_or_filename, download_config=download_config)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/utils/file_utils.py\", line 201, in cached_path\n output_path = get_from_cache(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/utils/file_utils.py\", line 676, in get_from_cache\n fsspec_get(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/datasets/utils/file_utils.py\", line 385, in fsspec_get\n fs.get_file(path, temp_file.name, callback=callback)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/huggingface_hub/hf_file_system.py\", line 636, in get_file\n http_get(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/huggingface_hub/file_download.py\", line 456, in http_get\n r = _request_wrapper(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/huggingface_hub/file_download.py\", line 392, in _request_wrapper\n response = get_session().request(method=method, url=url, **params)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/requests/sessions.py\", line 589, in request\n resp = self.send(prep, **send_kwargs)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/requests/sessions.py\", line 724, in send\n history = [resp for resp in gen]\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/requests/sessions.py\", line 724, in <listcomp>\n history = [resp for resp in gen]\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/requests/sessions.py\", line 265, in resolve_redirects\n resp = self.send(\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/requests/sessions.py\", line 703, in send\n r = adapter.send(request, **kwargs)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/huggingface_hub/utils/_http.py\", line 66, in send\n return super().send(request, *args, **kwargs)\n",
    " File \"/src/services/worker/.venv/lib/python3.9/site-packages/requests/adapters.py\", line 604, in send\n raise ConnectionError(err, request=request)\n",
    "requests.exceptions.ConnectionError: (ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')), '(Request ID: 2529cb6c-46ac-4c17-8e7a-44488f47d04e)')\n"
  ]
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/worker/job_manager.py:127 and src/worker/job_runners/config/parquet_and_info.py at lines 1191, 1577, and 1671, then trace how the ConnectionError from dataset downloads is handled. Confirm how UnexpectedException cases are represented and add coverage for this failure path; done means the reported download error is handled consistently rather than escaping as an unclassified worker failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.