JuliaIO / Zarr.jl

Other
119 stars 24 forks source link

Zarr.is_zarray with empty string fails on Julia nightly #143

Open felixcremer opened 5 months ago

felixcremer commented 5 months ago

I just saw that while looking at the CI results for the doc deployment and it only fails on Julia nightly.

Test threw exception
  Expression: !(Zarr.is_zgroup(ds, ""))
  ArgumentError: embedded NULs are not allowed in C strings: "\0?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ListBucketResult xmlns=\"[http://s3.amazonaws.com/doc/2006-03-01/\](http://s3.amazonaws.com/doc/2006-03-01//)"><Name>zarrdata</Name><Prefix>.zgroup</Prefix><KeyCount>0</KeyCount><MaxKeys>1</MaxKeys><Delimiter></Delimiter><IsTruncated>false</IsTruncated></ListBucketResult>"
  Stacktrace:
    [1] unsafe_convert
      @ ./strings/cstring.jl:85 [inlined]
    [2] macro expansion
      @ ~/.julia/packages/EzXML/DL8na/src/error.jl:50 [inlined]
    [3] parsexml(xmlstring::String; options::@Kwargs{})
      @ EzXML ~/.julia/packages/EzXML/DL8na/src/document.jl:114
    [4] parsexml
      @ ~/.julia/packages/EzXML/DL8na/src/document.jl:109 [inlined]
    [5] parse_xml
      @ ~/.julia/packages/XMLDict/vlQGP/src/XMLDict.jl:60 [inlined]
    [6] _read(io::IOBuffer, ::MIME{Symbol("application/xml")})
      @ AWS ~/.julia/packages/AWS/Fxun1/src/utilities/response.jl:61
    [7] #54
      @ ~/.julia/packages/AWS/Fxun1/src/utilities/response.jl:53 [inlined]
    [8] _rewind(f::AWS.var"#54#55"{typeof(AWS._read), MIME{Symbol("application/xml")}}, io::IOBuffer)
      @ AWS ~/.julia/packages/AWS/Fxun1/src/utilities/response.jl:120
    [9] parse
      @ ~/.julia/packages/AWS/Fxun1/src/utilities/response.jl:52 [inlined]
   [10] parse(r::AWS.Response{IOBuffer}, mime::MIME{Symbol("application/xml")})
      @ AWS ~/.julia/packages/AWS/Fxun1/src/utilities/response.jl:58
   [11] parse(args::AWS.Response{IOBuffer})
      @ AWSS3 ~/.julia/packages/AWSS3/A97Rh/src/AWSS3.jl:85
   [12] _s3_exists_file(aws::MinioConfig, bucket::String, path::String)
      @ AWSS3 ~/.julia/packages/AWSS3/A97Rh/src/AWSS3.jl:263
   [13] s3_exists_unversioned
      @ ~/.julia/packages/AWSS3/A97Rh/src/AWSS3.jl:358 [inlined]
   [14] #s3_exists#13
      @ ~/.julia/packages/AWSS3/A97Rh/src/AWSS3.jl:388 [inlined]
   [15] s3_exists(aws::MinioConfig, bucket::String, path::String)
      @ AWSS3 ~/.julia/packages/AWSS3/A97Rh/src/AWSS3.jl:384
   [16] isinitialized(s::S3Store, i::String)
      @ Zarr ~/work/Zarr.jl/Zarr.jl/src/Storage/s3store.jl:52
   [17] is_zgroup
      @ ~/work/Zarr.jl/Zarr.jl/src/Storage/Storage.jl:82 [inlined]
   [18] macro expansion
      @ ~/work/Zarr.jl/Zarr.jl/test/storage.jl:15 [inlined]
   [19] macro expansion
      @ /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.12/Test/src/Test.jl:676 [inlined]
   [20] test_store_common(ds::S3Store)
      @ Main ~/work/Zarr.jl/Zarr.jl/test/storage.jl:15
nhz2 commented 5 months ago

https://github.com/OxygenFramework/Oxygen.jl/issues/186 seems like the same issue

ndortega commented 5 months ago

It was reported on Oxygen.jl, but the issue appears to come from HTTP.jl itself. There's already an issue open with these details: https://github.com/JuliaWeb/HTTP.jl/issues/1166