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

Test failures on Alpine Linux #26761

Closed
ararslan opened this issue Apr 9, 2018 · 4 comments · Fixed by #31946
Closed

Test failures on Alpine Linux #26761

ararslan opened this issue Apr 9, 2018 · 4 comments · Fixed by #31946
Labels
system:linux Affects only Linux test This change adds or pertains to unit tests

Comments

@ararslan
Copy link
Member

ararslan commented Apr 9, 2018

I'm running Alpine Linux 3.7 in Docker with Julia master built from source, and I'm getting the following test errors:

  • Command line arguments
    /home/alex/julia # ./julia test/runtests.jl cmdlineargs
    Test    (Worker) | Time (s) | GC (s) | GC % | Alloc (MB) | RSS (MB)
    cmdlineargs: Test Failed at /home/alex/julia/test/cmdlineargs.jl:506
      Expression: occursin("include_relative(::Module, ::String) at $(joinpath(".", "loading.jl"))", bt)
    Stacktrace:
     [1] top-level scope at ./<missing>:506
     [2] include at ./boot.jl:314 [inlined]
     [3] include_relative(::Module, ::String) at ./loading.jl:1067
     [4] include at ./sysimg.jl:29 [inlined]
     [5] include(::String) at /home/alex/julia/test/testdefs.jl:13
     [6] macro expansion at /home/alex/julia/test/testdefs.jl:22 [inlined]
     [7] macro expansion at /home/alex/julia/usr/share/julia/site/v0.7/Test/src/Test.jl:1022 [inlined]
     [8] macro expansion at /home/alex/julia/test/testdefs.jl:21 [inlined]
     [9] macro expansion at ./util.jl:289 [inlined]
     [10] top-level scope at ./<missing>:19
    
  • Precompilation
    /home/alex/julia # ./julia test/runtests.jl precompile
    Test  (Worker) | Time (s) | GC (s) | GC % | Alloc (MB) | RSS (MB)
    precompile: Test Failed at /home/alex/julia/usr/share/julia/site/v0.7/Test/src/Test.jl:561
      Expression: contains_warn(read(fname, String), $(Expr(:escape, "ERROR: LoadError: Declaring __precompile__(false) is not allowed in files that are being precompiled.\nStacktrace:\n [1] __precompile__")))
    Stacktrace:
     [1] macro expansion at /home/alex/julia/usr/share/julia/site/v0.7/Test/src/Test.jl:561 [inlined]
     [2] (::getfield(Main.Test6Main_precompile, Symbol("##2#17")))() at /home/alex/julia/test/precompile.jl:271
    ┌ Warning: `trunc(x::Number, digits)` is deprecated, use `trunc(x; digits=digits)` instead.
    │   caller = (::getfield(Main, Symbol("##2#4")))(::Module, ::Float64) at loading.jl:1391
    └ @ Main loading.jl:1391
    

There was also a failure in the Sockets stdlib tests but I think that's due to my setup more than anything else.

/home/alex/julia # ./julia -e 'using InteractiveUtils; versioninfo()'
Julia Version 0.7.0-DEV.4830
Commit ba8342a6d1 (2018-04-09 20:04 UTC)
Platform Info:
  OS: Linux (x86_64-alpine-linux-musl)
  CPU: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, skylake)
Environment:
@ararslan ararslan added system:linux Affects only Linux test This change adds or pertains to unit tests labels Apr 9, 2018
@ararslan
Copy link
Member Author

@tkelman Have you seen these before?

@guslen
Copy link

guslen commented Apr 18, 2018

Hi,
Did you take into account that Alpine Linux is built on musl libc? At the repository of Apache httpd on Docker Hub they also warn you that things can turn out funny because it is not the commonly used GNU libc "glibc" which is used by default in the other Linux projects/distributions.
Here is a Docker image of Alpine with GNU libc.
Maybe it's going to help you, I'm by no means an expert or have any experience compiling Julia, but I compiled other software and this was sometimes a major show stopper. Not for the compilation itself but for running the software later.

@ararslan
Copy link
Member Author

Yes, I'm familiar with Alpine Linux and musl, and it's my understanding that we don't require glibc on Linux. See for example #26358, which fixed source building on Alpine, and the Alpine Julia port, which does not depend on glibc.

@ararslan
Copy link
Member Author

I just rebuilt master and ran these tests again. cmdlineargs still fails but precompile now passes. I don't know why, but hey, it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
system:linux Affects only Linux test This change adds or pertains to unit tests
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants