V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
no1xsyzy
V2EX  ›  程序员

(问题本身已解决)WSL1 长期运行(网络相关?)任务会导致主系统 socket 耗尽?

  •  
  •   no1xsyzy ·
    no1xsyzy · 2020-06-03 02:40:45 +08:00 · 2668 次点击
    这是一个创建于 1629 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前情提要:某个小圈子内自己做自己玩的游戏,制作人明说了不禁、甚至鼓励自动化脚本。所以我做了一个,因为这样那样的原因最后是放在 WSL1 里跑了,白天就放家里挂着。

    连续两天,回家以后发现整个操作系统处于不可用状态。任何 TCP 链接都无法建立,大部分依赖进程间通信的软件也无法运作,并且几乎都没有提供恰当的报错。但是,相应地 UDP 相关都非常正常,DNS 也正常,游戏都玩了两把才发现的。

    最后唯一提供了有意义的信息的报错点是 Synergy,明确表示 socket 耗尽(值得注意的是,只有第一天是 socket 耗尽,第二天单纯地报 inter-process communication 失败)。但 netstat -ano 并没有多少连接在。将 WSL 停止后情况没有改善。甚至任务管理器的 “详细信息” 选项卡都显示不出来,最后只能重启。

    将这个脚本转移到另一台原生 Linux 上去后到现在一个月了无论哪边都没发生过这种情况。

    现在提问:WSL1 长期运行网络相关任务确实会导致这种情况吗? 如果是的话,是 WSL1 的实现不完整的缘故导致的吗?是我的内存没有 ECC 的缘故吗?

    10 条回复    2020-09-15 09:54:08 +08:00
    zk8802
        1
    zk8802  
       2020-06-03 07:23:32 +08:00
    有可能是句柄泄露。Windows 10 现在有好几个句柄泄露的 bugs 。WSL1 的实现里面发生句柄泄露我完全不意外。
    wszgrcy
        2
    wszgrcy  
       2020-06-03 09:21:01 +08:00 via Android
    大佬,啥游戏,好玩吗?
    hfc
        3
    hfc  
       2020-06-03 09:38:44 +08:00
    我怀疑我遇到的端口占用问题跟你这个类似
    就是比如刚开机没多久啥也还没干,然后发现 10086 端口被占用了,改 10087 、10088 等都是被占用,netstat 里也找不到,最后是重启解决的。这个问题遇过好几次了,被占用的端口不固定,总的来说感觉是去年下半年开始才出现的。
    no1xsyzy
        4
    no1xsyzy  
    OP
       2020-06-03 09:44:54 +08:00
    @hfc #3 除了都是网络相关方面发生 bug 以外没有很明显的相似点吧……
    我连出站连接一个都建立不了。
    binbinyouliiii
        5
    binbinyouliiii  
       2020-06-03 09:47:08 +08:00   ❤️ 1
    我在用 WSL2,也遇到了端口莫名被占用的情况,表现为 55r 和 jetbrains 全家桶打不开,提示端口被占用,但是有在命令行里看找不到被占用的端口,非常奇怪
    Itoktsnhc
        6
    Itoktsnhc  
       2020-06-03 10:10:21 +08:00
    也有遇到 jetbrains 全家桶端口被占用问题,重启能解决,有时候科学软件也会报端口被占用。
    不知道和这个问题有无关系
    https://github.com/docker/for-win/issues/3171#issuecomment-554587817
    march1993
        7
    march1993  
       2020-06-03 16:28:21 +08:00
    遇到过一模一样的情况,把 wsl1 里所有进程杀光之后,多刷新几遍浏览器就打开了。。
    cooldoubi
        8
    cooldoubi  
       2020-09-14 10:59:23 +08:00   ❤️ 1
    no1xsyzy
        9
    no1xsyzy  
    OP
       2020-09-14 12:48:23 +08:00
    @cooldoubi 我觉得上面 @binbinyouliiii 和 @Itoktsnhc 都是你链接的这个情况,而与我的情况不同。
    另附:
    我当时并不知道 WSL 完全停止需要 wsl.exe 的操作,而仅仅是 kill 了所有进程。
    wsl.exe 来停止可能可以,但是不想尝试了,甚至把 log 都写进 journald 了,wsl 就更没意义了,反正笔记本放着也是放着,上面还跑着个 nextcloud 。
    hfc
        10
    hfc  
       2020-09-15 09:54:08 +08:00
    @cooldoubi 感谢分享
    之前我也在 StackOverflow 上看到这个动态端口的猜测,不过那个答主没有分析到 win10 升级改变了这个端口范围,只是贴出了修改动态端口的方法,所以我也就没跟着修改了。。。这个博主的分析很有道理,我的动态端口范围跟他一致,微软修改动态端口的时间点跟我的感觉上的也对的上。。。那就修改这个配置好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3530 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 10:48 · PVG 18:48 · LAX 02:48 · JFK 05:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.