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

Arrow.jl fails to precompile with error "Magic file identifier "TZjf" not found." #510

Closed
kobusherbst opened this issue Jul 15, 2024 · 7 comments

Comments

@kobusherbst
Copy link

When I try to precompile Arrow, I get the following error:

Julia V1.10.4

Platform Info:
OS: macOS (arm64-apple-darwin22.4.0)
CPU: 14 × Apple M3 Max
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)

Failed to precompile PIPCore [5f73200a-36c0-42cd-9607-31bc8d8705ce] to "/Users/kobush/.julia/compiled/v1.10/PIPCore/jl_l3YSez".
ERROR: LoadError: ArgumentError: Magic file identifier "TZjf" not found.
Stacktrace:
  [1] read_signature
    @ ~/.julia/packages/TimeZones/cI9dc/src/tzjfile/read.jl:15 [inlined]
  [2] read(io::IOStream)
    @ TimeZones.TZJFile ~/.julia/packages/TimeZones/cI9dc/src/tzjfile/read.jl:8
  [3] open(::typeof(TimeZones.TZJFile.read), ::String, ::Vararg{String}; kwargs::@Kwargs{})
    @ Base ./io.jl:396
  [4] open
    @ ./io.jl:393 [inlined]
  [5] (::TimeZones.var"#7#8"{TimeZones.TimeZoneCache})(name::String, path::String)
    @ TimeZones ~/.julia/packages/TimeZones/cI9dc/src/types/timezonecache.jl:29
  [6] walk_tz_dir(f::TimeZones.var"#7#8"{TimeZones.TimeZoneCache}, dir::String)
    @ TimeZones ~/.julia/packages/TimeZones/cI9dc/src/utils.jl:125
  [7] reload!
    @ ~/.julia/packages/TimeZones/cI9dc/src/types/timezonecache.jl:28 [inlined]
  [8] reload!
    @ ~/.julia/packages/TimeZones/cI9dc/src/types/timezonecache.jl:25 [inlined]
  [9] (::TimeZones.var"#9#12"{TimeZones.TimeZoneCache})()
    @ TimeZones ~/.julia/packages/TimeZones/cI9dc/src/types/timezonecache.jl:50
 [10] lock(f::TimeZones.var"#9#12"{TimeZones.TimeZoneCache}, l::ReentrantLock)
    @ Base ./lock.jl:229
 [11] get
    @ ~/.julia/packages/TimeZones/cI9dc/src/types/timezonecache.jl:47 [inlined]
 [12] Dates.TimeZone(str::String, mask::TimeZones.Class)
    @ TimeZones ~/.julia/packages/TimeZones/cI9dc/src/types/timezone.jl:42
 [13] var"@tz_str"(__source__::LineNumberNode, __module__::Module, str::Any)
    @ TimeZones ~/.julia/packages/TimeZones/cI9dc/src/types/timezone.jl:72
 [14] include(mod::Module, _path::String)
    @ Base ./Base.jl:495
 [15] include(x::String)
    @ Arrow ~/.julia/dev/Arrow/src/Arrow.jl:42
 [16] top-level scope
    @ ~/.julia/dev/Arrow/src/Arrow.jl:77
 [17] include
    @ ./Base.jl:495 [inlined]
 [18] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
    @ Base ./loading.jl:2222
 [19] top-level scope
@ericphanson
Copy link
Member

This seems like a TimeZones issue (cc @omus). What version of TimeZones are you using?

@kobusherbst
Copy link
Author

TimeZones v1.17.0

@kobusherbst
Copy link
Author

I could successfully precompile Arrow after regressing to TimeZones V1.16.1

@kobusherbst
Copy link
Author

Will there be a release of Arrow that is compatible with the latest version of TimeZones?

@ericphanson
Copy link
Member

I don't think this is an issue in Arrow.jl, if I'm following correctly, Arrow only shows up in the the stacktrace since Arrow loads TimeZones. Please file an issue on TimeZones.jl. Something must have gone wrong there.

BTW I can load both without an issue on v1.10 on macos:

(@v1.10) pkg> activate --temp
  Activating new project at `/var/folders/gj/l9rbktlj6qndlnz1nk164d280000gn/T/jl_3OBJZg`

(jl_3OBJZg) pkg> add Arrow,TimeZones
   Resolving package versions...
    Updating `/private/var/folders/gj/l9rbktlj6qndlnz1nk164d280000gn/T/jl_3OBJZg/Project.toml`
  [69666777] + Arrow v2.7.2
  [f269a46b] + TimeZones v1.17.0
    Updating `/private/var/folders/gj/l9rbktlj6qndlnz1nk164d280000gn/T/jl_3OBJZg/Manifest.toml`
  [69666777] + Arrow v2.7.2
  [31f734f8] + ArrowTypes v2.3.0
  [c3b6d118] + BitIntegers v0.3.1
  [5ba52731] + CodecLz4 v0.4.4
  [6b39b394] + CodecZstd v0.8.4
  [34da2185] + Compat v4.15.0
  [f0e56b4a] + ConcurrentUtilities v2.4.2
  [9a962f9c] + DataAPI v1.16.0
  [e2d170a0] + DataValueInterfaces v1.0.0
  [4e289a0a] + EnumX v1.0.4
  [e2ba6199] + ExprTools v0.1.10
  [842dd82b] + InlineStrings v1.4.2
  [82899510] + IteratorInterfaceExtensions v1.0.0
  [692b3bcd] + JLLWrappers v1.5.0
  [e6f89c97] + LoggingExtras v1.0.3
⌅ [78c3b35d] + Mocking v0.7.9
  [bac558e1] + OrderedCollections v1.6.3
  [2dfb63ee] + PooledArrays v1.4.3
  [21216c6a] + Preferences v1.4.3
  [6c6a2e73] + Scratch v1.2.1
  [91c51154] + SentinelArrays v1.4.5
  [dc5dba14] + TZJData v1.2.0+2024a
  [3783bdb8] + TableTraits v1.0.1
  [bd369af6] + Tables v1.12.0
  [f269a46b] + TimeZones v1.17.0
⌅ [3bb67fe8] + TranscodingStreams v0.10.10
  [5ced341a] + Lz4_jll v1.10.0+0
  [3161d3a3] + Zstd_jll v1.5.6+0
  [0dad84c5] + ArgTools v1.1.1
  [56f22d72] + Artifacts
  [ade2ca70] + Dates
  [f43a241f] + Downloads v1.6.0
  [7b1f6079] + FileWatching
  [9fa8497b] + Future
  [b27032c2] + LibCURL v0.6.4
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [a63ad114] + Mmap
  [ca575930] + NetworkOptions v1.2.0
  [de0858da] + Printf
  [9a3f8284] + Random
  [ea8e919c] + SHA v0.7.0
  [9e88b42a] + Serialization
  [6462fe0b] + Sockets
  [fa267f1f] + TOML v1.0.3
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [deac9b47] + LibCURL_jll v8.4.0+0
  [29816b5a] + LibSSH2_jll v1.11.0+1
  [c8ffd9c3] + MbedTLS_jll v2.28.2+1
  [14a3606d] + MozillaCACerts_jll v2023.1.10
  [83775a58] + Zlib_jll v1.2.13+1
  [8e850ede] + nghttp2_jll v1.52.0+1
  [3f19e933] + p7zip_jll v17.4.0+2
        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`

julia> using Arrow, TimeZones

(jl_3OBJZg) pkg> st
Status `/private/var/folders/gj/l9rbktlj6qndlnz1nk164d280000gn/T/jl_3OBJZg/Project.toml`
  [69666777] Arrow v2.7.2
  [f269a46b] TimeZones v1.17.0

julia> versioninfo()
Julia Version 1.10.4
Commit 48d4fd48430 (2024-06-04 10:41 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: macOS (arm64-apple-darwin22.4.0)
  CPU: 8 × Apple M1
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
Threads: 4 default, 0 interactive, 2 GC (on 4 virtual cores)
Environment:
  JULIA_NUM_THREADS = 4
  JULIA_PKG_SERVER_REGISTRY_PREFERENCE = eager
  JULIA_DATAMAPUTILS_CACHE_SIZE_MIB = 300

@kobusherbst
Copy link
Author

Arrow.jl is now compiling properly with julia v1.11.1, Arrow v2.7.4 and TimeZones v1.19.0 on Windows 11

@Drvi
Copy link

Drvi commented Nov 20, 2024

For me, the issue was that there was a .DS_Store file among the downloaded artifacts. Just deleting it made the issue go away.

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