<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi,<div class=""><br class=""></div><div class="">I’m not positive, but i think your config is malformed. For example, you don’t close the rdnSchema dict.</div><div class=""><br class=""></div><div class="">Have a look at the OpenLDAP section of:</div><div class=""><br class=""></div><div class=""><a href="http://trac.calendarserver.org/browser/CalendarServer/trunk/conf/caldavd-test.plist" class="">http://trac.calendarserver.org/browser/CalendarServer/trunk/conf/caldavd-test.plist</a></div><div class=""><br class=""></div><div class="">Try re-building your config using the above as a template.</div><div class=""><br class=""></div><div class="">-dre</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div><blockquote type="cite" class=""><div class="">On Nov 30, 2014, at 11:32 PM, zero one &lt;<a href="mailto:list-01@outlook.de" class="">list-01@outlook.de</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">&nbsp;am trying to bind calendarserver to LDAP. &nbsp;The relevant config part is below. Problem: calendarserver does not respond any more (when trying to use a browser, I will get a timeout).<br class=""><br class="">When trying:<br class=""><br class="">su caldavd -p -c "calendarserver_manage_principals --list-principals users“<br class=""><br class="">i will get:<br class=""><br class="">Traceback (most recent call last):<br class="">&nbsp; File "/usr/bin/calendarserver_manage_principals", line 32, in &lt;module&gt;<br class="">&nbsp; &nbsp; main()<br class="">&nbsp; File "/usr/lib/python2.7/dist-packages/calendarserver/tools/principals.py", line 250, in main<br class="">&nbsp; &nbsp; config.directory = getDirectory()<br class="">&nbsp; File "/usr/lib/python2.7/dist-packages/calendarserver/tools/util.py", line 143, in getDirectory<br class="">&nbsp; &nbsp; directory = BaseDirectoryService(config.DirectoryService.params)<br class="">&nbsp; File "/usr/lib/python2.7/dist-packages/twistedcaldav/directory/ldapdirectory.py", line 231, in __init__<br class="">&nbsp; &nbsp; attrSet.add(attr)<br class="">TypeError: unhashable type: 'list'<br class=""><br class="">I double-checked the ldap credentials (the password given below is just a placeholder).&nbsp;<br class=""><br class="">Does anybody have an idea how I can debug this? Thanks for your help!<br class=""><br class=""><br class=""><br class="">=== caldav.plist ===<br class=""><br class="">&lt;!-- &nbsp;OpenLDAP Directory Service --&gt;<br class="">&nbsp; &nbsp; &lt;key&gt;DirectoryService&lt;/key&gt;<br class="">&nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &lt;key&gt;type&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &lt;string&gt;twistedcaldav.directory.ldapdirectory.LdapDirectoryService&lt;/string&gt;<br class=""><br class="">&nbsp; &nbsp; &nbsp; &lt;key&gt;params&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;recordTypes&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;array&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;string&gt;users&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;string&gt;groups&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/array&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;cacheTimeout&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;integer&gt;10&lt;/integer&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;uri&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;<a href="ldap://127.0.0.1:389/&lt;/string&gt;" class="">ldap://127.0.0.1:389/&lt;/string&gt;</a> &lt;!-- your ldap server url --&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;tls&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;false/&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;tlsCACertFile&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;tlsCACertDir&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;tlsRequireCert&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;never&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;credentials&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;dn&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;cn=admin,dc=company,dc=com&lt;/string&gt; &lt;!-- dn to auth as --&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;password&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;12345&lt;/string&gt; &lt;!-- password to auth with --&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;rdnSchema&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;base&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;dc=company,dc=com&lt;/string&gt; &lt;!-- your base dn --&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;guidAttr&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;uid&lt;/string&gt; &lt;!-- LDAP attribute used for GUIDs --&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;users&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;rdn&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;ou=people&lt;/string&gt; &lt;!-- dn for users (relative to base dn) --&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;mapping&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;recordName&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;uid&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;fullName&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;cn&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;emailAddresses&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;array&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;mail&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/array&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;firstName&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;sn&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;lastName&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;givenName&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;groups&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;rdn&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;ou=groups&lt;/string&gt; &lt;!-- dn for groups (relative to base dn) --&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;mapping&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;recordName&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;cn&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;fullName&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;cn&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;emailAddresses&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;array&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;mail&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/array&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;firstName&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;lastName&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;groupSchema&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;membersAttr&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;uniqueMember&lt;/string&gt; &lt;!-- LDAP attribute which indicates members of a group --&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;nestedGroupsAttr&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;memberIdAttr&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;key&gt;resourceSchema&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;key&gt;resourceInfoAttr&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;key&gt;autoScheduleAttr&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;key&gt;autoScheduleEnabledValue&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;key&gt;proxyAttr&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;key&gt;readOnlyProxyAttr&lt;/key&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;string&gt;&lt;/string&gt;<br class="">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br class="">&nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br class="">&nbsp; &nbsp; &lt;/dict&gt;&nbsp;&nbsp; <span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">        </span> <span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp;&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp;<br class="">_______________________________________________<br class="">calendarserver-users mailing list<br class=""><a href="mailto:calendarserver-users@lists.macosforge.org" class="">calendarserver-users@lists.macosforge.org</a><br class="">https://lists.macosforge.org/mailman/listinfo/calendarserver-users<br class=""></div></blockquote></div><br class=""></div></body></html>