Коммит Subversion очень медленный из-за пост-фиксации - PullRequest
2 голосов
/ 01 сентября 2011

Я столкнулся с очень странной проблемой: я использую mailer.py в качестве ловушек после фиксации, чтобы отправлять коды diff разработчикам. Но потом я обнаружил, что регистрация всех кодов в этом хранилище очень медленная, даже регистрация одного файла обойдется примерно в 2 минуты. Отключение пост-фиксации сделает регистрацию кодов намного быстрее. Я проверяю журнал Apache и журнал Subversion, но не вижу ничего ценного. Кто-нибудь может дать представление об этой проблеме?

Окружающая среда: Redhat EL 5.4 + CollabNet SubversionEdge 2.0

Спасибо

Джеффри

Ответы [ 2 ]

2 голосов
/ 01 сентября 2011

Возможно, вы можете создавать задачи diff и mailer как отдельные процессы от сценария пост-фиксации. Таким образом, процесс регистрации может завершиться и вернуться, пока продолжительные операции продолжаются как фоновая задача.

1 голос
/ 06 августа 2014

Я просто столкнулся с той же проблемой. mailer.py раньше работал просто отлично, с почти немедленным коммитом, но после развертывания новой схемы аутентификации, которая включала ошибочную запись автоматического монтирования, он начал замедляться до минут.
Все это сводилось к тестированию mailer.py для некоторых библиотек, как показало его выполнение через strace.

Как часть ловушки после фиксации, которая обычно запускает mailer.py, я вставил strace, например:

# EXAMPLE OF DOING STRACE TO DEBUG/TROUBLESHOOT THIS:
/usr/bin/strace /usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py commit "$REPOS" "$REV" > /tmp/zzSTRACE-MAILER 2>&1
# (The original line is)
# /usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py commit "$REPOS" "$REV"


Это показывает, что скрипт ищет файлы os.py и os.pyc в нескольких местах (в моей системе CentOS 6 они находятся в /usr/lib64/python2.6).
Одним из найденных мест является / users, который был в карте автомонтирования, указывающей на не отвечающий сервер. Таким образом, он зависал до истечения времени ожидания - затем сценарий продолжался, и операция фиксации завершалась нормально - только с такой огромной задержкой.

Восстановление записи автомонтирования / исправление этого сервера немедленно решило проблему.
Надеюсь, это поможет.

...