JuliaPy / JuliaPy/PythonCall.jl

rr chaos mode for stress testing garbage collection

未關閉
#532 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Julia
星號
1.1k
分支
86
平均合併
1 天 22 小時
30 天內合併 PR
3

描述

x-post from https://github.com/JuliaPy/PythonCall.jl/pull/520#issuecomment-2241796411. Probably useful for when https://github.com/JuliaPy/PythonCall.jl/pull/529 lands.

Regarding testing, it could be nice to try something like [rr's chaos mode](https://robert.ocallahan.org/2016/02/introducing-rr-chaos-mode.html) to assault the garbage collector in multithreaded mode and reveal any potential thread safety issues.

It is tricky to start Julia with rr from within Python – see https://github.com/JuliaLang/julia/issues/52689. So the test would have to be run from the Julia side of PythonCall.jl, and open Python from there, rather than the other direction. But maybe that would be good enough for testing this.

I believe the Julia version of this can be done with

```julia
julia --bug-report=rr-local,chaos
```

which starts a new Julia process using BugReporting.jl.

BugReporting.jl looks to launch `rr` using

https://github.com/JuliaLang/BugReporting.jl/blob/fec2ece8be317462fe8b93ffca56e5b228d0b341/src/BugReporting.jl#L162

```
rr_cmd = `$(rr()) record $rr_flags $julia_cmd $julia_args`
```

where `rr_flags` contains `--chaos` for chaos mode.

So perhaps the BugReporting.jl package could be installed for testing, which automatically installs `rr`. This could be used for referencing the `rr` executable with `BugReporting.rr()`.

cc @EricPhanson

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。