[Kolab-devel] [Debian BUG REPORT] Re: Debian Wheezy Installation Attempt: subprocess.call issues in setup-kolab?

Johannes Graumann johannes_graumann at web.de
Tue Oct 2 09:21:07 CEST 2012


Johannes Graumann wrote:

> Johannes Graumann wrote:
> 
>> Hi, this lates one really has me confused ...
>> 
>> On wheezy I run "setup-kolab' and the error I am finally encountering is
>>> 2012-09-29 20:30:13,418 pykolab.auth DEBUG [13534]: Attempting to use
>>> LDAP
>> URI ldap://localhost:389
>>> *** <ldap.ldapobject.SimpleLDAPObject instance at 0x1bfb638>
>> ldap://localhost:389 - SimpleLDAPObject.set_option
>>> ((17, 3), {})
>>> *** <ldap.ldapobject.SimpleLDAPObject instance at 0x1bfb638>
>> ldap://localhost:389 - SimpleLDAPObject.set_option
>>> ((17, 3), {})
>>> *** <ldap.ldapobject.SimpleLDAPObject instance at 0x1bfb638>
>> ldap://localhost:389 - SimpleLDAPObject.simple_bind
>>> (('cn=Directory Manager', 'WCawmmQ4hpZURnk', None, None), {})
>>> *** <ldap.ldapobject.SimpleLDAPObject instance at 0x1bfb638>
>> ldap://localhost:389 - SimpleLDAPObject.add_ext
>>> (('uid=cyrus-admin,ou=Special Users,dc=graumannschaft,dc=org',
>>>   [('surname', 'Administrator'),
>>>    ('uid', 'cyrus-admin'),
>>>    ('objectclass',
>>>     ['top', 'person', 'inetorgperson', 'organizationalperson']),
>>>    ('userPassword', 'zbBStCZKRhgHeCE'),
>>>    ('givenname', 'Cyrus'),
>>>    ('cn', 'Cyrus Administrator')],
>>>   None,
>>>   None),
>>>  {})
>>> Traceback (most recent call last):
>>>   File "/usr/sbin/setup-kolab", line 42, in <module>
>>>     setup.run()
>>>   File "/usr/lib/python2.7/dist-packages/pykolab/setup/__init__.py",
>>>   line
>> 42, in run
>>>     components.execute('_'.join(to_execute))
>>>   File "/usr/lib/python2.7/dist-packages/pykolab/setup/components.py",
>> line 170, in execute
>>>     execute(component)
>>>   File "/usr/lib/python2.7/dist-packages/pykolab/setup/components.py",
>> line 202, in execute
>>>     components[component_name]['function'](conf.cli_args, kw)
>>>   File "/usr/lib/python2.7/dist-packages/pykolab/setup/setup_ldap.py",
>> line 394, in execute
>>>     auth._auth.ldap.add_s(dn, ldif)
>>>   File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 194,
>>>   in
>> add_s
>>>     msgid = self.add(dn,modlist)
>>>   File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 191,
>>>   in
>> add
>>>     return self.add_ext(dn,modlist,None,None)
>>>   File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 176,
>>>   in
>> add_ext
>>>     return
>> 
> 
self._ldap_call(self._l.add_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
>>>   File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 99,
>>>   in
>> _ldap_call
>>>     result = func(*args,**kwargs)
>>> ldap.SERVER_DOWN: {'desc': "Can't contact LDAP server"}
>> 
>> So far so good - 'service dirsrv status' also says it's not running ...
>> hmmm ...
>> 
>> With the slapd-kolab now configured, I can use
>> 'subprocess.call(['/usr/sbin/service', 'dirsrv', 'restart'])' from within
>> a python shell to make disrv (389) run ... hm.
>> 
>> I now started to pepper the attached version of setup_ldap.py with calls
>> like this:
>>> print 'Status -1'
>>> subprocess.call(['/usr/sbin/service', 'dirsrv', 'status'])
>> and to my dismay, that ALWAYS returns that dirsrv is NOT running (see
>> attachment for the locations of the calls). What is going wrong here?
>> Firing up the dirsrv works from within a python shell using the same
>> commands !?
>> 
>> Puzzled, Joh
> 
> This was a tough one ... turns out that dirsrv in debian has a bug:
> "service dirsrv restart" will not work, as the 389 port has not yet been
> released when the starting process tries to bind to it ... thus changing
>> subprocess.call(['/usr/sbin/service','dirsrv','restart'])
> to
>> subprocess.call(['/usr/sbin/service','dirsrv','stop'])
>> time.sleep(20)
>> subprocess.call(['/usr/sbin/service','dirsrv','start'])
> solves the problem.
> 
> See the attached setup_ldap.py ... patchset forthcomming ...
> 
> Sincerely, Joh

As there was some sceptizism expressed on IRC regarding my finding, I set 
out to reproduce it in a lxc-free context on my local machine - and was able 
to do so. Accordingly I filed a bugreport with debian - it contains detailed 
instruction on how to reproduce: http://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=689389

Sincerely, Joh




More information about the devel mailing list