[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

svnserve and launchd in OS X

From: Nathaniel Irons <ndi-l_at_bumppo.net>
Date: 2006-09-21 23:20:55 CEST

We're moving away from SSH tunnels for svnserve, because we're adding
svn users who don't have SSH access to the server. I thought using
svnserve's own authentication would be superior to managing SSH keys
and a dedicated subversion user. We also appreciate having check-ins
tagged with a user name, which I don't think is possible with a
single-SSH-user scheme.

However, I'm having trouble launching svnserve 1.4.0 under Mac OS X
Server 10.4. When I run svnserve manually with the subversion user and
the --daemon argument, it runs fine. When I load my svn launchd plist to
bring it up in inetd mode, svn clients issuing commands to the server
hang indefinitely. Here's what I see in the process list when that
happens:

$ ps waxu | grep svnserve
subversi 11211 0.0 0.1 32564 992 ?? S 12:40PM 0:00.01 /usr/local/bin/svnserve --inetd
subversi 12394 0.0 0.0 27252 492 ?? Ss 1:24PM 0:00.01 /usr/libexec/launchproxy /usr/local/bin/svnserve --inetd

I'm reasonably comfortable with launchd, but I'm not sure how to
troubleshoot an inetd service, and launchd doesn't like to handle things
that call daemonize, as svnserve does with its --daemon argument.

I found Jim Correia's example svn.plist for launchd in the archives from
last year, and it produces behavior identical to what I'm seeing with my
version.

I've run my plist through Launchd Editor, which didn't complain about
the syntax. I'll include the current version, and any suggestions
would be appreciated.

Thanks,

  -nat

<?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>Label</key>
        <string>svn</string>
        <key>SessionCreate</key>
        <true/>
        <key>Program</key>
        <string>/usr/local/bin/svnserve</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/bin/svnserve</string>
                <string>--inetd</string>
        </array>
        <key>Sockets</key>
        <dict>
                <key>Listeners</key>
                <dict>
                        <key>SockFamily</key>
                        <string>IPv4</string>
                        <key>SockServiceName</key>
                        <string>svn</string>
                </dict>
        </dict>
        <key>StandardErrorPath</key>
        <string>/var/tmp/launchd-err</string>
        <key>StandardOutPath</key>
        <string>/var/tmp/launchd-out</string>
        <key>UserName</key>
        <string>subversion</string>
        <key>inetdCompatibility</key>
        <dict>
                <key>Wait</key>
                <false/>
        </dict>
</dict>
</plist>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Sep 21 23:21:43 2006

This is an archived mail posted to the Subversion Users mailing list.