Bug 851624 - Update to openldap breaks evolution-exchange
Update to openldap breaks evolution-exchange
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: evolution-exchange (Show other bugs)
17
x86_64 Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Matthew Barnes
Fedora Extras Quality Assurance
abrt_hash:39c2c720b9361a36ce85b359ba1...
:
: 852995 854532 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-08-24 10:15 EDT by Bastiaan Jacques
Modified: 2012-09-10 02:46 EDT (History)
11 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-09-07 07:33:55 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
File: core_backtrace (3.24 KB, text/plain)
2012-08-24 10:15 EDT, Bastiaan Jacques
no flags Details
File: limits (1.29 KB, text/plain)
2012-08-24 10:15 EDT, Bastiaan Jacques
no flags Details
File: backtrace (50.81 KB, text/plain)
2012-08-24 10:15 EDT, Bastiaan Jacques
no flags Details
File: maps (91.99 KB, text/plain)
2012-08-24 10:15 EDT, Bastiaan Jacques
no flags Details
File: dso_list (20.54 KB, text/plain)
2012-08-24 10:15 EDT, Bastiaan Jacques
no flags Details
File: var_log_messages (315 bytes, text/plain)
2012-08-24 10:15 EDT, Bastiaan Jacques
no flags Details

  None (edit)
Description Bastiaan Jacques 2012-08-24 10:15:42 EDT
Description of problem:
1. Installed evolution
2. Installed evolution-exchange
3. Started evolution
4. Completed startup wizard with Exchange support (OWA)
5. Evolution exited.


Version-Release number of selected component:
evolution-3.4.4-1.fc17

Additional info:
libreport version: 2.0.12
abrt_version:   2.0.11
backtrace_rating: 4
cmdline:        evolution
crash_function: ldap_ntlm_bind
kernel:         3.4.4-3.fc17.x86_64

truncated backtrace:
:Thread no. 1 (10 frames)
: #4 ldap_ntlm_bind at /usr/lib64/evolution-exchange/3.4/libexchange.so.0
: #5 ntlm_bind at e2k-global-catalog.c
: #6 connect_ldap at e2k-global-catalog.c
: #7 get_ldap_connection at e2k-global-catalog.c
: #8 get_gc_connection at e2k-global-catalog.c
: #9 gc_search at e2k-global-catalog.c
: #10 e2k_global_catalog_lookup at e2k-global-catalog.c
: #11 exchange_account_connect at exchange-account.c
: #12 exchange_config_listener_authenticate at exchange-config-listener.c
: #13 account_added at exchange-config-listener.c
Comment 1 Bastiaan Jacques 2012-08-24 10:15:46 EDT
Created attachment 606868 [details]
File: core_backtrace
Comment 2 Bastiaan Jacques 2012-08-24 10:15:47 EDT
Created attachment 606869 [details]
File: limits
Comment 3 Bastiaan Jacques 2012-08-24 10:15:50 EDT
Created attachment 606870 [details]
File: backtrace
Comment 4 Bastiaan Jacques 2012-08-24 10:15:52 EDT
Created attachment 606871 [details]
File: maps
Comment 5 Bastiaan Jacques 2012-08-24 10:15:55 EDT
Created attachment 606872 [details]
File: dso_list
Comment 6 Bastiaan Jacques 2012-08-24 10:15:57 EDT
Created attachment 606873 [details]
File: var_log_messages
Comment 7 srh 2012-08-25 03:00:45 EDT
I see something similar, which only just started happening after the last lot of updates yesterday.

Name        : evolution
Arch        : x86_64
Version     : 3.4.3
Release     : 2.fc17

Name        : evolution-exchange
Arch        : x86_64
Version     : 3.4.3
Release     : 1.fc17

Have Evo connected to exchange server using evolution-exchange. Worked fine until today. Every time I start evo, now I get:
.......................................
[stewart@sefton ~]$ evolution 

** (evolution:4588): CRITICAL **: categories_icon_theme_hack: assertion `filename != NULL && *filename != '\0'' failed

(evolution:4588): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:4588): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed
evolution: ntlm.c:38: ldap_ntlm_bind: Assertion `( (ld)->ldc->ldc_options.ldo_valid == 0x2 )' failed.
Aborted (core dumped)
[stewart@sefton ~]$ 
......................................

Had a look at yum logs to see likely update culprits. I see the following are new updates:
openldap-2.4.32-2.fc17.x86_64
openldap-devel-2.4.32-2.fc17.x86_64
openldap-clients-2.4.32-2.fc17.x86_64

I did:
yum downgrade openldap openldap-devel openldap-clients

This downgrades to:
 openldap                i686          2.4.30-2.fc17  
 openldap                x86_64        2.4.30-2.fc17  
 openldap-clients        x86_64        2.4.30-2.fc17  
 openldap-devel          x86_64        2.4.30-2.fc17   

Bingo!! Evo now starts up fine.
Comment 8 Bastiaan Jacques 2012-08-25 04:57:22 EDT
> yum downgrade openldap openldap-devel openldap-clients

Solved this problem for me too.
Comment 9 Milan Crha 2012-08-27 03:38:00 EDT
Thanks for a bug report. Because this is caused by an update of openldap, I suppose their new release changes internal API or something, thus probably evolution-data-server, evolution and evolution-exchange requires rebuild against it in Fedora 17 (note Fedora 18 has evolution-exchange retired, in favour of evolution-mapi and evolution-ews).

Jan, am I right with respect of required rebuild against newer openldap?
Comment 10 Jan Vcelak 2012-08-27 04:29:07 EDT
The openldap library should be linked to evolution-exchange statically. Upgrading/downgrading libldap should not have any effect.
Comment 11 Milan Crha 2012-08-27 05:25:19 EDT
I agree, evolution-exchange links statically against openldap, which I verified with ldd on .so files provided by the evolution-exchange package.

Based on the runtime warning just before the crash:
> evolution: ntlm.c:38: ldap_ntlm_bind: Assertion
> `( (ld)->ldc->ldc_options.ldo_valid == 0x2 )' failed.
this crashed during connection attempt to your exchange server. The line is within NTLM authentication code, which is added specially for evolution-exhange into openldap. The exact line is this:
   assert( LDAP_VALID( ld ) );

After a chat with Jan, is it possible that the update changed your
   /etc/openldap/ldap.conf
and if you'll keep copy of the one you use now, update openldap and compare them, and maybe rewrite the file with the backup copy, then will it help anyhow?
Comment 12 Jamie Anderson 2012-08-27 09:35:30 EDT
Statically linked or not, I was receiving the same error as Comment 7, and I fixed it by rebuilding and reinstalling evolution-exchange-3.4.3-1.fc17.src.rpm.

I do not have updates-testing enabled so I am not using the version initially mentioned in the bug report, so I suppose the error Stewart and I had could be unrelated to this bug.
Comment 13 srh 2012-08-27 23:02:12 EDT
This problem is newly noted at:
http://forums.fedoraforum.org/showthread.php?t=283570


Updating openldap openldap-devel openldap-clients does not change /etc/openldap/ldap.conf. In both cases:
..............................
#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE	dc=example,dc=com
#URI	ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT	12
#TIMELIMIT	15
#DEREF		never

TLS_CACERTDIR	/etc/openldap/certs
..................................


When downgraded to:
 openldap                i686          2.4.30-2.fc17  
 openldap                x86_64        2.4.30-2.fc17  
 openldap-clients        x86_64        2.4.30-2.fc17  
 openldap-devel          x86_64        2.4.30-2.fc17  

starting Evo successfully produces (there is an LDAP warning in there):
......................................
[stewart@sefton ~]$ evolution 

** (evolution:3428): CRITICAL **: categories_icon_theme_hack: assertion `filename != NULL && *filename != '\0'' failed

(evolution:3428): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:3428): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:3428): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:3428): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:3428): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

** (evolution:3428): WARNING **: LDAP authentication failed (0xffffffff (Can't contact LDAP server))

(evolution:3428): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:3428): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:3428): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:3428): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

** (evolution:3428): WARNING **: LDAP authentication failed (0xffffffff (Can't contact LDAP server))
[stewart@sefton ~]$ 
..........................................


Updating Evo from updates-testing makes no difference to the results:

yum --enablerepo=updates-testing update evolution evolution-exchange

 evolution                     x86_64   3.4.4-1.fc17    updates-testing   8.5 M
 evolution-exchange            x86_64   3.4.4-1.fc17    updates-testing   968 k
 evolution-NetworkManager      x86_64   3.4.4-1.fc17    updates-testing    88 k
 evolution-data-server         x86_64   3.4.4-2.fc17    updates-testing   2.9 M
 evolution-data-server-devel   x86_64   3.4.4-2.fc17    updates-testing   271 k
 evolution-help                noarch   3.4.4-1.fc17    updates-testing   3.0 M

With Evo 3.4.4:
openldap 2.4.30-2.fc17 etc --> Evo starts ok
openldap 2.4.32-2.fc17 etc --> Evo crashes with same error
Comment 14 Jan Vcelak 2012-08-28 04:18:49 EDT
(In reply to comment #12)
> Statically linked or not, I was receiving the same error as Comment 7, and I
> fixed it by rebuilding and reinstalling
> evolution-exchange-3.4.3-1.fc17.src.rpm.

Rebuilding? Then it was probably broken before and is fixed now.

If just the downgrade resolved the problem, then there must be some issue with linking.
Comment 15 Massimiliano 2012-08-28 04:31:34 EDT
Me too: same error as comment 7.
Comment 16 Milan Crha 2012-08-28 05:27:41 EDT
Thanks for the testing. I built evolution-exchange-3.4.4-2 [1], and I'll make it as an update as soon as the 3.4.4-1 will be released together with evolution (it should be within a week, +/-).

[1] http://koji.fedoraproject.org/koji/taskinfo?taskID=4429187
Comment 17 Milan Crha 2012-08-30 05:50:36 EDT
*** Bug 852995 has been marked as a duplicate of this bug. ***
Comment 18 Fedora Update System 2012-09-03 02:29:53 EDT
evolution-exchange-3.4.4-2.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/evolution-exchange-3.4.4-2.fc17
Comment 19 Fedora Update System 2012-09-03 18:53:43 EDT
Package evolution-exchange-3.4.4-2.fc17:
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing evolution-exchange-3.4.4-2.fc17'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-13233/evolution-exchange-3.4.4-2.fc17
then log in and leave karma (feedback).
Comment 20 srh 2012-09-05 05:55:00 EDT
This fix may now be causing a new bug:
https://bugzilla.redhat.com/show_bug.cgi?id=854532


Now having updated to:

Name        : evolution
Arch        : x86_64
Version     : 3.4.4
Release     : 1.fc17

Name        : evolution-exchange
Arch        : x86_64
Version     : 3.4.4
Release     : 2.fc17

so as to work properly with:

Name        : openldap
Arch        : x86_64
Version     : 2.4.32
Release     : 2.fc17

Evo now starts up fine, so this bug seems to be fixed in terms of Evo at least starting. However, the exchange Contacts don't work, when they used to under Evo 3.4.3. See Bug 854532.
Comment 21 Milan Crha 2012-09-06 02:24:59 EDT
(In reply to comment #20)
> This fix may now be causing a new bug:
> https://bugzilla.redhat.com/show_bug.cgi?id=854532

There is no fix here, evolution-exchange-3.4.4-2 was just rebuilt against the updated openldap, which seems to not work.
Comment 22 Milan Crha 2012-09-06 05:46:54 EDT
Stewart, what is your evolution-data-server version, please? I could reproduce the crash with older version, but not with the latest, which is 3.4.4-2. The version 3.4.4-1 is built against old openldap, while the 3.4.4-2 against the new openldap (the one you have installed). With that, and with evolution-exchange also built against new openldap, everything seems to work fine here.
Comment 23 Milan Crha 2012-09-06 05:47:28 EDT
*** Bug 854532 has been marked as a duplicate of this bug. ***
Comment 24 srh 2012-09-06 18:28:15 EDT
Note - Exchange Calendar and Tasks work ok.

Installed Packages
Name        : evolution-data-server
Arch        : x86_64
Version     : 3.4.4
Release     : 2.fc17
Size        : 13 M
Repo        : installed
From repo   : updates

Before starting Evo, I ran:
killall evolution-addressbook-factory
killall evolution-calendar-factory
rm -rf /home/stewart/.cache/evolution
rm -rf /home/stewart/.local/share/evolution/exchange

...............................

[stewart@koeti ~]$ evolution 

** (evolution:22367): CRITICAL **: categories_icon_theme_hack: assertion `filename != NULL && *filename != '\0'' failed

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

** (evolution:22367): WARNING **: LDAP authentication failed (0xffffffff (Can't contact LDAP server))

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

** (evolution:22367): WARNING **: LDAP authentication failed (0xffffffff (Can't contact LDAP server))

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

(evolution:22367): GConf-CRITICAL **: gconf_value_free: assertion `value != NULL' failed

.....................................

Evo starts up ok, I see Exchange emails, calendar and tasks, but not contacts. I used to see exchange contacts ok under:
evolution-3.4.3-2.fc17.x86_64
evolution-exchange-3.4.3-1.fc17.x86_64
evolution-data-server-3.4.3-1.fc17.x86_64
Comment 25 Milan Crha 2012-09-07 03:03:05 EDT
Thanks for the update. I think there happened something with your setup, maybe the GAL address got changed/erased after some crash, as the warning:
> LDAP authentication failed (0xffffffff (Can't contact LDAP server))
suggest that. It's also possible that your authentication type changed (it sometimes happens) for the GAL and/or exchange account as such. Note these account setup changes require restart of evolution processes.

Thus, I suggest:
a) check settings of the exchange account and probably change them
b) do these you noted above: (In reply to comment #24)
>    Before starting Evo, I ran:
>    killall evolution-addressbook-factory
>    killall evolution-calendar-factory
c) run evolution

It may take some time before GAL is downloaded, but it should work. You should not see the LDAP error on evolution's console too, which will indicate that GAL should be setup properly.
Comment 26 Fedora Update System 2012-09-07 07:33:55 EDT
evolution-exchange-3.4.4-2.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 27 srh 2012-09-08 22:46:01 EDT
Exchange contacts are now working.

I have never used the GAL or entered a Global Catalog server name. I just needed the contacts on my exchange account to show up.

In Evo preferences, under Exchange account options - 'Receiving options' tab, previously default GAL Authentication Type was 'Secure or Plaintext Password' (with blank Global Catalog server name). This setting worked under Evo 3.4.3 for showing my exchange account contacts, but not Evo 3.4.4 and new openldap etc.

Changing GAL Authentication Type to 'Plaintext Password' (with blank Global Catalog server name) fixes my issue. I now see my exchange account contacts.

Summary:

Evo 3.4.3 and openldap-2.4.30-2.fc17 --> GAL Authentication Type can be 'Plaintext Password', 'Secure or Plaintext Password' or 'Secure Password' (with blank Global Catalog server name), exchange account contacts show up ok.

Evo 3.4.4 and openldap-2.4.32-2.fc17 --> GAL Authentication Type is 'Plaintext Password' (with blank Global Catalog server name), exchange account contacts show up ok. But with GAL Authentication Type being 'Secure or Plaintext Password' or 'Secure Password' (with blank Global Catalog server name), evolution-addressbook-factory crashes and exchange account contacts fail to show.
Comment 28 Milan Crha 2012-09-10 02:46:24 EDT
That 'Secure or Plaintext Password' is meant as "use the same authentication method as I have for the exchange account itself" and is used for GAL only. When you changed it to "Plaintext password", then GAL didn't call ldap_ntlm_bind, thus it didn't use the crashing function. I still do not understand why it crashes for you, but not for others (and me), when using NTLM.

Note You need to log in before you can comment on or make changes to this bug.