当删除目录的修订之间存在差异时,Traefik 背后的 SVN 返回错误 500
SVN behind Traefik returning error 500 when diff between revisions where a directory was deleted
好吧,我想把题目具体化,结果把问题都写在里面了^^
所以,我有一个 Traefik Docker 容器,它公开了一个 SVN
容器(使用 Apache DAV_SVN 模块)。
问题是当我做 svn diff -r 1:2 https://THEURL/svn/Repo/
它因 500 错误而失败:
svn: E175002: Unexpected server error 500 'Internal Server Error' on
'/svn/Repo/!svn/rvr/1/deleted_directory'
如果目录(deleted_directory 在我的示例中)在版本 2 中已被删除但存在于版本 1 中,似乎会发生这种情况。
问题是我有另一个 SVN 服务器,它使用相同的命令(和相同的 repo)工作得很好(一个旧的 VisualSVN
)。
另一个有趣的事实是,如果我直接在 SVN 容器中执行命令(用 localhost 替换 THEURL),那么一切正常。这表明这是一个反向代理/Traefik 问题。
你有什么见识吗?谢谢!
我终于找到了问题的解决方案:阻止 WebDav 的企业防火墙。这解释了为什么它在容器内以及在公司网络上的另一台服务器 (VisualSVN) 上工作...
即使使用 Traefik,在家里也一切正常(这意味着:没有防火墙)。嗅探 HTTP 帧显示一条消息,表明此防火墙不允许 WebDav 方法。的确,PROPFIND 是造成麻烦的那个。
结束这个问题 ;-)
好吧,我想把题目具体化,结果把问题都写在里面了^^
所以,我有一个 Traefik Docker 容器,它公开了一个 SVN
容器(使用 Apache DAV_SVN 模块)。
问题是当我做 svn diff -r 1:2 https://THEURL/svn/Repo/
它因 500 错误而失败:
svn: E175002: Unexpected server error 500 'Internal Server Error' on '/svn/Repo/!svn/rvr/1/deleted_directory'
如果目录(deleted_directory 在我的示例中)在版本 2 中已被删除但存在于版本 1 中,似乎会发生这种情况。
问题是我有另一个 SVN 服务器,它使用相同的命令(和相同的 repo)工作得很好(一个旧的 VisualSVN
)。
另一个有趣的事实是,如果我直接在 SVN 容器中执行命令(用 localhost 替换 THEURL),那么一切正常。这表明这是一个反向代理/Traefik 问题。
你有什么见识吗?谢谢!
我终于找到了问题的解决方案:阻止 WebDav 的企业防火墙。这解释了为什么它在容器内以及在公司网络上的另一台服务器 (VisualSVN) 上工作...
即使使用 Traefik,在家里也一切正常(这意味着:没有防火墙)。嗅探 HTTP 帧显示一条消息,表明此防火墙不允许 WebDav 方法。的确,PROPFIND 是造成麻烦的那个。
结束这个问题 ;-)