gss_accept_sec_context() 失败:引用的凭据已在 apache、kerberos 和 subversion 1.8 服务器中过期

gss_accept_sec_context() 失败:引用的凭据已在 apache、kerberos 和 subversion 1.8 服务器中过期

系统信息

  • 服务器:Apache 2.2
  • 颠覆:1.8

我们正在使用 Kerberos + Apache + Subversion。直到最近,我们一直在使用 Subversion 1.5 的 dav_svn 模块。我们正在尝试更新到 1.8。

当客户端使用基于 1.8 的 dav_svn 模块运行长检出时,会发出以下错误消息。

[Thu May 15 22:30:29 2014] [error] [client 283.10.15.26] gss_accept_sec_context() failed: The referenced credential has expired (, )

客户端可以续订票证,但 Apache 似乎无法处理第一个票证。接下来我可以检查什么?

答案1

这似乎是 Subversion 1.8 用于 HTTP 访问的 Serf 库中的一个错误。您能否将此问题报告给 Serf 项目问题跟踪器: https://code.google.com/p/serf/issues/list

Subversion 1.5 没有出现此问题,因为 Subversion 1.8 使用所谓的“skelta 模式”进行签出和更新。Skelta 模式对需要从服务器获取的每个资源使用一个 HTTP 请求和响应,而批量更新模式则在一个大规模响应中获取所有资源: http://subversion.apache.org/docs/release-notes/1.8.html#serf-skelta-default

作为解决方法,您可以在服务器配置中添加“SVNBulkUpdates prefer”Apache 指令,以强制 Subversion 客户端使用旧的批量更新模式,该模式使用一个大的请求进行签出/更新。

相关内容