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

Python async APIのシャットダウン周りがなんかおかしい #873

Open
1 of 3 tasks
qryxip opened this issue Nov 16, 2024 · 5 comments
Open
1 of 3 tasks

Comments

@qryxip
Copy link
Member

qryxip commented Nov 16, 2024

不具合の内容

現在CIで動かしてるexample/python/run-asyncio.pyが、たまに次のような感じで落ちます。

[INFO] __main__: Wrote `output.wav`
StopIteration
Fatal Python error: This thread state must be current when releasing
Python runtime state: finalizing (tstate=0x55575c333f40)

Current thread 0x00007f1ecb1fc640 (most recent call first):
  File "/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/asyncio/selector_events.py", line 140 in _write_to_self
  File "/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/asyncio/base_events.py", line 770 in call_soon_threadsafe

Thread 0x00007f1ed0c3ab80 (most recent call first):
<no Python frame>
/home/runner/work/_temp/511098ca-9b2e-4817-a887-a8b80d918959.sh: line 1:  8373 Aborted                 (core dumped) poetry run python "$file" ../test_util/data/model/sample.vvm --dict-dir ../test_util/data/open_jtalk_dic_utf_8-1.11

私が覚えている限り4,5回くらいは発生しています。CI自体はrerunで通りますが、GHAの環境特有の現象とみなさない方がよさそうです。

#843 が予定されてはいますが、pyo3-asyncioをやめることで解決されるかはわかりません。最近やった脱Tokio関係で何か問題があるのかもしれません。あるいはPython 3.8がもう駄目なのかも。

現象・ログ

再現手順

期待動作

VOICEVOXのバージョン

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

その他

@Hiroshiba
Copy link
Member

Pythonのバージョンを上げるのはありかもですね!

ユーザーが使う言語のバージョンをどう決定するか忘れましたが(決めてなかったかも)、3年前くらいにリリースされたものを最低バージョンにするとか良さそう?
となるとPython 3.10が2021年10月4日リリースなので、これくらいまで上げて良さそうかも!

@qryxip
Copy link
Member Author

qryxip commented Dec 1, 2024

最近やった脱Tokio関係で何か問題があるのかもしれません。

これですが、ぱっとは心当たりが出てきませんでした。このissueをきっちり閉じきるためにできることなら原因を探りたかったのですが、労力的には #843 とPythonのバージョンアップをやってしまって再発したらそのときに考える、のがよさそうになってしまいますね。


Ubuntu 20.04 (2025年4月EOL)のPythonが3.8なのですが、Ubuntu 22.04 (2027年4月EOL)だと3.10のようです。そういう観点からも3.10がちょうど良さそう。

@Hiroshiba
Copy link
Member

言語のバージョンをどれくらいサポートするかの議論ってどこかにありましたっけ。どこかでやった記憶はあるけど・・・。
ちなみにOSのサポート方針はこちらにありました。

3.10がリリースされたのが3年くらい前なんですね。
「3年くらい前にリリースされたものを最低ラインとしてサポートする」くらいが良さそうな気がしますね!

@qryxip
Copy link
Member Author

qryxip commented Dec 6, 2024

言語のバージョンをどれくらいサポートするかの議論ってどこかにありましたっけ。どこかでやった記憶はあるけど・・・。

ありましたっけ…?覚えてない。このリポジトリのPython 3.8というのも、確か当時のENGINEに合わせただけだったような記憶があります。

ちなみにあるWeb記事によると、ColabはPython 3.10が入ってるみたいです。

@Hiroshiba
Copy link
Member

とりあえず3年前くらいにリリースされたものを最低バージョンに、で良さそうな気がしました!
まあ、今起きてるエラーがPython 3.11で解決するなら、3.11でも良いかも。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants