Jupyter 并發測試以后出現EOFError: marshal data too short
背景
由于項目需求需要用戶能進行網頁在線運行python代碼程序,調研后決定使用Jupyter
的服務接口實現此功能,目前使用docker
進行容器化部署,測試針對次服務進行并發測試。測試并發過程中,導致kernels
已經達到頂峰值,然后我暴力關掉所有的kernels以后,再進行使用的時候,出現EOFError: marshal data too short
現象
分析與解決方案
通過異常日志分析,查到這篇文章https://stackoverflow.com/questions/50391941/eoferror-marshal-data-too-short說是要pyc文件損壞,需要刪除__pycache__
文件夾下的文件。
從日志分析需要刪除ipykernel
、IPython
、jedi
下的緩存文件,使用一下命令查詢并刪除
find /usr/local/lib/python3.11/dist-packages/ipykernel -name __pycache__ | grep IPython -exec rm -r {} +
刪除完后發現還是解決不了問題。最后想了一個暴力的解決方案,直接刪除dist-packages
s 目錄下的所有的__pycache__
文件夾。
find . -type d -name "__pycache__" -exec rm -r {} +
再嘗試運行一下,完美解決問題!