Однако я пытаюсь реализовать некоторые ловушки, как до, так и после сбоя. Я получаю одно и то же сообщение об ошибке для обоих, когда пытаюсь зафиксировать:
'*-commit' hook failed (did not exit cleanly: apr_exit_why_e was 2, exitcode was -1073741515). with no output.
Exitcode -1073741515 выглядит странным, и небольшой гугл-фу дал мне вот это:
Код ошибки, который рассматривается как шестнадцатеричный DWORD, - 0xC0000135.
То есть Sev = 11, C = 0, R = 0, Facility = 0, Code = 0x0135.
Значение 0xC0000135 можно найти в NtStatus.h со следующим определением
//
// MessageId: STATUS_DLL_NOT_FOUND
//
// MessageText:
//
// {Unable To Locate Component}
// This application has failed to start because %hs was not found.
// Re-installing the application may fix this problem.
//
#define STATUS_DLL_NOT_FOUND ((NTSTATUS)0xC0000135L)
Хорошо, dll не найдена, это не должно быть слишком сложно, правда? У меня есть виртуальная машина с svn, которая спокойно работает с этими хуками. Поэтому я запускаю Filemon.exe и Depends.exe на обеих машинах.
Я все еще просматриваю журналы filemon для обоих серверов, и это не дает мне каких-либо уникальных проблем с каким-либо исполняемым файлом, которые, как я могу думать, могут быть затронуты с помощью фиксации Hook.
Я решил заглянуть в журналы событий, и О, Боже!
Ошибка 'pre-commit' (завершилась некорректно: apr_exit_why_e было 2, код выхода был -1073741515). без вывода. [409, # 165001]
Дополнительная информация, этот [409, # 165001] повсюду в Google, но я не нашел ничего полезного.
Хук явно вызывает исполняемый файл с тремя параметрами.
C: \ SubversionNotify \ SubversionNotify.exe% 1% 2 -pre
Я даже пробовал использовать переменные.
SET REPOS=%1
SET REV=%2
C:\SubversionNotify\SubversionNotify.exe %REPOS% %REV% -pre
Просмотр журналов filemon показывает мне, что он никогда не попадает в SubversionNotify.exe
Дело доходит до того, что я не могу тратить больше времени на попытки реализовать это, помоги мне ТАК, ты моя единственная надежда.
Характеристики сервера:
Windows XP, последняя версия VisualSVN Server.
Изменить: похоже, что SubversionNotify выдает исключение обратно в Depends.exe, чтобы проверить, какая DLL не работает.
Ошибка выглядит следующим образом:
Не удалось правильно инициализировать приложение (0xc0000135).
Тот 0xC0000135 был замечен ранее, охота за dll!