Wikid Problems

September 14, 2009

I saw a server (build 9L34) with an odd TeamsServer (wikid) problem. Users could log in correctly, but every time they tried to write to the wiki a login dialog would pop up and the popup would only accept an admin’s credentials. This entry would just show up in /Library/Logs/wikid/error_log:

[WebDAVProtocol,client] "[Failure instance: Traceback: <class 'zanshin.http.HTTPError'>: 
<<class 'zanshin.http.HTTPError'> (404) Not Found>\n/usr/share/caldavd/lib/python/twisted/internet/defer.py:304:_s
tartRunCallbacks\n/usr/share/caldavd/lib/python/twisted/internet/defer.py:317:_runCallbacks\n/usr/share/caldavd/li
b/python/twisted/internet/defer.py:239:callback\n/usr/share/caldavd/lib/python/twisted/internet/defer.py:304:_star
tRunCallbacks\n--- <exception caught here> ---\n/usr/share/caldavd/lib/python/twisted/internet/defer.py:317:_runCa
llbacks\n/usr/share/wikid/lib/python/apple_calendar/CalendarReportUtilities.py:135:handleReportResponse\n]"

with a sprinkle of these here and there:

[HTTPChannel,17,127.0.0.1] 127.0.0.1 - - [14/Sep/2009:15:17:45 +0000] "POST / HTTP/1.1" 200 730    
"http://example.com/groups/cityportal/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; fi-fi) App
File "/usr/share/caldavd/lib/python/twisted/python/log.py", line 34, in callWithContext
        return context.call({ILogContext: newCtx}, func, *args, **kw)
      File "/usr/share/caldavd/lib/python/twisted/python/context.py", line 59, in callWithContext
        return self.currentContext().callWithContext(ctx, func, *args, **kw)
      File "/usr/share/caldavd/lib/python/twisted/python/context.py", line 37, in callWithContext
        return func(*args,**kw)
      File "/usr/share/caldavd/lib/python/twisted/internet/selectreactor.py", line 139, in _doReadOrWrite
        why = getattr(selectable, method)()
    --- <exception caught here> ---
      File "/usr/share/caldavd/lib/python/twisted/internet/tcp.py", line 805, in doRead
        protocol = self.factory.buildProtocol(self._buildAddr(addr))
      File "/usr/share/caldavd/lib/python/twisted/internet/tcp.py", line 752, in _buildAddr
        def _buildAddr(self, (host, port)):
    exceptions.TypeError: 'NoneType' object is not iterable

Created a fresh group and wiki - same problem. Having gone through all the basic places - group settings in WG, SACL’s, Apache settings etc I just stared at the error_log and then noticed this every time I restarted the web service:

[-] Unable to write to our repository path: /Volumes/Data/Wiki

Looks like the permissions were screwed up when the wikid docroot was moved to a different volume. Indeed:

$ sudo chown _teamsserver:_teamsserver /Volumes/Data/Wiki

… fixed the issue. This looks to me like a wikid or Server Admin bug - why wouldn’t they check the permissions of the “Data Store” path when it’s set in Server Admin? Anyway, put this up here in case someone else runs into this.