process hanging in embeded mode on exception
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
調査の方向性
まず、manual-gil 下で crash.clj、ffi/lock-gil、py/import-module、clojurebridge.load_clojure_file を使ってハングを再現します。見つからないモジュールからの例外が clojurebridge と libpython-clj の間でどのように処理されるかを追跡します。埋め込みプロセスがハングせずに終了または戻り、例外が表示されたままになれば完了です。
索引モデルが issue の本文から書いたものです。
説明
As a FUP of #221 which provided a new pathway to see the exception,
but does not prevent the "hanging" in an other pathway.
The simplest scenario is that we have a hanging python process by using this clojure code crash.clj
(ns train
(:require [libpython-clj2.python :refer [py.- py.] :as py]
[libpython-clj2.python.ffi :as ffi]))
(def locked (ffi/lock-gil))
(py/import-module "not existing")
and load it in embedded mode using manual-gil via:
export JDK_JAVA_OPTIONS="-Dlibpython_clj.manual_gil=true"
python -c 'from clojurebridge import cljbridge;cljbridge.load_clojure_file(clj_file="crash.clj")'
The exception thrown by python on the last line in crash.clj is swallowed by either clojurebridge or libpython-clj and the process hangs forever.
- 主要言語
- Clojure
- スター
- 1.2k
- フォーク
- 74
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
clj-python/libpython-clj のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
clj-python/libpython-clj#280 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
clj-python/libpython-clj#275 · コメント 5 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 58/100
clj-python/libpython-clj#273 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
clj-python/libpython-clj#271 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
clj-python/libpython-clj#270 · コメント 1 件 ·
clj-python/libpython-clj の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
-
.Team/Metabot Priority:P3
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
needs triage
難易度 1/5 1時間未満 初心者へのやさしさ 90/100