【问题标题】:yosemite svn 1.6.6 segmentation fault优胜美地 svn 1.6.6 分段错误
【发布时间】:2014-12-09 22:05:33
【问题描述】:

升级到 Yosemite 后,svn 在我的 Mac 中停止工作。我知道有一个非常相似的问题没有答案, Segmentation fault: 11 in SVN checkout,但是我花了一整天的时间来处理这个问题,我正在添加更多关于这个问题的信息。我希望有人也许有人可以提供帮助......我真的被困住了。我无法升级svn,我打算回到小牛队。

我得到的错误:

svn update
Segmentation fault: 11

我已经在自己编译的二进制文件中使用 svn(虽然对 C 不太熟悉)。几个月前,Xcode 的更新删除了旧的 svn 1.6。

这次使用优胜美地,当我尝试再次编译它时,我发现操作系统更新已修改 apacheAPR 并且源不再编译(或者至少这是我的猜测我得到的错误):

/bin/sh /mnt/netzima/icaria/apps/subversion-1.6.6/libtool --tag=CC --silent --mode=compile gcc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp  -g -O2  -g -O2   -I/usr/include/apache2 -I./subversion/include -I./subversion -I/usr/local/apr/include/apr-1   -I/usr/local/apr-util/include/apr-1 -I/opt/local/include/neon  -o subversion/mod_authz_svn/mod_authz_svn.lo -c subversion/mod_authz_svn/mod_authz_svn.c
subversion/mod_authz_svn/mod_authz_svn.c:448:9: error: member reference base type 'char' is not a structure or union
        ap_log_rerror(file, line, level, 0, r,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我已经下载并make install以下内容:

  • libtool 版本 2.4.2
  • autoconf 版本 2.69
  • automake 1.14 版
  • 4 月版本 1.3.12
  • apr-util 版本 1.3.12
  • apache 2.2.29 版

我希望这些版本与 svn 1.6.6 兼容,因为正如我之前提到的,我的猜测是它不再与最新版本兼容。

如果要使用我下载的那些包,我必须在配置命令中添加选项。对于 apr-util,我必须这样配置:

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

至于阿帕奇:

./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --prefix=/usr/local/apache2 --enable-dav --enable-so

最后是svn:

./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-apxs=/usr/local/apache2/bin/apxs --enable-maintainer-mode

这种方式至少 svn 编译(我想这证明它得到了正确的版本)。但它不起作用,我得到了同样的分段错误。我已经将 /usr/local/... 目录添加到我的路径中以确保,虽然我猜 svn 将它需要的所有库放在一个可访问的目录中(我认为它是 /usr/local/bin,这已经在我的路径中)。

我不知道从这里怎么走。我尝试使用调试进行编译以查看是否可以获得指向分段错误、核心转储或类似内容的指针,但没有成功...

任何帮助将不胜感激! 无论如何,谢谢。

编辑:

根据@indiv 的建议,这是 otool 的输出:

/usr/local/bin/svn:

/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57031.1.35)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1151.16.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 62.0.0)
/usr/local/lib/libsvn_client-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_wc-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_ra-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_diff-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_ra_local-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_repos-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_fs-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_fs_fs-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_fs_util-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_ra_svn-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libsasl2.2.dylib (compatibility version 3.0.0, current version 3.15.0)
/usr/local/lib/libsvn_ra_neon-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_delta-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libsvn_subr-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/opt/local/lib/libsqlite3.0.dylib (compatibility version 9.0.0, current version 9.6.0)
/usr/local/apr-util/lib/libaprutil-1.0.dylib (compatibility version 4.0.0, current version 4.12.0)
/usr/local/apr/lib/libapr-1.0.dylib (compatibility version 4.0.0, current version 4.12.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
/opt/local/lib/libneon.27.dylib (compatibility version 30.0.0, current version 30.6.0)
/opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
/opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.2.0)
/opt/local/lib/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/opt/local/lib/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)
/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos (compatibility version 5.0.0, current version 6.0.0)
/opt/local/lib/libexpat.1.dylib (compatibility version 8.0.0, current version 8.0.0)

【问题讨论】:

  • 我认为你在正确的轨道上,它是导致崩溃的不兼容库。运行 which svn 以验证您正在运行正确的 SVN。将otool -L /usr/local/bin/svn 的输出添加到您的问题中,以提供有关库依赖项的其他调试信息。
  • 谢谢@indiv!我猜这是它使用的库列表。但是如何弄清楚其他事情呢? (只是仔细检查了哪个 svn)
  • 有些东西odd about Yosemite's libsasl。我想知道这是否导致了这个问题。我从未构建过 SVN 1.6;该版本是否支持--without-sasl?如果是这样,您可以尝试使用该选项重新配置、重建和重新安装。
  • 否则,如果您想继续调试您的 SVN 安装,您将需要使用调试符号 (CFLAGS=-g) 重新构建并在 lldb 下运行它。即lldb svn update,一旦进入调试器,输入“r”进行运行。如果它与“exec”的停止原因中断,则为“c”。当它崩溃时,你应该得到一个堆栈跟踪。恐怕这只是我能提供的帮助的极限,所以祝你好运。如果是我,我会尝试 SVN 1.8.x。我不知道为什么必须坚持使用 1.6.x,除了我想尝试将 cmdline svn 与某些 IDE 插件的 svn 匹配。
  • 是的,@indiv,svn 1.6 有 sasl 作为可选依赖项。它确实支持 --withot-sasl。但是,分段错误仍然存​​在......我已经运行了“otool ...”并且 sasl 库不再存在。明天我会尝试调试(现在去睡觉,这是漫长的一天!)让我们看看我是否幸运,我会告诉你。 ( ./configure 命令有一个 --enable-debug 选项,我会检查这是否添加了您提到的 CFLAGS)。非常感谢!

标签: c apache svn osx-yosemite apr


【解决方案1】:

【讨论】:

  • 感谢您的回答,但该链接适用于 svn 1.8。顺便说一句,其中也带有 xcode。我的问题是我必须坚持 1.6。
  • 我使用了一个更高版本的 SVN 客户端(在我的例子中是 1.7)和一个 1.6 的服务器没有问题,只需要 svn upgrade 我的存储库使用新的客户端。
【解决方案2】:

终于成功了!感谢@indiv 的帮助!我正要放弃,回到小牛队。

我必须编译 neon,版本 0.29.0。

./configure --prefix=/usr/local/neon --with-ssl

然后我重新编译了svn:

./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-apxs=/usr/local/apache2/bin/apxs --enable-debug --enable-maintainer-mode --without-sasl --with-neon=/usr/local/neon --with-ssl

它有效!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-04
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多