WSL2下AWS SAM build卡在等待tstate_lock锁问题求助
AWS SAM Build在WSL2环境下卡住的问题排查与解决
问题现象
运行sam build时进程卡在以下输出阶段:
architecture: x86_64 functions: HelloWorldFunction Building image for HelloWorldFunction function Setting DockerBuildArgs: {} for HelloWorldFunction function
中断操作后出现线程锁等待报错:
Aborted! ^CException ignored in: <module 'threading' from '/usr/local/aws-sam-cli/1.96.0/dist/threading.pyc'> Traceback (most recent call last): File "threading.py", line 1553, in _shutdown File "concurrent/futures/thread.py", line 31, in _python_exit File "threading.py", line 1112, in join File "threading.py", line 1132, in _wait_for_tstate_lock KeyboardInterrupt:
已完成的排查操作
- 重启WSL2环境
- 暂停Dropbox同步
- 关闭VS Code及相关进程
- 重装Ubuntu 20.04 LTS系统
- 验证
docker buildx build可正常执行,排除Docker本身问题
可能原因及解决方法
- SAM CLI版本兼容性bug:当前使用的1.96.0版本可能存在WSL2环境下的线程锁问题。可尝试降级至稳定版本(如1.95.0)或升级至最新版本:
- 若通过pip安装:
pip install --upgrade aws-sam-cli==1.95.0 - 若通过官方脚本安装:指定版本号重新运行安装脚本
- 若通过pip安装:
- 跨文件系统锁冲突:若项目位于Windows挂载目录(如
/mnt/c),WSL2访问时易出现锁等待。将项目迁移至WSL2内部文件系统(如/home/[你的用户名]/)后重新执行sam build - 禁用并发构建:强制关闭SAM的并发构建逻辑,避免线程死锁:
sam build --parallel False - Docker网络/上下文重置:重启Docker Desktop(若使用Docker Desktop配合WSL2),或检查WSL2的Docker上下文配置:
docker context use default - 权限校验:确保当前用户对项目目录拥有完整读写权限,或尝试以sudo权限执行构建(需注意环境变量同步):
sudo -E sam build
内容的提问来源于stack exchange,提问作者AlwaysLearning
相关产品推荐
相关产品推荐

