trac-admin с подключением svn post-commit вызывает ошибку сегментации - PullRequest
0 голосов
/ 06 апреля 2011

Я только что установил trac 0.12.2 поверх sqlite на моем компьютере Fedora, и trac работает нормально через веб-браузер и командную строку. Моя проблема связана с реализацией хуков svn, когда хук после фиксации умирает из-за ошибки сегментации при выполнении этой команды:

/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 вт 18 мая 17:26:16 MSD 2010 x86_64 x86_64 x86_64 GNU / Linux
Apache: 2.2.17 с mod_wsgi
Python: 2.6.4
Trac: 0.12.2 (через Apache с mod_wsgi)

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

Вы можете попробовать запустить 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.

0 голосов
/ 06 апреля 2011

Моей первой попыткой было бы отключить selinux на некоторое время и проверить, происходит ли оно по-прежнему.Если нет - вам нужно выяснить, как настроить selinux для разрешения открытия / proc / mount тем процессом, который завершается с ошибкой сегментации.

...