每次更新之后都连不上 wsl remote, 只能删掉 ~/.qoder-server 才能连上

每次更新之后都连不上 wsl remote, 只能删掉 ~/.qoder-server 才能连上.

1 Like

感谢反馈,下次报错连不上的时候,在这里联系我,我们收集下日志,看下什么原因?排查下是否由于WSL的空间不足导致的解压失败等这些原因 :saluting_face:

用 GPT 找了一下原因. WSL: Ubuntu 22.04, Qode: 2025.12.16 最新版本


Bug / Incident Report: Qoder WSL server install fails due to corrupted tarball download

Summary

在 Windows 上通过 Qoder 连接 WSL(ubuntu-22.04)时,Qoder 自动安装远端 qoder-server 失败,报错:

  • Error while extracting server contents

  • 远端解压阶段出现 tar: Unexpected EOF in archive / gzip: invalid compressed data--format violated

Impact

无法完成 Qoder Remote WSL 初始化,导致无法连接 WSL 开发环境。

Evidence / Logs

失败目录:
~/.qoder-server/bin/12be359badc94dd256ec6160db7a03cb18175025/

失败时 tar 包校验:

  • gzip -t qoder-server.tar.gzinvalid compressed data--format violated

  • tar -tzf qoder-server.tar.gzUnexpected EOF in archive

失败包大小异常:

  • 损坏包大小约 376MB,但 file 显示原始解压尺寸约 493,066,240 bytes(提示下载/文件内容不完整或被破坏)。

系统侧还观察到 WSL 提示:

  • A localhost proxy configuration was detected but not mirrored into WSL. WSL in NAT mode does not support localhost proxies.
    这表明 Windows 存在本机代理设置,但 WSL NAT 模式无法镜像 localhost 代理,可能导致下载链路异常/中断。

Root Cause (Most likely)

Qoder 安装脚本使用 wget --continue 下载 server tarball。结合现象判断:

  • 下载过程中发生中断或代理/网络链路问题;

  • --continue 续传可能将不完整/错误内容拼接进已有文件;

  • 最终得到“文件体积看似正常但 gzip/tar 内部损坏”的 tar.gz,导致解压报错。

Resolution / Workaround

手动删除损坏 tarball 并使用 curl 重新下载(不使用断点续传)后问题解决:

cd ~/.qoder-server/bin/12be359badc94dd256ec6160db7a03cb18175025
rm -f qoder-server.tar.gz

URL="https://download.qoder.com/server/0.2.22/qoder-reh-linux-x64-0.2.22.tar.gz"
curl -L --retry 5 --connect-timeout 15 -D headers.txt -o qoder-server.tar.gz "$URL"

gzip -t qoder-server.tar.gz
tar -tzf qoder-server.tar.gz | head

重新下载后 tar.gz 大小为 126MBgzip -t 通过,tar -tzf 能正常列出内容。

下载响应头(节选,完整见 headers.txt):

  • HTTP/1.1 200 OK

  • Server: AliyunOSS

  • Content-Length: 131105248

  • Accept-Ranges: bytes

  • ETag: "BA6A5BB57CED06B40FA0554E37042D11-52"

Suggested Fix (for Qoder)

  1. 安装脚本下载建议避免默认 wget --continue,或在续传前做校验:

    • 若已有文件存在但 gzip -t / tar -tzf 不通过,则删除重下。
  2. 下载完成后增加完整性检查(例如 gzip -t),失败则自动重试(不续传)。

  3. 若检测到 Windows localhost proxy 且 WSL NAT 不支持,提示用户可能影响远端下载,并提供替代下载策略。

1 Like

最新 0.3.1 又出现这个问题了, 不是更新脚本回退了吧 :smiling_face_with_tear:

感谢反馈 我来本地测试复现下这个问题 :grinning_face: