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

Add a build pipeline for FreeBSD #266

Merged
merged 6 commits into from
Feb 21, 2023
Merged

Add a build pipeline for FreeBSD #266

merged 6 commits into from
Feb 21, 2023

Conversation

ararslan
Copy link
Member

@ararslan ararslan commented Dec 8, 2022

@DilumAluthge
Copy link
Member

It might be easier to do this in multiple parts? E.g. first PR just adds the build and test, and then the second PR adds the upload step. Then the first PR won't require any treehash re-signing.

@ararslan
Copy link
Member Author

ararslan commented Dec 8, 2022

I thought I only added a build step here, not test nor upload? I don't actually know what any of this stuff does, I was just blindly following instructions. 😅

@DilumAluthge
Copy link
Member

DilumAluthge commented Dec 8, 2022

Oh I see - it's the changes to the shebang that are causing the treehashes to need re-signing.

@ararslan
Copy link
Member Author

ararslan commented Dec 8, 2022

The FreeBSD build log is 500 lines of

# Could not acquire lock on "/usr/local/etc/buildkite/plugins/github.aaakk.us.kg-JuliaCI-external-buildkite-buildkite-plugin-v1.lock" (open /usr/local/etc/buildkite/plugins/github.aaakk.us.kg-JuliaCI-external-buildkite-buildkite-plugin-v1.lock.3457143734: permission denied)
# Trying again in 1s...

then finally

$ cd /home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite
🚨 Error: Failed to checkout plugin external-buildkite: context deadline exceeded

Issue with permissions on /usr/local/etc/buildkite maybe?

@staticfloat
Copy link
Member

Yes, it's owned by root, but we run as julia

@ararslan
Copy link
Member Author

ararslan commented Dec 8, 2022

Looks like Elliot fixed permissions on /usr/local/etc/buildkite and on /cache. Now we're getting

.buildkite/utilities/build_julia.sh: line 32: JULIA_CPU_THREADS: unbound variable

Looks like that should be getting set by one of the scripts in sandboxed-buildkite-agent. Perhaps that one needs a shebang fix as well.

@ararslan
Copy link
Member Author

ararslan commented Dec 9, 2022

That should now be fixed in sandboxed-buildkite-agent. Would that change be picked up automatically if the job is retried?

@staticfloat
Copy link
Member

Alright, let's add tests next!

@ararslan

This comment was marked as outdated.

@ararslan
Copy link
Member Author

Looks like FreeBSD might need the same adjustment as is being done on Linux regarding /tmp

@ararslan
Copy link
Member Author

Okay apparently that wasn't the issue.

@ararslan
Copy link
Member Author

ararslan commented Dec 13, 2022

Here are the backtraces for the current test failures on FreeBSD. I could not reproduce any of them 4 days ago but I'm retrying now just to be sure. EDIT: Still can't reproduce.

file test failures and errors
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:275
  Expression: isfile(t)
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:276
  Expression: length(TEMP_CLEANUP) == 1
   Evaluated: 0 == 1
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:285
  Expression: length(TEMP_CLEANUP) == 1
   Evaluated: 0 == 1
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:299
  Expression: isdir(t)
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:300
  Expression: length(TEMP_CLEANUP) == 2
   Evaluated: 0 == 2
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:306
  Expression: length(TEMP_CLEANUP) == 3
   Evaluated: 1 == 3
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:310
  Expression: ispath(t)
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:310
  Expression: ispath(t)
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:316
  Expression: TEMP_CLEANUP_MAX[] == 4
   Evaluated: 3 == 4
Error During Test at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:422
  Got exception outside of a @test
  TypeError: in typeassert, expected Base.IOError, got a value of type Bool
  Stacktrace:
    [1] test_stat_error(stat::typeof(stat), pth::String)
      @ Main.Test96Main_file /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:416
    [2] (::Main.Test96Main_file.var"#35#37"{String})()
      @ Main.Test96Main_file /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:440
    [3] cd(f::Main.Test96Main_file.var"#35#37"{String}, dir::String)
      @ Base.Filesystem ./file.jl:112
    [4] #34
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:424 [inlined]
    [5] mktempdir(fn::Main.Test96Main_file.var"#34#36", parent::String; prefix::String)
      @ Base.Filesystem ./file.jl:760
    [6] mktempdir(fn::Function, parent::String)
      @ Base.Filesystem ./file.jl:756
    [7] mktempdir(fn::Function)
      @ Base.Filesystem ./file.jl:756
    [8] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:423 [inlined]
    [9] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Test/src/Test.jl:1496 [inlined]
   [10] top-level scope
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:423
   [11] include
      @ ./Base.jl:450 [inlined]
   [12] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:29 [inlined]
   [13] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Test/src/Test.jl:1496 [inlined]
   [14] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:23 [inlined]
   [15] macro expansion
      @ ./timing.jl:501 [inlined]
   [16] runtests(name::String, path::String, isolate::Bool; seed::UInt128)
      @ Main /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:21
   [17] kwcall(::NamedTuple{(:seed,), Tuple{UInt128}}, ::typeof(runtests), name::String, path::String)
      @ Main /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:5
   [18] #invokelatest#2
      @ ./essentials.jl:818 [inlined]
   [19] kwcall(::NamedTuple{(:seed,), Tuple{UInt128}}, ::typeof(invokelatest), ::Any, ::Any, ::Any)
      @ Base ./essentials.jl:813
   [20] (::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}})()
      @ Distributed /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
   [21] run_work_thunk(thunk::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}}, print_error::Bool)
      @ Distributed /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:70
   [22] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285 [inlined]
   [23] (::Distributed.var"#109#111"{Distributed.CallMsg{:call_fetch}, Distributed.MsgHeader, Sockets.TCPSocket})()
      @ Distributed ./task.jl:514
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:1527
  Expression: rm(joinpath(d, "nonempty"); recursive = true)
    Expected: Base.IOError
  No exception thrown
Error During Test at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:1512
  Got exception outside of a @test
  IOError: chmod("/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/tmp/jl_LS84JI/nonempty", 0o777): no such file or directory (ENOENT)
  Stacktrace:
    [1] uv_error
      @ ./libuv.jl:100 [inlined]
    [2] chmod(path::String, mode::UInt16; recursive::Bool)
      @ Base.Filesystem ./file.jl:1150
    [3] chmod
      @ ./file.jl:1148 [inlined]
    [4] (::Main.Test96Main_file.var"#90#91")(d::String)
      @ Main.Test96Main_file /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:1528
    [5] mktempdir(fn::Main.Test96Main_file.var"#90#91", parent::String; prefix::String)
      @ Base.Filesystem ./file.jl:760
    [6] mktempdir(fn::Function, parent::String)
      @ Base.Filesystem ./file.jl:756
    [7] mktempdir(fn::Function)
      @ Base.Filesystem ./file.jl:756
    [8] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:1513 [inlined]
    [9] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Test/src/Test.jl:1496 [inlined]
   [10] top-level scope
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/file.jl:1513
   [11] include
      @ ./Base.jl:450 [inlined]
   [12] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:29 [inlined]
   [13] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Test/src/Test.jl:1496 [inlined]
   [14] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:23 [inlined]
   [15] macro expansion
      @ ./timing.jl:501 [inlined]
   [16] runtests(name::String, path::String, isolate::Bool; seed::UInt128)
      @ Main /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:21
   [17] kwcall(::NamedTuple{(:seed,), Tuple{UInt128}}, ::typeof(runtests), name::String, path::String)
      @ Main /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:5
   [18] #invokelatest#2
      @ ./essentials.jl:818 [inlined]
   [19] kwcall(::NamedTuple{(:seed,), Tuple{UInt128}}, ::typeof(invokelatest), ::Any, ::Any, ::Any)
      @ Base ./essentials.jl:813
   [20] (::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}})()
      @ Distributed /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
   [21] run_work_thunk(thunk::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}}, print_error::Bool)
      @ Distributed /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:70
   [22] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285 [inlined]
   [23] (::Distributed.var"#109#111"{Distributed.CallMsg{:call_fetch}, Distributed.MsgHeader, Sockets.TCPSocket})()
      @ Distributed ./task.jl:514
read test error
Error During Test at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:21
  Got exception outside of a @test
  LoadError: IOError: bind: name too long (ENAMETOOLONG)
  Stacktrace:
    [1] bind(server::Sockets.PipeServer, name::String)
      @ Sockets /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Sockets/src/PipeServer.jl:59
    [2] listen(path::String)
      @ Sockets /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Sockets/src/PipeServer.jl:79
    [3] (::Main.Test12Main_read.var"#7#21"{String, Main.Test12Main_read.var"#run_test_server#18"{Vector{Any}}})(text::String)
      @ Main.Test12Main_read /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/read.jl:91
    [4] (::Main.Test12Main_read.var"#1#14")(dir::String)
      @ Main.Test12Main_read /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/read.jl:95
    [5] mktempdir(fn::Main.Test12Main_read.var"#1#14", parent::String; prefix::String)
      @ Base.Filesystem ./file.jl:760
    [6] mktempdir(fn::Function, parent::String)
      @ Base.Filesystem ./file.jl:756
    [7] mktempdir(fn::Function)
      @ Base.Filesystem ./file.jl:756
    [8] top-level scope
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/read.jl:5
    [9] include
      @ ./Base.jl:450 [inlined]
   [10] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:29 [inlined]
   [11] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Test/src/Test.jl:1496 [inlined]
   [12] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:23 [inlined]
   [13] macro expansion
      @ ./timing.jl:501 [inlined]
   [14] runtests(name::String, path::String, isolate::Bool; seed::UInt128)
      @ Main /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:21
   [15] kwcall(::NamedTuple{(:seed,), Tuple{UInt128}}, ::typeof(runtests), name::String, path::String)
      @ Main /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/testdefs.jl:5
   [16] #invokelatest#2
      @ ./essentials.jl:818 [inlined]
   [17] kwcall(::NamedTuple{(:seed,), Tuple{UInt128}}, ::typeof(invokelatest), ::Any, ::Any, ::Any)
      @ Base ./essentials.jl:813
   [18] (::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}})()
      @ Distributed /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
   [19] run_work_thunk(thunk::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}}, print_error::Bool)
      @ Distributed /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:70
   [20] macro expansion
      @ /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285 [inlined]
   [21] (::Distributed.var"#109#111"{Distributed.CallMsg{:call_fetch}, Distributed.MsgHeader, Sockets.TCPSocket})()
      @ Distributed ./task.jl:514
  in expression starting at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/test/read.jl:5
Profile test abort trap
      From worker 5:	Fatal error 'thread 0x89b075600 was already on queue.' at line 287 in file /usr/src/lib/libthr/thread/thr_cond.c (errno = 0)
      From worker 5:
      From worker 5:	[1114] signal (6.65543): Abort trap
      From worker 5:	in expression starting at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Profile/test/runtests.jl:29

Here's the actual FreeBSD source that the libthr error is pointing to: https://github.com/freebsd/freebsd-src/blob/release/12.2.0/lib/libthr/thread/thr_cond.c#L287

Pkg test failures
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Pkg/test/new.jl:2603
  Expression: open(pathof(eval(Symbol(TEST_PKG.name))), "w") do io
end
    Expected: SystemError
  No exception thrown
Test Failed at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Pkg/test/registry.jl:269
  Expression: occursin("registry at `$(depot_off_path)", output)
   Evaluated: occursin("registry at `/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/tmp/jl_NnT7LP", "    Updating registry at `~/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/tmp/jl_NnT7LP/registries/General.toml`\n")
Process hang
Process failed to exit within 10800s, requesting termination (SIGTERM) of PID 1109.

[1109] signal (15): Terminated
in expression starting at none:1
_kevent at /lib/libc.so.7 (unknown line)
_pthread_suspend_all_np at /lib/libthr.so.3 (unknown line)

Sent SIGTERM to PID 1109.
uv__io_poll at /workspace/srcdir/libuv/src/unix/kqueue.c:199
uv_run at /workspace/srcdir/libuv/src/unix/core.c:400
ijl_task_get_next at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/src/partr.c:381
poptask at ./task.jl:963
wait at ./task.jl:972
#wait#625 at ./condition.jl:130
wait at ./condition.jl:125 [inlined]
_trywait at ./asyncevent.jl:138
wait at ./asyncevent.jl:155 [inlined]
profile_printing_listener at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/usr/share/julia/stdlib/v1.10/Profile/src/Profile.jl:39
#3 at ./threadingconstructs.jl:340
jfptr_YY.3_57949.clone_1 at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/lib/julia/sys.so (unknown line)
_jl_invoke at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/src/gf.c:0 [inlined]
ijl_apply_generic at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/src/gf.c:2829
jl_apply at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/src/./julia.h:1868 [inlined]
start_task at /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/src/task.c:1092
unknown function (ip: 0x0)
Allocations: 2996 (Pool: 2986; Big: 10); GC: 0
Error in temporary file cleanup at exit
┌ Warning: temp cleanup
│   exception =
│    schedule: Task not runnable
│    Stacktrace:
│      [1] error(s::String)
│        @ Base ./error.jl:35
│      [2] enq_work(t::Task)
│        @ Base ./task.jl:769
│      [3] yield
│        @ ./task.jl:871 [inlined]
│      [4] yield
│        @ ./task.jl:869 [inlined]
│      [5] Channel{Tuple{String, Vector{String}, Vector{String}}}(func::Base.Filesystem.var"#28#31"{String}, size::Int64; taskref::Nothing, spawn::Bool)
│        @ Base ./channels.jl:140
│      [6] Channel (repeats 2 times)
│        @ ./channels.jl:132 [inlined]
│      [7] #walkdir#27
│        @ ./file.jl:967 [inlined]
│      [8] prepare_for_deletion(path::String)
│        @ Base.Filesystem ./file.jl:507
│      [9] temp_cleanup_purge(; force::Bool)
│        @ Base.Filesystem ./file.jl:542
│     [10] (::Base.var"#934#935")()
│        @ Base ./initdefs.jl:351
│     [11] _atexit(exitcode::Int32)
│        @ Base ./initdefs.jl:383
└ @ Base.Filesystem file.jl:547
schedule: Task not runnable
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] schedule(t::Task, arg::Any; error::Bool)
    @ Base ./task.jl:835
  [3] schedule
    @ ./task.jl:827 [inlined]
  [4] uv_writecb_task(req::Ptr{Nothing}, status::Int32)
    @ Base ./stream.jl:1166
  [5] poptask(W::Base.IntrusiveLinkedListSynchronized{Task})
    @ Base ./task.jl:963
  [6] wait()
    @ Base ./task.jl:972
  [7] uv_write(s::Base.TTY, p::Ptr{UInt8}, n::UInt64)
    @ Base ./stream.jl:1048
  [8] unsafe_write(s::Base.TTY, p::Ptr{UInt8}, n::UInt64)
    @ Base ./stream.jl:1120
  [9] unsafe_write
    @ ./io.jl:685 [inlined]
 [10] write(s::Base.TTY, a::Vector{UInt8})
    @ Base ./io.jl:708
 [11] handle_message(logger::Logging.ConsoleLogger, level::Base.CoreLogging.LogLevel, message::Any, _module::Any, group::Any, id::Any, filepath::Any, line::Any; kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
    @ Logging /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Logging/src/ConsoleLogger.jl:178
 [12] kwcall(::Any, ::typeof(Base.CoreLogging.handle_message), logger::Logging.ConsoleLogger, level::Base.CoreLogging.LogLevel, message::Any, _module::Any, group::Any, id::Any, filepath::Any, line::Any)
    @ Logging /usr/home/julia/.buildkite-agent/builds/freebsd12-amdci6-0/julialang/julia-buildkite/julia-b03439c8e3/share/julia/stdlib/v1.10/Logging/src/ConsoleLogger.jl:106
 [13] macro expansion
    @ ./logging.jl:365 [inlined]
 [14] temp_cleanup_purge(; force::Bool)
    @ Base.Filesystem ./file.jl:547
 [15] (::Base.var"#934#935")()
    @ Base ./initdefs.jl:351
 [16] _atexit(exitcode::Int32)
    @ Base ./initdefs.jl:383

I suspect something about the VMs is misconfigured, perhaps the filesystem?

@staticfloat
Copy link
Member

The ENAMETOOLONG reminds me of something similar on macOS: #44 (comment)

We probably need TMPDIR to be something short; what's the problem with storing it in /tmp?

@ararslan
Copy link
Member Author

what's the problem with storing it in /tmp?

Nothing AFAIK, I just noticed that we were avoiding /tmp on Linux and decided to see whether doing the same on FreeBSD would help. It did not.

Note that Bash scripts on FreeBSD need to use `/usr/bin/env bash` rather
than `/bin/bash` in the shebang line as the latter does not exist on
FreeBSD.
@staticfloat
Copy link
Member

You still need to add the upload step to the signed pipeline launcher script, like here:

# Launch `upload_*` jobs to store tarballs into S3 once tests are done
bash .buildkite/utilities/arches_pipeline_upload.sh \
.buildkite/pipelines/main/platforms/upload_linux.arches \
.buildkite/pipelines/main/platforms/upload_linux.yml
bash .buildkite/utilities/arches_pipeline_upload.sh \
.buildkite/pipelines/main/platforms/upload_macos.arches \
.buildkite/pipelines/main/platforms/upload_macos.yml
bash .buildkite/utilities/arches_pipeline_upload.sh \
.buildkite/pipelines/main/platforms/upload_windows.arches \
.buildkite/pipelines/main/platforms/upload_windows.yml

@ararslan
Copy link
Member Author

Looks like the coreupload step on FreeBSD is failing with tar: Failed to open '/dev/sa0' 🤔

@staticfloat
Copy link
Member

Looks like it worked, so I've merged my fix to coreupload-buildkite-plugin

@ararslan
Copy link
Member Author

Cannot use 'create_bundle: true' on FreeBSD!

and also

touch: /dev/random: Permission denied
touch: /dev/urandom: Permission denied
.buildkite/utilities/sign_tarball.sh: line 11: gpg: command not found
.buildkite/utilities/sign_tarball.sh: line 14: gpg: command not found
.buildkite/utilities/sign_tarball.sh: line 17: gpgconf: command not found

Welp.

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

Successfully merging this pull request may close these issues.

3 participants