Я пытаюсь исправить периодически возникающую ошибку в git-svn . Проблема возникает только в Windows XP, как с Cygwin git (perl v5.10.1), так и с msysGit (perl v5.8.8).
При выполнении любой операции, включающей выборку, я могу выполнить ее частично, а затем операция завершается с сообщением, аналогичным
Не удалось открыть .git / svn / refs / remotes / trunk / .rev_map.cc05479a-e8ea-436f-8d71-e07493b7796c.lock: Устройство или ресурс заняты
в / usr / lib / git-core / git-svn строка 5240
Однако точный файл блокировки и номер строки не всегда совпадают. Я отследил реальную проблему до строки 3679
sysopen(my $fh, $db_lock, O_RDWR | O_CREAT)
. Это создает новый файл .lock, и я попробовал эквивалент, но безрезультатно.
open(my $fh, ">", $db_lock)
Я проверил права доступа к каталогу, и это drwxr-xr-x , так что не должно быть никаких проблем, а если бы они были, они не были бы такими непоследовательными.
Может быть, это потому, что скрипт создает и переименовывает этот файл столько раз подряд, что XP не может справиться Это? РЕДАКТИРОВАТЬ: я подозреваю, что это так, потому что, когда я использовал отладчик perl и запускал выполнение каждого sysopen вручную, не было проблем для 100 выбранных мной ревизий.
РЕДАКТИРОВАТЬ : Некоторые разработчики Git Я бы предпочел выяснить первопричину, чем прибегнуть к сработавшему хакеру (я думаю, это правильный подход). Так, Может ли кто-нибудь помочь мне найти виновника, отказывающего мне в разрешении открывать эти файлы .lock? У меня есть ряд инструментов, которые теоретически можно было бы использовать для этой цели, но они не работают полностью:
Короче говоря, есть ли способ получить дополнительную информацию, не будучи сотрудником Microsoft?
РЕДАКТИРОВАТЬ 2 : Вероятно, это возможно не Symantec, но другая программа, которую мы запускаем на сетевых компьютерах. У меня есть несколько людей, которые занимаются этим, и они должны суметь хотя бы сузить здесь причину.