我们有一个Python应用程序,用于在PC上的SVN签出和
IBM i
Wireshark
显示数据使电脑出现故障。
有时效果很好,有时一行或两行出现故障,有时很多行。
在这个问题出现之前,脚本没有改变。
storlines()
Python代码中的调用:
connection.storlines('STOR ' + ibmi_file, open(source_file.fullpath, 'rb'))
其他开发人员也看到了这个问题,他们运行各种版本的Python和Windows。
我下载了3.6.1源代码,并在socketmodule.c中的sock\u sendall()和sock\usend\u impl()中添加了一些调试日志
我可以看到以下内容是从sock\u send\u impl()发送的。
来源
行#-长度(字节)
2 - 73
3 - 38
4 - 73
6 - 41
2 - 1452
2, 5, 3, 4
据我所知,sock\u send\u impl()是将数据传递给操作系统的地方。我意识到
Nagle's algorithm
但是,该数据包中的数据应该与传入send的顺序相同。事实并非如此。
我认为这可能与最近的一些Windows补丁有关,只是我们的一个使用Mac的开发者看到了相同的(?)问题
这对我来说没有任何意义,我也不知道接下来该怎么办。