VSCode調試data層時自身的一個bug


使用VSCode在pytorch下進行調試有的時候會遇到下面這個錯誤:

E00037.671: Exception escaped from start_client
            
            Traceback (most recent call last):
              File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/log.py", line 110, in g
                return f(*args, **kwargs)
              File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/pydevd_hooks.py", line 74, in start_client
                sock, start_session = daemon.start_client((host, port))
              File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/daemon.py", line 214, in start_client
                with self.started():
              File "/media/hdd/yike/anaconda3/envs/pytorch-netvlad/lib/python3.6/contextlib.py", line 81, in __enter__
                return next(self.gen)
              File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/daemon.py", line 110, in started
                self.start()
              File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/daemon.py", line 145, in start
                raise RuntimeError('already started')
            RuntimeError: already started
            
Traceback (most recent call last):

Error in atexit._run_exitfuncs:
Error in atexit._run_exitfuncs:
Traceback (most recent call last):

 

原因:VSCode對多線程支持得不夠好,解決方法:在使用多線程得腳本中添加如下代碼:

import multiprocessing
multiprocessing.set_start_method('spawn',True)

 

但有的時候可能還會出現如下得錯誤:

OMP: Error #13: Assertion failure at z_Linux_util.cpp(2361).
OMP: Hint Please submit a bug report with this message, compile and run commands used, and machine configuration info including native compiler and operating system versions. Faster response will be obtained by including all program sources. For information on submitting this issue, please see http://www.intel.com/software/products/support/.
/media/hdd/yike/anaconda3/envs/pytorch-netvlad/lib/python3.6/multiprocessing/semaphore_tracker.py:143: UserWarning: semaphore_tracker: There appear to be 26 leaked semaphores to clean up at shutdown
  len(cache))

發現這個問題是由於intel-openmp版本太新造成的bug,通過重新安裝intel-openmp=2019.4即可解決。

conda install -y intel-openmp=2019.4

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM