Subversion大提交中途停滞超时问题排查求助
Subversion via Apache HTTPS: Large Batch Commits Stall with OpenSSL I/O Error
我最近碰到了一个Subversion服务器的头疼问题:提交单个小文件或者少量文件都正常,但提交包含约2000个文件、总大小1GB的大文件集合时,传输会中途突然停滞,最后客户端直接超时。观察到上传到一半左右的时候,传输速率直接降到0kb/s,再也恢复不了。
虽然把大提交拆分成小于150MB的片段能成功完成,但这样会破坏Subversion提交的原子性——这是我绝对不想妥协的点。
日志排查情况
查看Apache的常规日志没有发现任何错误;我把Apache日志级别从debug调到trace6后,在上传停滞的瞬间捕捉到了如下OpenSSL I/O错误:
... OpenSSL: I/O error, 2229 bytes expected to read on BIO OpenSSL: read 1460/2229 bytes from BIO ...
环境版本信息
我们是通过Apache搭配mod_dav、mod_dav_svn、mod_authz_svn和mod_auth_digest来搭建Subversion服务,客户端通过HTTPS连接。
服务器端:
- OpenSuse 42.3
- svnserve:
1.9.7 - Apache:
2.4.23
客户端:
- Windows 10 Enterprise
- SVN客户端:
1.10.0-dev
已尝试的无效解决方案
我已经试过下面几个方法,但都没解决问题:
- 增大Apache配置中的
TimeOut值:只是延长了客户端停滞的时间,最终还是会超时 - 将
MaxKeepAliveRequests从100调整为1000:没有任何变化 - 在SVN设置中添加
SVNAllowBulkUpdates Prefer:完全没改善
真心希望各位能给我一些排查这个问题的思路,谢谢大家!
内容的提问来源于stack exchange,提问作者Björn Blissing
相关产品推荐
相关产品推荐

