aistairc / aiaccel

A hyperparameter optimization library for the ABCI.
https://aistairc.github.io/aiaccel/
MIT License
23 stars 4 forks source link

Long stderr stops set_result command #333

Closed tkokada closed 1 month ago

tkokada commented 6 months ago

Describe the bug aiacce/abci/batch.py でバッチジョブスクリプトが生成されるが,error引数にstderrの出力全てが渡され aiaccel.cli.set_result が呼ばれる. この時 error引数は bashスクリプトとして呼ばれるのでwhitespaceや", ', \ などがstderrに含まれると正常にスクリプトが認識されず停止する場合がある.

To Reproduce Steps to reproduce the behavior:

  1. feature/one_shot_nas などのレポジトリで examples/nas を ABCIで実行する.
  2. バッチジョブスクリプトの python -m aiaccel.cli.set_result ... で停止する.
3bisuoka commented 6 months ago

添付のファイルは今年の4月末にABCIを使用して行ったaiaccel x NASの実験の出力結果(abcioutput/run*.sh.)です.出力内容を見ると'result'のvalueに標準出力が大量に入っていたり"数値"と"convergence"が","が消えて繋がっていたりするのですが,このissueに関係しますか? run_000000_sh_o39630745.txt

KanaiYuma-aist commented 6 months ago

@3bisuoka 'result'に標準出力が入る現象は、下記 pull request で修正した内容と関係していると思われます。 OutputHundler が標準出力を読み取っている途中で、データベースへの書き込み処理が走って途中の標準出力を 'result' として書き込んでしまう現象が過去発生していました。 https://github.com/aistairc/aiaccel/pull/332

3bisuoka commented 6 months ago

@KanaiYuma-aist ご返信ありがとうございます. 上記のabci_output/run*.txtファイルは今年の5月の頭にSlackで共有させていただいた,print文が原因でlocalモード実行時にバグ挙動(# 332で修正頂いた)を起こしていたaiaccel x NASプログラムを,abciモードで実行した際の出力結果でした. 失礼いたしました.