-
-
Notifications
You must be signed in to change notification settings - Fork 43
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
Byte range support #166
Byte range support #166
Conversation
This is needed to run the byte range tests. Also force byte range support on just to be sure (but it should be on by default).
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
@WardF @DennisHeimbigner While the tests pass (you can ignore the spurious Windows failure), I've downloaded the built package and at least |
If you change: to this: Does it work? |
@DennisHeimbigner That works. |
It's not clear to me what the difference between those is, since I don't see anything like forwarding going on if I hit it using cURL. I'll also note that it takes almost 10 seconds to open that second URL, almost like it's downloading the whole file, which would indicate it's not actually using byte ranges? Or could that be a consequence of how metadata is stored in the file? |
The difference is that the second url explicitly states the Amazon region: us-east-1. |
@DennisHeimbigner Right, I saw structurally the difference in the URL. What I don't understand is: why does it matter? In this case we shouldn't be using the S3 API at all (it's not even enabled in these builds). Those URLs should be accessed directly using generic HTTP support for reading using byte ranges. I also have another, non-S3 url that fails but should work: https://crudata.uea.ac.uk/cru/data/temperature/HadCRUT.4.6.0.0.median.nc#mode=bytes |
The reason is that HDF5 has its own S3 reader that it uses for byte-range reading independent In looking at that original URL, it occurs to me that I assumed that the segment "noaa-goes16"
instead of what I thought was the legal form:
I need to review the set of legal URL formats for S3, if I can find it again. |
The references I am using for legal s3 urls are these:
|
No, The segment No region necessary. Regardless, I'm not sure why it doesn't fall back and try the normal byte-range access that works for the remotetest URL above? Also, I'm not sure why |
I've opened Unidata/netcdf-c#2642 and Unidata/netcdf-c#2643 to track the issues with the noaa-goes16 bucket and the HadCRUT dataset, respectively. |
@@ -12,3 +12,5 @@ provider: | |||
test_on_native_only: true | |||
conda_build: | |||
pkg_format: '2' | |||
azure: | |||
store_build_artifacts: True |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI this is the source of the spurious failures on windows
Byte range support had been activated in #107, but (accidentally?) only for Windows and the static builds on Unix. I have now activated it in #178 as part of the alignment of the Windows and Unix build scripts. As such, I guess this PR could be closed, however, it contains a lot of information about additional testing and possible upstream problems. Looking at the upstream issues Unidata/netcdf-c#2642 and Unidata/netcdf-c#2643, they are allegedly addressed (see Unidata/netcdf-c#2642 (comment) and Unidata/netcdf-c#2643 (comment), respectively), but have yet to be closed. @dopplershift, how do you want to proceed? |
I think we can close this. |
Checklist
0
(if the version changed)conda-smithy
(Use the phrase@conda-forge-admin, please rerender
in a comment in this PR for automated rerendering)This turns on the external server tests (needed to run byte range tests). Also force byte range support on just to be sure (but it should be on by default).
Based on my testing, while byte range support is enabled, it's not working.