Closed8
tokio-runtime-worker の PoisonError で動作がおかしい?
なんか動作が変だな、と思ってログを見に行くと、
2022-01-16T06:35:56.256475+00:00 app[app.1]: thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: PoisonError { .. }', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/runtime/blocking/pool.rs:273:86
2022-01-16T06:35:58.922909+00:00 app[app.1]: thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: PoisonError { .. }', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/runtime/blocking/pool.rs:273:86
こんな感じのエラーが出ていた
これが原因かはわからないが、PoisonError
が初見で気になったので調べておきたい
app のどの行が関連してるとかそのあたりの情報がないので対処がしづらい
thread まわりの大半は外部の crate に頼ってると言うのもあって、どう対処したら良いものか
出るタイミングとしては、app を走らせ始めてからしばらく立ってからで、動作が不安定になった場合も app の restart(container の 再起動) で治る。
thread がたくさん発行されて不整合的な何かが起きてるとかはありそう(なんもわからん)
Mutex の処理中に panic すると起きるというのがあった
https://doc.rust-lang.org/std/sync/struct.PoisonError.html#:~:text=A type of error which can be returned whenever a lock is acquired.
PoisonError
の doc を見ても、 Mutex とかそのあたりが怪しそう
手元で再現できるようにするか、PoisonError を拾ってもう少し詳細にログを出せるようにするかしないと厳しそう
じゃないと怪しそうなところを触っていって、でも治っているかわわからん、みたいな沼になる
一旦close
このスクラップは2022/09/21にクローズされました