Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Misleading DoesNotExistErrors in open calls #3388

Open
ryan-williams opened this issue Nov 25, 2024 · 3 comments
Open

[Bug] Misleading DoesNotExistErrors in open calls #3388

ryan-williams opened this issue Nov 25, 2024 · 3 comments
Assignees

Comments

@ryan-williams
Copy link
Member

ryan-williams commented Nov 25, 2024

  1. Experiment.open raises DoesNotExistError when passed a URI to a different type (e.g. a SparseNDArray URI within an Experiment)

  2. All .opens (including tiledbsoma.open) raise DoesNotExistError if AWS_{DEFAULT_,}REGION is not set (though e.g. aws s3 ls figures it out).

    Occurs even if ~/.aws/config contains:

    [default]
    region = us-west-2
    

A clearer error message would help, in both cases.

Original description follows:


import tiledbsoma
uri = 's3://cellxgene-census-public-us-west-2/cell-census/2024-07-01/soma/census_data/homo_sapiens/ms/RNA/X/raw'
tiledbsoma.open(uri)             # ⚠️ Passes on GHA, fails locally on M3 Macbook and Ubuntu EC2 instance
tiledbsoma.Experiment.open(uri)  # ❌ Fails locally and on GHA
# ✅ OK; URI is resolvable with AWS environment configs
aws s3 ls s3://cellxgene-census-public-us-west-2/cell-census/2024-07-01/soma/census_data/homo_sapiens/ms/RNA/X/raw

Here's an example GHA showing the Experiment.open failure on {1.14.5,1.15.0rc4} x py{3.9.19,3.11.8} x ubuntu-latest.

It seems that clib.SOMAObject.open can return None for a variety of reasons, here, but we always just raise DoesNotExistError.

Versions (please complete the following information):

  • TileDB-SOMA version: 1.14.5, 1.15.0rc4
  • Language and language version: Python 3.9.19, 3.11.8
  • OS: MacOS, Ubuntu

From one of the GHA failures:

tiledbsoma.__version__              1.[15](https://github.com/ryan-williams/tiledb-scratch/actions/runs/12015718039/job/33494374982#step:5:16).0rc4
TileDB core version (libtiledbsoma) 2.27.0
python version                      3.11.8.final.0
OS version                          Linux 6.5.0-1025-azure
@ryan-williams
Copy link
Member Author

@johnkerl ID'd 2 issues I was hitting:

  1. Experiment.open was failing because I was trying to open a SparseNDArray
  2. Both were failing locally because I didn't have $AWS_REGION set

Would be great to improve on the DoesNotExistError for both cases.

@ryan-williams ryan-williams changed the title [Bug] Spurious DoesNotExistError in Experiment.open [Bug] Misleading DoesNotExistError in open calls Nov 25, 2024
@ryan-williams ryan-williams changed the title [Bug] Misleading DoesNotExistError in open calls [Bug] Misleading DoesNotExistErrors in open calls Nov 26, 2024
@johnkerl
Copy link
Member

johnkerl commented Dec 2, 2024

Note we need to implement this wired all the way through C++/Python/R -- I'm adding myself as the R assignee

@johnkerl
Copy link
Member

Notes about the R side:
#3402 (review)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants