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.