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

Julia fails on Chrome-OS and NVIDIA Jetson ARM-64 Linux #47399

Closed
oschulz opened this issue Oct 31, 2022 · 22 comments · Fixed by #49745
Closed

Julia fails on Chrome-OS and NVIDIA Jetson ARM-64 Linux #47399

oschulz opened this issue Oct 31, 2022 · 22 comments · Fixed by #49745
Labels
system:arm ARMv7 and AArch64

Comments

@oschulz
Copy link
Contributor

oschulz commented Oct 31, 2022

Not sure how related this is to the original issue reported in #45681 so I'm opening this as a new issue.

I can't manage to get recent Julia version to run on Chrome-OS (Crostini) Linux and NVIDIA Jetson Linux (Jetson Nano). I went through pretty much all recent versions on Chrome-OS and verified a few on Jetson (with same behaviour). On Chromebook-Linux (aarch64-unknown-linux-gnu, standard Crostini Debian Bullseye) I get (official Julia binaries, tested only REPL-start and ran rand(100)):

  • Julia v1.6.0: works
  • Julia v1.6.1: works
  • Julia v1.6.2: works
  • Julia v1.6.3: works
  • Julia v1.6.4: works
  • Julia v1.6.5: works
  • Julia v1.6.6: stalls at startup, no error message, no REPL prompt
  • Julia v1.6.7: stalls at startup, no error message, no REPL prompt
  • Julia v1.7.0: works
  • Julia v1.7.1: works
  • Julia v1.7.2: works
  • Julia v1.7.3: SYSTEM: caught exception of type (that's all of it, doesn't say what type) at startup, then stalls, no REPL-prompt
  • Julia v1.8.0: SYSTEM: caught exception of type (that's all of it, doesn't say what type) at startup, then stalls, no REPL-prompt
  • Julia v1.8.0: SYSTEM: caught exception of type (that's all of it, doesn't say what type) at startup, then stalls, no REPL-prompt
  • Julia v1.8.2: SYSTEM: caught exception of type (that's all of it, doesn't say what type) at startup, then stalls, no REPL-prompt
  • Julia v1.9.0-DEV.1696: REPL starts and one can do 1+1, but Julia freezes without output or error on simple things like rand(100) and versioninfo()
  • Julia v1.9.1: REPL stalls indefinitely at VERSION, no output.

The same happens on NVIDIA Jetson Linux (Ubuntu binonic, JetPack 4.61), at least on Julia v1.8.2 and v1.9.0-DEV.1696 (didn't test all versions above).

I had used Julia v1.5 and v1.6 (early versions) on Chromebook-Linux and NVIDIA Jetson without issues in the past, for some demos that included several large packages, complex code and plots.

@giordano
Copy link
Contributor

What commit is v1.9.0-DEV.1696?

@giordano giordano added the system:arm ARMv7 and AArch64 label Oct 31, 2022
@oschulz
Copy link
Contributor Author

oschulz commented Oct 31, 2022

What commit is v1.9.0-DEV.1696?

That's f70b5e4 (current official nightly build).

@giordano
Copy link
Contributor

Ok, so that includes #47343, which would make failures to load codegen more clear

@oschulz
Copy link
Contributor Author

oschulz commented Oct 31, 2022

Anything I can do to generate more detail without a custom Julia build (which I'd rather avoid on that poor Chromebook, let alone the Jetson Nano)?

@giordano
Copy link
Contributor

giordano commented Nov 1, 2022

Have you tried running in gdb to see where it gets stuck? It's interesting to see problems started with 1.6.6 and 1.7.3, I wonder if there is a common patch that was backported to those releases which caused these issues.

@oschulz
Copy link
Contributor Author

oschulz commented Nov 2, 2022

I'll try on a Jetson Xavier NX with a bit more power ...

@oschulz
Copy link
Contributor Author

oschulz commented Nov 2, 2022

Getting even more confusing now, on the NVIDIA Jetson Xavier NX DevKit (freshly reflashed to JetPack 5.02, Ubuntu 20.04.04 LTS), both v1.8.2 and the current Julia nightly (1.9.0-DEV.1721, commit df06375) seem to run just fine.

Unfortunately, JetPack 5.x is not available for the Jetson Nano, and I can't go back to JetPack 4.x on the Xavier NX because the JetPack version is firmware-specific and I just updated that firmware.

Will try with GDB on the Chromebook - that's a more relevant platform for typical users anyway, given ChromeOS's education market-share nowadays and the recent availability of more powerful ARM Chromebooks.

@ViralBShah
Copy link
Member

Thanks for looking into these platforms. Agree that these are important and good if we can keep julia running on these. It's annoying that our regular aarch64 ci is not sufficient to ensure the build works on all these other systems.

@giordano
Copy link
Contributor

giordano commented Nov 2, 2022

Aarch64 Linux is decently stable now. Can it be a memory problem?

@oschulz
Copy link
Contributor Author

oschulz commented Nov 2, 2022

Aarch64 Linux is decently stable now. Can it be a memory problem?

I originally thought it might be connected to the Chome-OS Crostini container solution (though older Julia versions work, see above), but then I ran into the same problems on the Jetson Nano with a bare-metal Linux. But not on the Jetson Xavier NX. So, no idea ...

So, here we go with GDB on the Chromebook (fresh Crostini Linux container, default current Crostini Debian Bullseye):

Versioninfo (with Julia v1.6.5, since that one works):

julia> versioninfo()
Julia Version 1.6.5
Commit 9058264a69 (2021-12-19 12:30 UTC)
Platform Info:
  OS: Linux (aarch64-unknown-linux-gnu)
  CPU: unknown
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, cortex-a76)

Then with the current nightly:

user@penguin:~$ julia-e9ca677b1b/bin/julia 
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.9.0-DEV.1722 (2022-11-02)
 _/ |\__'_|_|_|\__'_|  |  Commit e9ca677b1bc (0 days old master)
|__/                   |

julia> rand(100)

just stalls forever, no output, no error. A non-interactive session does crash

user@penguin:~$ julia-e9ca677b1b/bin/julia -e 'rand(100)'
fatal: error thrown and no exception handler available.
ReadOnlyMemoryError()
__aarch64_sync_cache_range at /workspace/srcdir/gcc-11.1.0/libgcc/config/aarch64/sync-cache.c:78
_ZN4llvm3sys6Memory26InvalidateInstructionCacheEPKvm at /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so (unknown line)

Now with gdb:

user@penguin:~$ gdb --args julia-e9ca677b1b/bin/julia -e 'rand(100)'
GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from julia-e9ca677b1b/bin/julia...
(gdb) run
Starting program: /home/user/julia-e9ca677b1b/bin/julia -e rand\(100\)
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ff31b41d0 (LWP 1744)]
[New Thread 0x7fe13191d0 (LWP 1745)]
[New Thread 0x7fe0b181d0 (LWP 1746)]
[New Thread 0x7fde3171d0 (LWP 1747)]
[New Thread 0x7fdbb161d0 (LWP 1748)]
[New Thread 0x7fd73151d0 (LWP 1749)]
[New Thread 0x7fd6b141d0 (LWP 1750)]
[New Thread 0x7fd23131d0 (LWP 1751)]

Thread 1 "julia" received signal SIGSEGV, Segmentation fault.
__aarch64_sync_cache_range (base=<optimized out>, end=0x7fcf1740e4)
    at /workspace/srcdir/gcc-11.1.0/libgcc/config/aarch64/sync-cache.c:78
78      /workspace/srcdir/gcc-11.1.0/libgcc/config/aarch64/sync-cache.c: No such file or directory.
(gdb) bt
#0  __aarch64_sync_cache_range (base=<optimized out>, end=0x7fcf1740e4)
    at /workspace/srcdir/gcc-11.1.0/libgcc/config/aarch64/sync-cache.c:78
#1  0x0000007ff3d9ef1c in llvm::sys::Memory::InvalidateInstructionCache(void const*, unsigned long) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#2  0x0000007ff7364754 in (anonymous namespace)::ROAllocator<false>::finalize (this=0x62f750)
    at /cache/build/default-armageddon-2/julialang/julia-master/src/cgmemmgr.cpp:538
#3  (anonymous namespace)::DualMapAllocator<false>::finalize (this=0x62f750)
    at /cache/build/default-armageddon-2/julialang/julia-master/src/cgmemmgr.cpp:671
#4  0x0000007ff7365dbc in (anonymous namespace)::RTDyldMemoryManagerJL::finalizeMemory (this=0x631c90, 
    ErrMsg=<optimized out>) at /cache/build/default-armageddon-2/julialang/julia-master/src/cgmemmgr.cpp:902
#5  0x0000007ff59d4e48 in llvm::RuntimeDyldImpl::finalizeAsync(std::unique_ptr<llvm::RuntimeDyldImpl, std::default_delete<llvm::RuntimeDyldImpl> >, llvm::unique_function<void (llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo> >, llvm::Error)>, llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo> >)::{lambda(llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol> > > >)#1}::operator()(llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol> > > >) () from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#6  0x0000007ff59d51ec in void llvm::detail::UniqueFunctionBase<void, llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol> > > > >::CallImpl<llvm::RuntimeDyldImpl::finalizeAsync(std::unique_ptr<llvm::RuntimeDyldImpl, std::default_delete<llvm::RuntimeDyldImpl> >, llvm::unique_function<void (llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo> >, llvm::Error)>, llvm::object::OwningBinary<llvm::object::ObjectFile>, std::unique_ptr<llvm::RuntimeDyld::LoadedObjectInfo, std::default_delete<llvm::RuntimeDyld::LoadedObjectInfo> >)::{lambda(llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol> > > >)#1}>(void*, llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol> > > >&) () from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#7  0x0000007ff59a0d28 in void llvm::detail::UniqueFunctionBase<void, llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::--Type <RET> for more, q to quit, c to continue without paging--
DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol> > > >::CallImpl<(anonymous namespace)::JITDylibSearchOrderResolver::lookup(std::set<llvm::StringRef, std::less<llvm::StringRef>, std::allocator<llvm::StringRef> > const&, llvm::unique_function<void (llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol> > > >)>)::{lambda(llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol> > >)#1}>(void*, llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol> > >&) () from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#8  0x0000007ff58fca0c in llvm::orc::AsynchronousSymbolQuery::handleComplete(llvm::orc::ExecutionSession&)::RunQueryCompleteTask::run() () from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#9  0x0000007ff58f9e54 in void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> > >::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >)>(void*, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >&) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#10 0x0000007ff58fc6c8 in llvm::orc::AsynchronousSymbolQuery::handleComplete(llvm::orc::ExecutionSession&) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#11 0x0000007ff59069ec in llvm::orc::JITDylib::resolve(llvm::orc::MaterializationResponsibility&, llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol> > const&) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#12 0x0000007ff590e218 in llvm::orc::AbsoluteSymbolsMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility> >) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#13 0x0000007ff5912020 in llvm::orc::MaterializationTask::run() ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#14 0x0000007ff58f9e54 in void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> > >::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >)>(void*, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task> >&) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#15 0x0000007ff5912138 in llvm::orc::ExecutionSession::dispatchOutstandingMUs() ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
--Type <RET> for more, q to quit, c to continue without paging--
#16 0x0000007ff5916568 in llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> > > > const&)>) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#17 0x0000007ff591737c in llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#18 0x0000007ff5908008 in llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState> >, llvm::Error) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#19 0x0000007ff59123c4 in llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet, llvm::orc::SymbolState, llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol> > >)>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> >, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void> > > > const&)>) () from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so
#20 0x0000007ff599e97c in (anonymous namespace)::JITDylibSearchOrderResolver::lookup(std::set<llvm::StringRef, std::less<llvm::StringRef>, std::allocator<llvm::StringRef> > const&, llvm::unique_function<void (llvm::Expected<std::map<llvm::StringRef, llvm::JITEvaluatedSymbol, std::less<llvm::StringRef>, std::allocator<std::pair<llvm::StringRef const, llvm::JITEvaluatedSymbol> > > >)>) ()
   from /home/user/julia-e9ca677b1b/bin/../lib/julia/libLLVM-14jl.so

Is this helpful?

@maleadt
Copy link
Member

maleadt commented Nov 3, 2022

That's #41852, which will be fixed by #45859 once we move to LLVM 15. It should be unrelated to the SYSTEM: caught exception errors you reported earlier, but you can always try building that PR of course (needs LLVM 15 though).

@oschulz
Copy link
Contributor Author

oschulz commented Nov 3, 2022

Thanks @maleadt ! I'll try it when a nightly with #45859 is out (what's the timeline for LLVM 15 adoption?) and make sure this issue gets closed after.

@maleadt
Copy link
Member

maleadt commented Nov 3, 2022

what's the timeline for LLVM 15

We don't even have Yggdrasil builds, so that will take a while. It's not too complicated to try yourself though; it's just a matter of checking-out the PR and building with LLVM_VER=15.0.1 IIRC.

@oschulz
Copy link
Contributor Author

oschulz commented Nov 3, 2022

It's not too complicated to try yourself though

Uhm yes ... don't have a fast Linux ARM system though. :-)

@oschulz
Copy link
Contributor Author

oschulz commented Dec 12, 2022

Just an addition, just did a quick test, Julia v1.8.3 seems to run fine on a Raspberry Pi 4 with 64-bit Raspbian (Debian Bullseye). Don't know why it runs there but not on a 64-bit Debian Bullseye Chome-OS container ...

@giordano
Copy link
Contributor

@oschulz

Thanks @maleadt ! I'll try it when a nightly with #45859 is out (what's the timeline for LLVM 15 adoption?) and make sure this issue gets closed after.

You can now grab the artifact from the builds of that PR (for example https://buildkite.com/julialang/julia-master/builds/21275#0186610c-4ccd-479c-b6d3-51cf332cfda3)

@alexgian
Copy link

alexgian commented Feb 23, 2023

I can confirm that using the aarch64 version of Julia 1.8.5 does not work on a freshly installed NVidia Jetson Nano B01.
Runing julia just gives:

julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.8.5 (2023-01-08)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |


SYSTEM: caught exception of type 

and using ^C to get out of that adds.

SYSTEM: caught exception of type 
^Cfatal: error thrown and no exception handler available.
InterruptException()
jl_mutex_unlock at /cache/build/default-armageddon-4/julialang/julia-release-1-dot-8/src/julia_locks.h:129 [inlined]
ijl_task_get_next at /cache/build/default-armageddon-4/julialang/julia-release-1-dot-8/src/partr.c:569
poptask at ./task.jl:921
wait at ./task.jl:930
task_done_hook at ./task.jl:634
jfptr_task_done_hook_51304 at /home/alex/julia-1.8.5/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/default-armageddon-4/julialang/julia-release-1-dot-8/src/gf.c:2377 [inlined]
ijl_apply_generic at /cache/build/default-armageddon-4/julialang/julia-release-1-dot-8/src/gf.c:2559
jl_apply at /cache/build/default-armageddon-4/julialang/julia-release-1-dot-8/src/julia.h:1843 [inlined]
jl_finish_task at /cache/build/default-armageddon-4/julialang/julia-release-1-dot-8/src/task.c:254
start_task at /cache/build/default-armageddon-4/julialang/julia-release-1-dot-8/src/task.c:942

Shame, that, it would be a great little system to learn Julia with opengl, cuda, opencv and all sorts of things with linear programming, convolution networks, all set up...

I'll try the older binaries mentioned as working here, as well as the upcoming 1.9.0-beta4 and see how it goes.

@alexgian
Copy link

alexgian commented Feb 23, 2023

In brief: On Jetson Nano B01, fresh install from nvidia iso (22/2/23),

1.6.7 (LTS) did not work at all.
1.7.2 seems to work so far (Added Pkg ForwardDiff just fine)
1.9.0-beta4 started off looking like it was working, but fell over almost immediately. It will accept simple arithmetic, or the assignment of a vector, but crashes, for instance, on an adjoint. Will not add Packages.

Outputs:

1.6.7

alex@Jetson:~$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.6.7 (2022-07-19)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

^Cfatal: error thrown and no exception handler available.
InterruptException()
jl_mutex_unlock at /buildworker/worker/package_linuxaarch64/build/src/locks.h:134 [inlined]
jl_task_get_next at /buildworker/worker/package_linuxaarch64/build/src/partr.c:475
poptask at ./task.jl:795
wait at ./task.jl:804
task_done_hook at ./task.jl:529
_jl_invoke at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linuxaarch64/build/src/julia.h:1703 [inlined]
jl_finish_task at /buildworker/worker/package_linuxaarch64/build/src/task.c:209
start_task at /buildworker/worker/package_linuxaarch64/build/src/task.c:845

1.7.2

alex@Jetson:~$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.7.2 (2022-02-06)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> 1+2
3

julia> using Pkg

julia> Pkg.add("ForwardDiff")
  Installing known registries into `~/.julia`
┌ Warning: could not download https://pkg.julialang.org/registries
│   exception = Could not resolve host: pkg.julialang.org while requesting https://pkg.julialang.org/registries
└ @ Pkg.Registry /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.7/Pkg/src/Registry/Registry.jl:82
┌ Warning: could not download https://pkg.julialang.org/registries
│   exception = ssl_handshake returned - mbedTLS: (-0x0050) NET - Connection was reset by peer while requesting https://pkg.julialang.org/registries
└ @ Pkg.Registry /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.7/Pkg/src/Registry/Registry.jl:82
     Cloning registry from "https://github.com/JuliaRegistries/General.git"
    Fetching: [========================>                ]  59.6 %

1.9.0-beta4

alex@Jetson:~$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.9.0-beta4 (2023-02-07)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> using Pkg

julia> Pkg.add("Symbolics")
  Installing known registries into `~/.julia`
fatal: error thrown and no exception handler available.
ReadOnlyMemoryError()
__aarch64_sync_cache_range at /workspace/srcdir/gcc-12.1.0/libgcc/config/aarch64/sync-cache.c:61
_ZN4llvm3sys6Memory26InvalidateInstructionCacheEPKvm at /home/alex/julia-1.9.0-beta4/bin/../lib/julia/libLLVM-14jl.so (unknown line)

@maleadt
Copy link
Member

maleadt commented Feb 23, 2023

These issues are known. You should try a build that has the fix:

You can now grab the artifact from the builds of that PR (for example https://buildkite.com/julialang/julia-master/builds/21275#0186610c-4ccd-479c-b6d3-51cf332cfda3)

@oschulz
Copy link
Contributor Author

oschulz commented Feb 23, 2023

@giordano : You can now grab the artifact from the builds of that PR (for example https://buildkite.com/julialang/julia-master/builds/21275#0186610c-4ccd-479c-b6d3-51cf332cfda3)

Sorry for the delay - just tested, that build does indeed run just fine on my aarch64 Chromebook (under Crostini)!

@maleadt
Copy link
Member

maleadt commented Jun 10, 2023

Why was this closed? #49745 is still open.

@oschulz
Copy link
Contributor Author

oschulz commented Jun 11, 2023

Just checked, issue does persist (as expected, without #49745) on Julia v1.9.1 on Chromebook-Linux (aarch64-unknown-linux-gnu, standard Crostini Debian Bullseye) .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
system:arm ARMv7 and AArch64
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants