質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.33%

WSL2上のThreadingエラー

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 391

octa_gongon

score 6

WSL2のUbuntu上で走らせたコードが以下のようなエラーを吐きます。

ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
Traceback (most recent call last):
File "demo.py", line 383, in <module>
main(args)
File "demo.py", line 94, in main
tracking_results = mot(image_folder)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/multi_person_tracker/mpt.py", line 194, in call
trackers = self.run_tracker(dataloader)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/autograd/grad_mode.py", line 49, in decorate_no_grad
return func(*args, kwargs) File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/multi_person_tracker/mpt.py", line 78, in run_tracker predictions = self.detector(batch) File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/autograd/grad_mode.py", line 49, in decorate_no_grad return func(*args, kwargs)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/yolov3/yolo.py", line 69, in call
detections = self.model(inp_batch)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, kwargs) File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/yolov3/models.py", line 252, in forward x = module(x) File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call result = self.forward(*input, kwargs)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/container.py", line 100, in forward
input = module(input)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/batchnorm.py", line 107, in forward
exponential_average_factor, self.eps)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/functional.py", line 1670, in batch_norm
training, momentum, eps, torch.backends.cudnn.enabled
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/utils/data/_utils/signal_handling.py", line 66, in handler
_error_if_any_worker_fails()
RuntimeError: DataLoader worker (pid 356) is killed by signal: Bus error. It is possible that dataloader's workers are out of shared memory. Please try to raise your shared memory limit.
Exception ignored in: <function tqdm.del at 0x7f65dc3d7680>
Traceback (most recent call last):
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/tqdm/_tqdm.py", line 931, in del
self.close()
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/tqdm/_tqdm.py", line 1133, in close
self._decr_instances(self)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/tqdm/_tqdm.py", line 496, in _decr_instances
cls.monitor.exit()
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/tqdm/_monitor.py", line 52, in exit
self.join()
File "/root/anaconda3/envs/vibe-env/lib/python3.7/threading.py", line 1041, in join
raise RuntimeError("cannot join current thread")
RuntimeError: cannot join current thread

メモリ不足が示唆されていますが、タスクマネージャを観察している限り原因はそこにはないと考えています。
原因のわかる方いらっしゃいませんでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

メモリ不足が示唆されていますが、タスクマネージャを観察している限り原因はそこにはないと考えています。

WSL2は内部では仮想マシン上で実行されております。
Windows上のタスクマネージャーからではWSL2の仮想マシンの使用メモリは確認できないでしょう。
(可変サイズなので大まかな数字はわかるかもしれないですが)

WSL2のメモリに関連するQiitaの記事には下記のような記述がありました。

memoryにはWSL2が最大確保するメモリサイズを指定します。PCの搭載メモリとWSL2の使用用途に応じてメモリサイズの値は変更してください。ちなみに未指定時のデフォルト値はPC搭載メモリの80%です。

上記から、仮想マシンの中で、指定したメモリサイズ分もしくは、未指定の場合はPC搭載メモリの80%を使用している場合、Windows上のタスクマネージャで余裕があってもメモリ不足が発生するかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/08/01 11:34

    ありがとうございます。
    確保されている最大メモリサイズも確認していはいるのですが、問題ではないようです。
    またWSL1を使っていたころに同じプログラムを走らせた際にはこのようなことは起きなかったのですが、何かWSL2に固有の問題があるのでしょうか…

    キャンセル

  • 2020/08/01 13:18

    あとは実行中の使用メモリは確認してみてというところでしょうか。

    WSL1と比較して、仮想マシンで動かすことや、最大確保するメモリサイズの関係から、
    同じハード構成であれば、使用できるメモリ量が減ります。

    Dockerであればshmが制限されるなどは聞いたことありますが、WSL2に関してはわかりません。

    このエラーだけですと、「メモリが不足している」ということしかわからないので、
    ハード構成やコード自体などを質問に追記するといいかもしれません。

    キャンセル

  • 2020/09/12 20:45

    お返事遅れてすみません、ありがとうございます。
    いろいろ調べたところ、おっしゃる通りCuDNNが機能していないことによるメモリ不足だったようです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る