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

simple dynamic race detector for jl_array_to_string #173

Merged
merged 1 commit into from
Aug 22, 2024

Conversation

d-netto
Copy link
Member

@d-netto d-netto commented Aug 20, 2024

PR Description

Simple dynamic race detector for jl_array_to_string. Here is a quick example:

julia-RAI % ./julia -t8
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.10.2+RAI (2024-08-14)
 _/ |\__'_|_|_|\__'_|  |  v1.10.2+RAI/ec21f11718 (fork: 397 commits, 414 days)
|__/                   |

julia> a = UInt8['b' for _ in 1:1_000]
1000-element Vector{UInt8}:
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62

 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62

julia> Threads.@threads for _ in 1:1000
           String(a)
       end
ERROR: racy conversion of array to string... Setting in-flight bit
ERROR: racy conversion of array to string... Resetting in-flight bit
ERROR: racy conversion of array to string... Setting in-flight bit
ERROR: racy conversion of array to string... Resetting in-flight bit
ERROR: racy conversion of array to string... Setting in-flight bit
ERROR: racy conversion of array to string... Resetting in-flight biERROR: racy conversion of array to string... Resetting in-flight bit
ERROR: racy conversion of array to string... Resetting in-flight bit

Checklist

Requirements for merging:

  • I have opened an issue or PR upstream on JuliaLang/julia: <link to JuliaLang/julia>
  • I have removed the port-to-* labels that don't apply.
  • I have opened a PR on raicode to test these changes:

@d-netto d-netto requested a review from NHDaly August 20, 2024 19:01
@github-actions github-actions bot added port-to-v1.10 This change should apply to Julia v1.10 builds port-to-master This change should apply to all future Julia builds labels Aug 20, 2024
src/array.c Outdated Show resolved Hide resolved
@d-netto d-netto force-pushed the dcn-poor-mans-race-detector branch 3 times, most recently from b2644ba to bea69bc Compare August 20, 2024 19:12
@d-netto
Copy link
Member Author

d-netto commented Aug 20, 2024

In the new version:

julia-RAI % ./julia -t8
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.10.2+RAI (2024-08-14)
 _/ |\__'_|_|_|\__'_|  |  v1.10.2+RAI/ec21f11718 (fork: 397 commits, 414 days)
|__/                   |

julia> a = UInt8['b' for _ in 1:1_000]
1000-element Vector{UInt8}:
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62

 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62
 0x62

julia> Threads.@threads for _ in 1:1000
           String(a)
       end
Race detected... Someone already set the in-flight bit.
thread (1) ++++ Task backtraces
thread (1) ==== Thread 1 created 3 live tasks
thread (1)     ---- Root task (0x109474010)
thread (1)          (sticky: 1, started: 1, state: 0, tid: 1)
thread (1)          (sticky: 1, started: 1, state: 0, tithread (2) ++++ Task backtraces
thread (2) ==== Thread 1 created 3 live tasks
thread (2)     ---- Root task (0x109474010)
thread (2)          (sticky: 1, started: 1, state: 0, tid: 1)
thread (1) jl_start_fiber_swap at /Users/dnetto/RAI/julia-RAI/usr/lib/libjulia-internal.1.10.2.dylib (unknown line)
thread (1) ctx_switch at /Users/dnetto/RAI/julia-RAI/usr/lib/libjulia-internal.1.10.2.dylib (unknown line)
thread (1) ijl_switch at /Users/dnetto/RAI/julia-RAI/usr/lib/libjulia-internal.1.10.2.dylib (unknown line)
thread (2) jl_start_fiber_swap at /Users/dnetto/RAI/julia-RAI/src/task.c:1433
thread (1) try_yieldto at ./task.jl:921
thread (2) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:617
thread (2) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (1) wait at ./task.jl:995
thread (2) try_yieldto at ./task.jl:921
thread (1) #wait#646 at ./condition.jl:130
thread (2) wait at ./task.jl:995
thread (2) #wait#646 at ./condition.jl:130
thread (1) wait at ./condition.jl:125 [inlined]
thread (1) _wait at ./task.jl:310
thread (1) threading_run at ./threadingconstructs.jl:167
thread (1) unknown function (ip: 0x1062c864f)
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) wait at ./condition.jl:125 [inlined]
thread (2) _wait at ./task.jl:310
thread (2) threading_run at ./threadingconstructs.jl:167
thread (1) macro expansion at ./threadingconstructs.jl:220 [inlined]
thread (1) top-level scope at ./REPL[2]:1
thread (2) unknown function (ip: 0x1062c864f)
thread (1) jl_toplevel_eval_flex at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:925
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) macro expansion at ./threadingconstructs.jl:220 [inlined]
thread (2) top-level scope at ./REPL[2]:1
thread (1) jl_toplevel_eval_flex at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:877
thread (2) jl_toplevel_eval_flex at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:925
thread (1) ijl_toplevel_eval at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:943 [inlined]
thread (1) ijl_toplevel_eval_in at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:985
thread (2) jl_toplevel_eval_flex at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:877
thread (2) ijl_toplevel_eval at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:943 [inlined]
thread (2) ijl_toplevel_eval_in at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:985
thread (1) eval at ./boot.jl:385 [inlined]
thread (1) eval_user_input at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:150
thread (2) eval at ./boot.jl:385 [inlined]
thread (2) eval_user_input at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:150
thread (1) repl_backend_loop at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:246
thread (2) repl_backend_loop at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:246
thread (1) #start_repl_backend#46 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:231
thread (2) #start_repl_backend#46 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:231
thread (1) start_repl_backend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:228
thread (2) start_repl_backend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:228
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) #run_repl#59 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:389
thread (2) #run_repl#59 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:389
thread (1) run_repl at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:375
thread (2) run_repl at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:375
thread (1) jfptr_run_repl_92380 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) jfptr_run_repl_92380 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) #1014 at ./client.jl:432
thread (2) #1014 at ./client.jl:432
thread (1) jfptr_YY.1014_83352 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) jfptr_YY.1014_83352 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) jl_f__call_latest at /Users/dnetto/RAI/julia-RAI/src/builtins.c:812
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) jl_f__call_latest at /Users/dnetto/RAI/julia-RAI/src/builtins.c:812
thread (1) #invokelatest#2 at ./essentials.jl:892 [inlined]
thread (1) invokelatest at ./essentials.jl:889 [inlined]
thread (1) run_main_repl at ./client.jl:416
thread (2) #invokelatest#2 at ./essentials.jl:892 [inlined]
thread (2) invokelatest at ./essentials.jl:889 [inlined]
thread (2) run_main_repl at ./client.jl:416
thread (2) exec_options at ./client.jl:333
thread (1) exec_options at ./client.jl:333
thread (2) _start at ./client.jl:552
thread (1) _start at ./client.jl:552
thread (1) jfptr__start_83378 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) jfptr__start_83378 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) true_main at /Users/dnetto/RAI/julia-RAI/src/jlapi.c:582
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) true_main at /Users/dnetto/RAI/julia-RAI/src/jlapi.c:582
thread (2) jl_repl_entrypoint at /Users/dnetto/RAI/julia-RAI/src/jlapi.c:731
thread (2)     ---- End root task
thread (2)     ---- Task 1 (0x109476270)
thread (2)          (sticky: 1, started: 1, state: 0, tid: 1)
thread (1) jl_repl_entrypoint at /Users/dnetto/RAI/julia-RAI/src/jlapi.c:731
thread (1)     ---- End root task
thread (1)     ---- Task 1 (0x109476270)
thread (1)          (sticky: 1, started: 1, state: 0, tid: 1)
thread (2) jl_swap_fiber at /Users/dnetto/RAI/julia-RAI/src/task.c:1346
thread (2) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:571
thread (1) jl_swap_fiber at /Users/dnetto/RAI/julia-RAI/src/task.c:1346
thread (2) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (1) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:571
thread (1) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (2) try_yieldto at ./task.jl:921
thread (1) try_yieldto at ./task.jl:921
thread (2) wait at ./task.jl:995
thread (1) wait at ./task.jl:995
thread (2) #wait#646 at ./condition.jl:130
thread (1) #wait#646 at ./condition.jl:130
thread (2) wait at ./condition.jl:125 [inlined]
thread (2) take_buffered at ./channels.jl:477
thread (1) wait at ./condition.jl:125 [inlined]
thread (1) take_buffered at ./channels.jl:477
thread (2) take! at ./channels.jl:471 [inlined]
thread (2) eval_with_backend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:892
thread (1) take! at ./channels.jl:471 [inlined]
thread (1) eval_with_backend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:892
thread (1) do_respond at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:906
thread (2) do_respond at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:906
thread (2) jfptr_do_respond_92516 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) jfptr_do_respond_92516 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) jl_f__call_latest at /Users/dnetto/RAI/julia-RAI/src/builtins.c:812
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) jl_f__call_latest at /Users/dnetto/RAI/julia-RAI/src/builtins.c:812
thread (1) #invokelatest#2 at ./essentials.jl:892 [inlined]
thread (1) invokelatest at ./essentials.jl:889 [inlined]
thread (1) run_interface at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2656
thread (2) #invokelatest#2 at ./essentials.jl:892 [inlined]
thread (2) invokelatest at ./essentials.jl:889 [inlined]
thread (2) run_interface at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2656
thread (2) jfptr_run_interface_91270 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) jfptr_run_interface_91270 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) run_frontend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
thread (2) run_frontend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
thread (1) #62 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:386
thread (2) #62 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:386
thread (2) jfptr_YY.62_92419 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) jfptr_YY.62_92419 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (2)     ---- End task 1
thread (2)     ---- Task 2 (0x10c59cb00)
thread (2)          (sticky: 0, started: 1, state: 0, tid: 1)
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (1)     ---- End task 1
thread (1)     ---- Task 2 (0x10c59cb00)
thread (1)          (sticky: 0, started: 1, state: 0, tid: 1)
thread (2) _ZN9libunwind10CFI_ParserINS_17LocalAddressSpaceEE20parseFDEInstructionsERS1_RKNS2_8FDE_InfoERKNS2_8CIE_InfoEmiPNS2_10PrologInfoE at /Users/dnetto/RAI/julia-RAI/usr/lib/libunwind.1.0.dylib (unknown line)
thread (1) jl_rec_backtrace at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:879 [inlined]
thread (1) jlbacktracet at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1155
thread (2) _ZN9libunwind12UnwindCursorINS_17LocalAddressSpaceENS_15Registers_arm64EE17getInfoFromFdeCieERKNS_10CFI_ParserIS1_E8FDE_InfoERKNS5_8CIE_InfoEmm at /Users/dnetto/RAI/julia-RAI/usr/lib/libunwind.1.0.dylib (unknown line)
thread (2) _ZN9libunwind12UnwindCursorINS_17LocalAddressSpaceENS_15Registers_arm64EE23getInfoFromDwarfSectionEmRKNS_18UnwindInfoSectionsEj at /Users/dnetto/RAI/julia-RAI/usr/lib/libunwind.1.0.dylib (unknown line)
thread (2) _ZN9libunwind12UnwindCursorINS_17LocalAddressSpaceENS_15Registers_arm64EE24setInfoBasedOnIPRegisterEb at /Users/dnetto/RAI/julia-RAI/usr/lib/libunwind.1.0.dylib (unknown line)
thread (2) unw_init_local at /Users/dnetto/RAI/julia-RAI/usr/lib/libunwind.1.0.dylib (unknown line)
thread (2) jl_unw_init at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:542 [inlined]
thread (2) rec_backtrace at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:218
thread (1) jl_print_task_backtraces at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1227
thread (2) jl_rec_backtrace at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:879 [inlined]
thread (2) jlbacktracet at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1155
thread (1) jl_set_in_flight_bit_for_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:469 [inlined]
thread (1) ijl_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:486
thread (2) jl_print_task_backtraces at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1227
thread (2) jl_set_in_flight_bit_for_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:469 [inlined]
thread (2) ijl_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:486
thread (1) String at ./strings/string.jl:67
thread (2) String at ./strings/string.jl:67
thread (1) jfptr_String_38812 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) jfptr_String_38812 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) macro expansion at ./REPL[2]:2 [inlined]
thread (2) #5#threadsfor_fun#1 at ./threadingconstructs.jl:215
thread (1) macro expansion at ./REPL[2]:2 [inlined]
thread (1) #5#threadsfor_fun#1 at ./threadingconstructs.jl:215
thread (1) #5#threadsfor_fun at ./threadingconstructs.jl:182 [inlined]
thread (1) #1 at ./threadingconstructs.jl:154
thread (2) #5#threadsfor_fun at ./threadingconstructs.jl:182 [inlined]
thread (2) #1 at ./threadingconstructs.jl:154
thread (2) unknown function (ip: 0x1062d8063)
thread (1) unknown function (ip: 0x1062d8063)
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (2)     ---- End task 2
thread (2) ==== End thread 1
thread (2) ==== Thread 2 created 2 live tasks
thread (2)     ---- Task 1 (0x1094741a0)
thread (2)          (sticky: 0, started: 1, state: 0, tid: 0)
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (1)     ---- End task 2
thread (1) ==== End thread 1
thread (1) ==== Thread 2 created 2 live tasks
thread (1)     ---- Task 1 (0x1094741a0)
thread (1)          (sticky: 0, started: 1, state: 0, tid: 2)
thread (1)     ---- End task 1
thread (1)     ---- Task 2 (0x10c59c970)
thread (1)          (sticky: 0, started: 1, state: 0, tid: 2)
thread (2) jl_start_fiber_swap at /Users/dnetto/RAI/julia-RAI/src/task.c:1433
thread (2) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:617
thread (2) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (2) try_yieldto at ./task.jl:921
thread (2) wait at ./task.jl:995
thread (2) #wait#646 at ./condition.jl:130
thread (2) wait at ./condition.jl:125 [inlined]
thread (2) _trywait at ./asyncevent.jl:142
thread (2) wait at ./asyncevent.jl:159 [inlined]
thread (2) profile_printing_listener at ./Base.jl:572
thread (1) pthread_rwlock_wrlock athread (1) pthread_rwlock_wrlock at /usr/lib/system/libsystem_pthread.dylib (unknown line)
thread (1) uv_rwlock_wrlock at /workspace/srcdir/libuv/src/unix/thread.c:497
thread (1)     ---- End task 2
thread (1) ==== End thread 2
thread (1) ==== Thread 3 created 1 live tasks
thread (1) ==== End thread 3
thread (1) ==== Thread 4 created 1 live tasks
thread (1) ==== End thread 4
thread (1) ==== Thread 5 created 1 live tasks
thread (1) ==== End thread 5
thread (1) ==== Thread 6 created 1 live tasks
thread (1) ==== End thread 6
thread (1) ==== Thread 7 created 1 live tasks
thread (1) ==== End thread 7
thread (1) ==== Thread 8 created 1 live tasks
thread (1) ==== End thread 8
thread (1) ==== Thread 16 created 1 live tasks
thread (1)     ---- Root task (0x10d310010)
thread (1)          (sticky: 1, started: 1, state: 0, tid: 16)
thread (1) semaphore_wait_trap at /usr/lib/system/libsystem_kernel.dylib (unknown line)
thread (1)     ---- End root task
thread (1) ==== End thread 16
thread (1) ++++ Done
Race detected... Someone reset the in-flight bit before we could.
thread (1) ++++ Task backtraces
thread (1) ==== Thread 1 created 3 live tasks
thread (1)     ---- Root task (0x109474010)
thread (1)          (sticky: 1, started: 1, state: 0, tid: 1)
thread (2) jfptr_YY.1056_85594 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_start_fiber_swap at /Users/dnetto/RAI/julia-RAI/src/task.c:1433
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (2)     ---- End task 1
thread (2)     ---- Task 2 (0x10c59c970)
thread (2)          (sticky: 0, started: 1, state: 0, tid: 2)
thread (1) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:617
thread (2) jl_rec_backtrace at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:879 [inlined]
thread (2) jlbacktracet at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1155
thread (1) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (2) jl_print_task_backtraces at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1227
thread (2) jl_set_in_flight_bit_for_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:469 [inlined]
thread (2) ijl_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:486
thread (1) try_yieldto at ./task.jl:921
thread (2) String at ./strings/string.jl:67
thread (1) wait at ./task.jl:995
thread (2) jfptr_String_38812 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) #wait#646 at ./condition.jl:130
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) macro expansion at ./REPL[2]:2 [inlined]
thread (2) #5#threadsfor_fun#1 at ./threadingconstructs.jl:215
thread (2) #5#threadsfor_fun at ./threadingconstructs.jl:182 [inlined]
thread (2) #1 at ./threadingconstructs.jl:154
thread (2) unknown function (ip: 0x1062d8063)
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (2)     ---- End task 2
thread (2) ==== End thread 2
thread (2) ==== Thread 3 created 1 live tasks
thread (2) ==== End thread 3
thread (2) ==== Thread 4 created 1 live tasks
thread (2) ==== End thread 4
thread (2) ==== Thread 5 created 1 live tasks
thread (2) ==== End thread 5
thread (2) ==== Thread 6 created 1 live tasks
thread (2) ==== End thread 6
thread (2) ==== Thread 7 created 1 live tasks
thread (2) ==== End thread 7
thread (2) ==== Thread 8 created 1 live tasks
thread (2) ==== End thread 8
thread (2) ==== Thread 16 created 1 live tasks
thread (2)     ---- Root task (0x10d310010)
thread (2)          (sticky: 1, started: 1, state: 0, tid: 16)
thread (2) semaphore_wait_trap at /usr/lib/system/libsystem_kernel.dylib (unknown line)
thread (2)     ---- End root task
thread (2) ==== End thread 16
thread (2) ++++ Done
Race detected... Someone reset the in-flight bit before we could.
thread (2) ++++ Task backtraces
thread (2) ==== Thread 1 created 3 live tasks
thread (2)     ---- Root task (0x109474010)
thread (2)          (sticky: 1, started: 1, state: 0, tid: 1)
thread (1) wait at ./condition.jl:125 [inlined]
thread (1) _wait at ./task.jl:310
thread (1) threading_run at ./threadingconstructs.jl:167
thread (1) unknown function (ip: 0x1062c864f)
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) macro expansion at ./threadingconstructs.jl:220 [inlined]
thread (1) top-level scope at ./REPL[2]:1
thread (2) jl_start_fiber_swap at /Users/dnetto/RAI/julia-RAI/src/task.c:1433
thread (1) jl_toplevel_eval_flex at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:925
thread (2) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:617
thread (1) jl_toplevel_eval_flex at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:877
thread (2) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (1) ijl_toplevel_eval at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:943 [inlined]
thread (1) ijl_toplevel_eval_in at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:985
thread (2) try_yieldto at ./task.jl:921
thread (1) eval at ./boot.jl:385 [inlined]
thread (1) eval_user_input at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:150
thread (2) wait at ./task.jl:995
thread (1) repl_backend_loop at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:246
thread (2) #wait#646 at ./condition.jl:130
thread (1) #start_repl_backend#46 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:231
thread (2) wait at ./condition.jl:125 [inlined]
thread (2) _wait at ./task.jl:310
thread (2) threading_run at ./threadingconstructs.jl:167
thread (1) start_repl_backend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:228
thread (2) unknown function (ip: 0x1062c864f)
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) macro expansion at ./threadingconstructs.jl:220 [inlined]
thread (2) top-level scope at ./REPL[2]:1
thread (2) jl_toplevel_eval_flex at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:925
thread (2) jl_toplevel_eval_flex at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:877
thread (2) ijl_toplevel_eval at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:943 [inlined]
thread (2) ijl_toplevel_eval_in at /Users/dnetto/RAI/julia-RAI/src/toplevel.c:985
thread (1) #run_repl#59 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:389
thread (2) eval at ./boot.jl:385 [inlined]
thread (2) eval_user_input at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:150
thread (1) run_repl at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:375
thread (2) repl_backend_loop at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:246
thread (1) jfptr_run_repl_92380 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) #start_repl_backend#46 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:231
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) start_repl_backend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:228
thread (1) #1014 at ./client.jl:432
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jfptr_YY.1014_83352 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) #run_repl#59 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:389
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) jl_f__call_latest at /Users/dnetto/RAI/julia-RAI/src/builtins.c:812
thread (2) run_repl at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:375
thread (1) #invokelatest#2 at ./essentials.jl:892 [inlined]
thread (1) invokelatest at ./essentials.jl:889 [inlined]
thread (1) run_main_repl at ./client.jl:416
thread (2) jfptr_run_repl_92380 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) exec_options at ./client.jl:333
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) _start at ./client.jl:552
thread (2) #1014 at ./client.jl:432
thread (1) jfptr__start_83378 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) jfptr_YY.1014_83352 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) true_main at /Users/dnetto/RAI/julia-RAI/src/jlapi.c:582
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) jl_f__call_latest at /Users/dnetto/RAI/julia-RAI/src/builtins.c:812
thread (1) jl_repl_entrypoint at /Users/dnetto/RAI/julia-RAI/src/jlapi.c:731
thread (1)     ---- End root task
thread (1)     ---- Task 1 (0x109476270)
thread (1)          (sticky: 1, started: 1, state: 0, tid: 1)
thread (1) jl_swap_fiber at /Users/dnetto/RAI/julia-RAI/src/task.c:1346
thread (1) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:571
thread (1) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (2) #invokelatest#2 at ./essentials.jl:892 [inlined]
thread (2) invokelatest at ./essentials.jl:889 [inlined]
thread (2) run_main_repl at ./client.jl:416
thread (1) try_yieldto at ./task.jl:921
thread (2) exec_options at ./client.jl:333
thread (1) wait at ./task.jl:995
thread (2) _start at ./client.jl:552
thread (2) jfptr__start_83378 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) #wait#646 at ./condition.jl:130
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) true_main at /Users/dnetto/RAI/julia-RAI/src/jlapi.c:582
thread (2) jl_repl_entrypoint at /Users/dnetto/RAI/julia-RAI/src/jlapi.c:731
thread (2)     ---- End root task
thread (2)     ---- Task 1 (0x109476270)
thread (2)          (sticky: 1, started: 1, state: 0, tid: 1)
thread (2) jl_swap_fiber at /Users/dnetto/RAI/julia-RAI/src/task.c:1346
thread (2) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:571
thread (1) wait at ./condition.jl:125 [inlined]
thread (1) take_buffered at ./channels.jl:477
thread (2) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (1) take! at ./channels.jl:471 [inlined]
thread (1) eval_with_backend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:892
thread (2) try_yieldto at ./task.jl:921
thread (1) do_respond at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:906
thread (2) wait at ./task.jl:995
thread (1) jfptr_do_respond_92516 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) #wait#646 at ./condition.jl:130
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) jl_f__call_latest at /Users/dnetto/RAI/julia-RAI/src/builtins.c:812
thread (2) wait at ./condition.jl:125 [inlined]
thread (2) take_buffered at ./channels.jl:477
thread (1) #invokelatest#2 at ./essentials.jl:892 [inlined]
thread (1) invokelatest at ./essentials.jl:889 [inlined]
thread (1) run_interface at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2656
thread (1) jfptr_run_interface_91270 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) take! at ./channels.jl:471 [inlined]
thread (2) eval_with_backend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:892
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) do_respond at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:906
thread (1) run_frontend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
thread (2) jfptr_do_respond_92516 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) #62 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:386
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) jl_f__call_latest at /Users/dnetto/RAI/julia-RAI/src/builtins.c:812
thread (1) jfptr_YY.62_92419 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) #invokelatest#2 at ./essentials.jl:892 [inlined]
thread (2) invokelatest at ./essentials.jl:889 [inlined]
thread (2) run_interface at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2656
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (1)     ---- End task 1
thread (1)     ---- Task 2 (0x10c59cb00)
thread (1)          (sticky: 0, started: 1, state: 0, tid: 1)
thread (1) jl_rec_backtrace at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:879 [inlined]
thread (1) jlbacktracet at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1155
thread (1) jl_print_task_backtraces at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1227
thread (2) jfptr_run_interface_91270 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) jl_reset_in_flight_bit_for_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:480 [inlined]
thread (1) ijl_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:492
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) String at ./strings/string.jl:67
thread (1) jfptr_String_38812 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) run_frontend at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) macro expansion at ./REPL[2]:2 [inlined]
thread (1) #5#threadsfor_fun#1 at ./threadingconstructs.jl:215
thread (1) #5#threadsfor_fun at ./threadingconstructs.jl:182 [inlined]
thread (1) #1 at ./threadingconstructs.jl:154
thread (1) unknown function (ip: 0x1062d8063)
thread (2) #62 at /Users/dnetto/RAI/julia-RAI/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:386
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (1)     ---- End task 2
thread (1) ==== End thread 1
thread (1) ==== Thread 2 created 2 live tasks
thread (1)     ---- Task 1 (0x1094741a0)
thread (1)          (sticky: 0, started: 1, state: 0, tid: 0)
thread (1) jl_start_fiber_swap at /Users/dnetto/RAI/julia-RAI/src/task.c:1433
thread (1) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:617
thread (1) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (2) jfptr_YY.62_92419 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (1) try_yieldto at ./task.jl:921
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) wait at ./task.jl:995
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (2)     ---- End task 1
thread (2)     ---- Task 2 (0x10c59cb00)
thread (2)          (sticky: 0, started: 1, state: 0, tid: 1)
thread (1) #wait#646 at ./condition.jl:130
thread (2) _ZNK5dyld311MachOLoaded17findClosestSymbolEyPPKcPy at /usr/lib/dyld (unknown line)
thread (2)     ---- End task 2
thread (2) ==== End thread 1
thread (2) ==== Thread 2 created 2 live tasks
thread (2)     ---- Task 1 (0x1094741a0)
thread (2)          (sticky: 0, started: 1, state: 0, tid: 0)
thread (2) jl_start_fiber_swap at /Users/dnetto/RAI/julia-RAI/src/task.c:1433
thread (1) wait at ./condition.jl:125 [inlined]
thread (1) _trywait at ./asyncevent.jl:142
thread (2) ctx_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:617
thread (2) ijl_switch at /Users/dnetto/RAI/julia-RAI/src/task.c:650
thread (1) wait at ./asyncevent.jl:159 [inlined]
thread (1) profile_printing_listener at ./Base.jl:572
thread (2) try_yieldto at ./task.jl:921
thread (2) wait at ./task.jl:995
thread (1) #1056 at ./Base.jl:609
thread (2) #wait#646 at ./condition.jl:130
thread (2) wait at ./condition.jl:125 [inlined]
thread (2) _trywait at ./asyncevent.jl:142
thread (1) jfptr_YY.1056_85594 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) wait at ./asyncevent.jl:159 [inlined]
thread (2) profile_printing_listener at ./Base.jl:572
thread (1) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (1) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (1) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (1) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (1)     ---- End task 1
thread (1)     ---- Task 2 (0x10c59c970)
thread (1)          (sticky: 0, started: 1, state: 0, tid: 2)
thread (1) _ZNK5dyld311MachOLoaded17findClosestSymbolEyPPKcPy at /usr/lib/dyld (unknown line)
thread (1)     ---- End task 2
thread (1) ==== End thread 2
thread (1) ==== Thread 3 created 1 live tasks
thread (1) ==== End thread 3
thread (1) ==== Thread 4 created 1 live tasks
thread (1) ==== End thread 4
thread (1) ==== Thread 5 created 1 live tasks
thread (1) ==== End thread 5
thread (1) ==== Thread 6 created 1 live tasks
thread (1) ==== End thread 6
thread (1) ==== Thread 7 created 1 live tasks
thread (1) ==== End thread 7
thread (1) ==== Thread 8 created 1 live tasks
thread (1) ==== End thread 8
thread (1) ==== Thread 16 created 1 live tasks
thread (1)     ---- Root task (0x10d310010)
thread (1)          (sticky: 1, started: 1, state: 0, tid: 16)
thread (1) semaphore_wait_trap at /usr/lib/system/libsystem_kernel.dylib (unknown line)
thread (1)     ---- End root task
thread (1) ==== End thread 16
thread (1) ++++ Done
thread (2) #1056 at ./Base.jl:609
thread (2) jfptr_YY.1056_85594 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (2)     ---- End task 1
thread (2)     ---- Task 2 (0x10c59c970)
thread (2)          (sticky: 0, started: 1, state: 0, tid: 2)
thread (2) jl_rec_backtrace at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:879 [inlined]
thread (2) jlbacktracet at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1155
thread (2) jl_print_task_backtraces at /Users/dnetto/RAI/julia-RAI/src/stackwalk.c:1227
thread (2) jl_reset_in_flight_bit_for_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:480 [inlined]
thread (2) ijl_array_to_string at /Users/dnetto/RAI/julia-RAI/src/array.c:492
thread (2) String at ./strings/string.jl:67
thread (2) jfptr_String_38812 at /Users/dnetto/RAI/julia-RAI/usr/lib/julia/sys.dylib (unknown line)
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) macro expansion at ./REPL[2]:2 [inlined]
thread (2) #5#threadsfor_fun#1 at ./threadingconstructs.jl:215
thread (2) #5#threadsfor_fun at ./threadingconstructs.jl:182 [inlined]
thread (2) #1 at ./threadingconstructs.jl:154
thread (2) unknown function (ip: 0x1062d8063)
thread (2) _jl_invoke at /Users/dnetto/RAI/julia-RAI/src/gf.c:0 [inlined]
thread (2) ijl_apply_generic at /Users/dnetto/RAI/julia-RAI/src/gf.c:3079
thread (2) jl_apply at /Users/dnetto/RAI/julia-RAI/src/./julia.h:1982 [inlined]
thread (2) start_task at /Users/dnetto/RAI/julia-RAI/src/task.c:1238
thread (2)     ---- End task 2
thread (2) ==== End thread 2
thread (2) ==== Thread 3 created 1 live tasks
thread (2) ==== End thread 3
thread (2) ==== Thread 4 created 1 live tasks
thread (2) ==== End thread 4
thread (2) ==== Thread 5 created 1 live tasks
thread (2) ==== End thread 5
thread (2) ==== Thread 6 created 1 live tasks
thread (2) ==== End thread 6
thread (2) ==== Thread 7 created 1 live tasks
thread (2) ==== End thread 7
thread (2) ==== Thread 8 created 1 live tasks
thread (2) ==== End thread 8
thread (2) ==== Thread 16 created 1 live tasks
thread (2)     ---- Root task (0x10d310010)
thread (2)          (sticky: 1, started: 1, state: 0, tid: 16)
thread (2) semaphore_wait_trap at /usr/lib/system/libsystem_kernel.dylib (unknown line)
thread (2)     ---- End root task
thread (2) ==== End thread 16
thread (2) ++++ Done

Copy link
Member

@NHDaly NHDaly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool, the algorithm makes sense to me! LGTM except our discussion on slack to switch to a cheaper stack trace print

@d-netto d-netto force-pushed the dcn-poor-mans-race-detector branch from bea69bc to ce6c7ea Compare August 20, 2024 21:34
@d-netto
Copy link
Member Author

d-netto commented Aug 20, 2024

except our discussion on slack to switch to a cheaper stack trace print

Latest commit is now printing backtraces for current task only.

Copy link
Member

@NHDaly NHDaly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM thanks! :)

@d-netto d-netto force-pushed the dcn-poor-mans-race-detector branch from ce6c7ea to db16297 Compare August 21, 2024 15:17
@d-netto d-netto merged commit 53e658c into v1.10.2+RAI Aug 22, 2024
1 check passed
@d-netto d-netto deleted the dcn-poor-mans-race-detector branch August 22, 2024 14:10
nickrobinson251 pushed a commit that referenced this pull request Sep 11, 2024
Stdlib: Tar
URL: https://github.com/JuliaIO/Tar.jl.git
Stdlib branch: master
Julia branch: master
Old commit: 81888a3
New commit: 1114260
Julia version: 1.12.0-DEV
Tar version: 1.10.0(Does not match)
Bump invoked by: @StefanKarpinski
Powered by:
[BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl)

Diff:
JuliaIO/Tar.jl@81888a3...1114260

```
$ git log --oneline 81888a3..1114260
1114260 Accept other string types for all string arguments (fix #179) (#180)
a2e39d6 Bump julia-actions/cache from 1 to 2 (#178)
152d12e Bump julia-actions/setup-julia from 1 to 2 (#177)
5012536 Fix Codecov (#176)
9b5460b Add `public` declarations using `eval` (#175)
4e9d73a Add docstring for Tar module (#173)
38a4bf4 Bump codecov/codecov-action from 3 to 4 (#172)
166deb3 [CI] Switch to `julia-actions/cache` (#171)
d0085d8 Hardcode doc edit backlink (#164)
7e83ed7 [NFC] fix some wonky formatting (#168)
6269b5b Bump actions/checkout from 3 to 4 (#163)
```

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
port-to-master This change should apply to all future Julia builds port-to-v1.10 This change should apply to Julia v1.10 builds
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants