Unverified Commit 0f417def authored by mvdbeek's avatar mvdbeek
Browse files

Avoid FileNotFoundError when Dataset is purged, but HDA is not

Fixes
https://sentry.galaxyproject.org/share/issue/dadaa8d6b70042a29e9a946ffdd2b5af/:
```
FileNotFoundError: [Errno 2] No such file or directory: ''
  File "/cvmfs/main.galaxyproject.org/venv/lib/python3.8/site-packages/paste/recursive.py", line 85, in __call__
    return self.application(environ, start_response)
  File "galaxy/web/framework/middleware/statsd.py", line 29, in __call__
    req = self.application(environ, start_response)
  File "/cvmfs/main.galaxyproject.org/venv/lib/python3.8/site-packages/paste/httpexceptions.py", line 640, in __call__
    return self.application(environ, start_response)
  File "galaxy/web/framework/base.py", line 166, in __call__
    return self.handle_request(environ, start_response)
  File "galaxy/web/framework/base.py", line 251, in handle_request
    body = method(trans, **kwargs)
  File "galaxy/webapps/galaxy/controllers/dataset.py", line 590, in display_by_username_and_slug
    first_chunk = dataset.datatype.get_chunk(trans, dataset, 0)
  File "galaxy/datatypes/tabular.py", line 107, in get_chunk
    with compression_utils.get_fileobj(dataset.file_name) as f:
  File "galaxy/util/compression_utils.py", line 66, in get_fileobj
    return get_fileobj_raw(filename, mode, compressed_formats)[1]
  File "galaxy/util/compression_utils.py", line 126, in get_fileobj_raw
    return compressed_format, open(filename, mode, encoding="utf-8")
```
parent 46e41ba3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@ class DatasetInterface(BaseUIController, UsesAnnotations, UsesItemRatings, UsesE
            raise web.httpexceptions.HTTPNotFound(f"Invalid reference dataset id: {str(hda_id)}.")
        if not self._can_access_dataset(trans, data):
            return trans.show_error_message("You are not allowed to access this dataset")
        if data.purged:
        if data.purged or data.dataset.purged:
            return trans.show_error_message("The dataset you are attempting to view has been purged.")
        elif data.deleted and not (trans.user_is_admin or (data.history and trans.get_user() == data.history.user)):
            return trans.show_error_message("The dataset you are attempting to view has been deleted.")