Bug 1490381

Summary: syncrepl broken with latest pyasn1
Product: [Fedora] Fedora Reporter: Standa Laznicka <slaznick>
Component: python-ldapAssignee: Jeroen van Meeuwen <vanmeeuwen+fedora>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 27CC: alexl, caillon+fedoraproject, john.j5live, lslebodn, pviktori, rhughes, rstrode, sandmann, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-09-11 14:43:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Standa Laznicka 2017-09-11 12:42:14 UTC
Description of problem:
pyasn1 >= 0.3.1 breaks syncrepl. This was discussed on the python-ldap mailing list about a month ago (https://mail.python.org/pipermail/python-ldap/2017q3/003942.html). Upstream seems to have tried to fix it but did not in the end: https://github.com/akkornel/syncrepl/commit/508f467e12e12cf80e4c0bef330d3df2a7bbd546.

This, for example, causes ipa-dnskeysyncd to fail.

Version-Release number of selected component (if applicable):
python2-pyasn1-0.3.2-1.fc27.noarch
python-ldap-2.4.25-6.fc27.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Have a SyncReplConsumer object (e.g. instance of KeySyncer from ipaserver.dnssec.keysyncer)
2. Perform bind with the object
3. Prepare a search to use in polling with the object
4. Perform the_object.syncrepl_poll(**kwargs) call

Actual results:
ipa-dnskeysyncd[21447]: ipa-dnskeysyncd: INFO     Commencing sync process
ipa-dnskeysyncd[21447]: Traceback (most recent call last):
ipa-dnskeysyncd[21447]:   File "/usr/libexec/ipa/ipa-dnskeysyncd", line 116, in <module>
ipa-dnskeysyncd[21447]:     while ldap_connection.syncrepl_poll(all=1, msgid=ldap_search):
ipa-dnskeysyncd[21447]:   File "/usr/lib64/python2.7/site-packages/ldap/syncrepl.py", line 393, in syncrepl_poll
ipa-dnskeysyncd[21447]:     sim = SyncInfoMessage(resp)
ipa-dnskeysyncd[21447]:   File "/usr/lib64/python2.7/site-packages/ldap/syncrepl.py", line 271, in __init__
ipa-dnskeysyncd[21447]:     self.newcookie = str(comp)
ipa-dnskeysyncd[21447]:   File "/usr/lib/python2.7/site-packages/pyasn1/type/univ.py", line 939, in __str__
ipa-dnskeysyncd[21447]:     return str(self._value)
ipa-dnskeysyncd[21447]:   File "/usr/lib/python2.7/site-packages/pyasn1/type/base.py", line 186, in plug
ipa-dnskeysyncd[21447]:     raise error.PyAsn1Error('Uninitialized ASN.1 value ("%s" attribute looked up)' % name)
ipa-dnskeysyncd[21447]: pyasn1.error.PyAsn1Error: Uninitialized ASN.1 value ("__str__" attribute looked up)
systemd[1]: ipa-dnskeysyncd.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: ipa-dnskeysyncd.service: Unit entered failed state.
systemd[1]: ipa-dnskeysyncd.service: Failed with result 'exit-code'.


Expected results:
No exception on correct arguments.

Comment 1 Standa Laznicka 2017-09-11 14:43:44 UTC
Did not notice there's already the same BZ.

*** This bug has been marked as a duplicate of bug 1489184 ***