svnserve больше не работает после обновления до OS X Yosemite

Я поддерживаю компьютеры и пишу программное обеспечение для контроля экспериментов и сбора данных в исследовательской лаборатории, где я работаю. Я запускаю сервер subversion (установленный с brew) на компьютере с OS X за столом. Это позволяет мне вносить изменения в программное обеспечение на любом лабораторном компьютере и синхронизировать все станции. Сервер Subversion на моей машине был настроен и запущен в /Library/LaunchDaemons в течение нескольких лет, первоначально под 10,5 на G5 PowerMac и в конечном итоге перешел на мой текущий Intel iMac. Я обновил до Йосемити и сделал brew upgrade и теперь svnserve больше не отвечает клиентам. Вот мой текущий файл org.apache.subversion.svnserve.plist из /Library/LaunchDaemons:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/Users/Shared/subversion/svnserve_err.log</string>
        <key>Umask</key>
        <integer>2</integer>
        <key>UserName</key>
        <string>steve</string>
        <key>GroupName</key>
        <string>everyone</string>
        <key>Label</key>
        <string>org.apache.subversion.svnserve</string>
        <key>RunAtLoad</key>
        <true/>
        <key>Program</key>
        <string>/usr/local/bin/svnserve</string>
        <key>ProgramArguments</key>
        <array>
                <string>svnserve</string>
                <string>--inetd</string>
                <string>--root=/Users/Shared/subversion</string>
                <string>--log-file=/Users/Shared/subversion/svn.log</string>
        </array>
        <key>ServiceDescription</key>
        <string>SVN Version Control System</string>
        <key>Sockets</key>
        <dict>
                <key>Listeners</key>
                <array>
                        <dict>
                                <key>Bonjour</key>
                                <true/>
                                <key>SockServiceName</key>
                                <string>svn</string>
                        </dict>
                </array>
        </dict>
        <key>inetdCompatibility</key>
        <dict>
                <key>Wait</key>
                <false/>
        </dict>
</dict>
</plist>

Кажется, работает при запуске:

/Library/LaunchDaemons 502 $  sudo launchctl list | grep svnserve
82245   0   org.apache.subversion.svnserve

Если я запускаю команду svn от клиента (включая компьютер, на котором выполняется svnserve), который требует ответа от сервера, он зависает. Если я сделаю sudo launchctl unload org.apache.subversion.svnserve.plist в то время как клиент зависает, команда клиента завершается неудачно с:

svn: E000054: Unable to connect to a repository at URL 'svn://steveimac.local/igor/trunk'
svn: E000054: Can't read from connection: Connection reset by peer

Так что кажется, что есть какая-то попытка общения. Если я сделаю sudo launchctl unload org.apache.subversion.svnserve.plist и попробуйте запустить команду клиента SVN я получаю Can't connect to host 'steveimac.local': Connection refused как и ожидалось.

Брандмауэр отключен в настройках безопасности и конфиденциальности машины.

svn.log а также svnserve_err.log файлы оба пусты.

Я добавил StandardOutPath ключ к списку. Файл stdout был заполнен множеством копий ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops atomic-revprops partial-replay inherited-props ephemeral-txnprops file-revs-reverse ) ) ), Более чем за мегабайт стоит через тридцать секунд или около того. Я не знаю, нормально ли это.

версия svnserve:

/Library/LaunchDaemons 503 $  /usr/local/bin/svnserve --version
svnserve, version 1.8.13 (r1667537)
   compiled Jun  5 2015, 19:21:21 on x86_64-apple-darwin14.3.0

Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository back-end (FS) modules are available:

* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

Я не уверен, что делать дальше, чтобы попытаться устранить неполадки.

Ответы на вопросы в комментариях:

Разрешения выглядят нормально:

/Users/Shared/subversion 495 $  ls -l ig*
igor:
total 16
-rw-r--r--   1 steve  wheel  229 Dec  8  2008 README.txt
drwxr-xr-x   5 steve  wheel  170 Dec  8  2008 conf
drwxr-xr-x   2 steve  wheel   68 Dec  8  2008 dav
drwxr-xr-x  12 steve  wheel  408 Jul 15 10:33 db
-r--r--r--   1 steve  wheel    2 Dec  8  2008 format
drwxr-xr-x  11 steve  wheel  374 Dec  8  2008 hooks
drwxr-xr-x   4 steve  wheel  136 Dec  8  2008 locks

igor-mike:
total 16
-rw-r--r--   1 steve  wheel  229 Jan 25  2011 README.txt
drwxr-xr-x   5 steve  wheel  170 Jan 25  2011 conf
drwxr-xr-x  16 steve  wheel  544 Oct  2  2013 db
-r--r--r--   1 steve  wheel    2 Jan 25  2011 format
drwxr-xr-x  11 steve  wheel  374 Jan 25  2011 hooks
drwxr-xr-x   4 steve  wheel  136 Jan 25  2011 locks

igorniscope:
total 16
-rw-r--r--   1 steve  wheel  229 Aug 16  2013 README.txt
drwxr-xr-x   5 steve  wheel  170 Aug 16  2013 conf
drwxr-xr-x  16 steve  wheel  544 Sep 13  2013 db
-r--r--r--   1 steve  wheel    2 Aug 16  2013 format
drwxr-xr-x  11 steve  wheel  374 Aug 16  2013 hooks
drwxr-xr-x   4 steve  wheel  136 Aug 16  2013 locks

sudo launchctl print-cache | grep svn ничего не возвращает


Я не уверен, как использовать launchctl plist в этой ситуации. Он хочет Mach-O в качестве аргумента.


С помощью localhost вместо steveimac.local отображает те же симптомы.


Доступ через file Протокол на хост-машине работает нормально:

~/Documents/deleteme 491 $  svn co file:///Users/Shared/subversion/igor/trunk igor
A    igor/AcousticControl.ipf
...
A    igor/AmplitudeSweep.ipf
A    igor/PowerMonitor.ipf

Я старался svn info svn://steveimac.local а также svn info svn://localhost который не должен иметь доступа к какому-либо конкретному хранилищу, и он также завис. Таким образом, это проблема связи, а не проблема хранилища. Порт 3690, кажется, открыт. С демоном загружен я пробовал telnet localhost 3690 и смог подключиться. С демоном выгруженным, telnet localhost 3690 возвращенный Connection refused,

0 ответов

Другие вопросы по тегам