我只是在我的Fedora盒子上设置了scite的trac 0.12.2,并且trac通过Web浏览器和命令行正常工作。我的问题是实现svn hooks,其中post-commit钩子在运行此命令时死于分段错误:
/usr/bin/trac-admin /var/trac/myproject changeset added "$1" "$2"
其中$ 1是本地文件系统上的svn存储库路径,$ 2是修订版。
此命令的输出为:
/path/to/svn/hooks/post-commit: line 9: 3874 Segmentation fault /usr/bin/trac-admin /var/trac/myproject changeset added "$1" "$2"
我该如何调试?有谁知道为什么这可能会在全新安装时发生(我没有升级,它很干净)?
我对运行此命令的用户apache
做了一些基本检查。我也尝试将此命令作为apache
运行,以查看它是否会失败,但这只能从命令行中找到:
sudo -u apache /usr/bin/trac-admin /var/trac/ujaweb changeset added /path/to/svn/repo 750
我在这里有些想法。有没有人知道为什么会发生这种情况?
以下是一些有用的信息:
Linux:Linux hostname.com 2.6.18-028stab069.5#1 SMP Tue May 18 17:26:16 MSD 2010 x86_64 x86_64 x86_64 GNU / Linux
Apache:2.2.17 w / mod_wsgi
Python:2.6.4
Trac:0.12.2(超过Apache w / mod_wsgi)
答案 0 :(得分:1)
您可以尝试在trac-admin
下运行strace
,然后保存输出:
/usr/bin/strace -o /var/trac/myproject/log/trace.log /usr/bin/trac-admin /var/trac/myproject changeset added "$1" "$2"
然后,查看/var/trac/myproject/log/trace.log
中生成的日志。
另一种选择是让您的系统生成核心转储(您可能必须在/etc/limits
和/或/etc/security/limits.conf
中启用它),然后使用gdb
打开转储。
答案 1 :(得分:0)
我的第一次尝试是关闭selinux一段时间并测试它是否仍然发生。 如果不是 - 您必须弄清楚如何配置selinux以允许该进程打开/ proc / mount失败并出现分段错误。