`Segmentation fault(core dumped)` when using multiple threads
まだ誰も着手していません。
評価
調査の方向性
まず、issue にある Julia 1.9.3 の再現コードを julia -t5 で実行し、deepcopy 後にスレッド化されたループから PyCall オブジェクトへアクセスする部分に注目します。関係するスレッド処理と Python オブジェクトの扱いを追跡します。複数スレッドで繰り返し実行しても、提供されたプログラムがセグメンテーションフォルトを起こさなくなれば完了です。
索引モデルが issue の本文から書いたものです。
説明
I first make multiple copies of a PyObject, and then access them in multiple threads. Finally, I meet this error.
julia -t5
using PyCall
py"""
class A():
x = 0.0
a = A()
"""
alist = [deepcopy(py"a") for i in 1:10]
# @show alist
for j in 1:100
Threads.@threads for i in 1:10
alist[i].x
end
end
Julia version
Julia Version 1.9.3
Commit bed2cd540a1 (2023-08-24 14:43 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: Linux (x86_64-linux-gnu)
LIBM: libopenlibm
LLVM: libLLVM-14.0.6 (ORCJIT, goldmont)
Thanks.
- 主要言語
- Julia
- スター
- 1.5k
- フォーク
- 186
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaPy/PyCall.jl のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
JuliaPy/PyCall.jl の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Sienna-Platform/PowerSystemCaseBuilder.jl#239 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
JuliaPluto/Malt.jl#114 ·
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
QuantumSavory/QuantumSavory.jl#592 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
JuliaQUBO/QUBOTools.jl#136 ·