Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1070744

Summary: Can't access local contact book after Evolution downgrade from 3.10 to 3.8
Product: Red Hat Enterprise Linux 7 Reporter: Martin <mholec>
Component: evolutionAssignee: Matthew Barnes <mbarnes>
Status: CLOSED WONTFIX QA Contact: Desktop QE <desktop-qa-list>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.0CC: fidencio, jkoten, mbarnes, mcrha, pasteur, tpelka, vbenes, vrutkovs
Target Milestone: pre-dev-freezeKeywords: Reopened
Target Release: 7.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-05-19 08:44:29 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:
Attachments:
Description Flags
screenshot none

Description Martin 2014-02-27 13:37:48 UTC
Created attachment 868538 [details]
screenshot

Description of problem:


Version-Release number of selected component (if applicable):
evolution-3.8.5-19.el7.x86_64

How reproducible:
always

Steps to Reproduce:
0. Downgrade from evolution-3.10.x (have newer ~/.local/share/evolution/addressbook/system)
1. Run evolution-3.8
2. Switch to Contacts tab.

Actual results:
I can't access local contact book.

GUI:
Unable to open address book
This address book cannot be opened.  Please check that the path /home/mholec/.local/share/evolution/addressbook/system-address-book exists and that permissions are set to access it.

Detailed error message: Unable to connect to 'Personal': Error introspecting unknown summary field 'file_as_localized'

see screenshot

Console:
** (evolution:7253): WARNING **: bbdb: Failed to get addressbook: Unable to connect to 'Personal': Error introspecting unknown summary field 'file_as_localized'
bbdb: Done syncing buddy list to contacts.

Expected results:
No error in GUI nor console. Access to contacts.

Additional info:
This can cause trouble to users when they upgrade to 7.1 and will want to downgrade Evolution for some reason, e.g. bug in newer version. Or if they use shared /home with 7.0 and 7.1 workstations (see Multiple Login feature).

Comment 1 Martin 2014-02-27 13:39:47 UTC
This has to be fixed in 7.0, because developers will probably rebase Evolution to 3.10 in 7.1.

Comment 2 Vadim Rutkovsky 2014-02-27 13:51:42 UTC
(In reply to Martin Holec from comment #0)
> This can cause trouble to users when they upgrade to 7.1
How does downgrade from evolution 3.10 can cause problems to 7.1 users?

Comment 3 Matthew Barnes 2014-02-27 14:11:09 UTC
devel_nack - We don't support downgrading.

Comment 4 RHEL Program Management 2014-02-27 14:17:05 UTC
Development Management has reviewed and declined this request.
You may appeal this decision by reopening this request.

Comment 5 Martin 2014-02-27 16:23:53 UTC
(In reply to Matthew Barnes from comment #3)
> devel_nack - We don't support downgrading.

Downgrading was actually Milan's idea during Evolution Test Day.

I still see following issue: What if user use NFS shared /home with 7.0 and 7.1 workstations (see Multiple Login feature).

Milan, could you describe your proposed fix here or in upstream bugzilla?

Comment 8 Milan Crha 2014-02-28 11:32:54 UTC
Right, we do not support downgrading, but what I was thinking about was to investigate whether the older addressbook cache would be able to work with the newer, instead of giving up due to a notice of an unknown column in one of its tables.

I had a chat with the author of this change, and it turned out we are out of luck, because:
a) there wasn't only added new columns to the tables, some values are stored
   in a fundamentally different way, unavailable to the old version
b) it's impossible to jump from newer version to the older and back,
   when accessing the same NFS home at one time, because contacts added/modified
   in one version would have missing summary information for the another
   version, which would cause incorrect results during searching

Well, the 'impossible' at b) is not accurate. There are some "options":
1) redirect evolution-related data into different XDG directories, thus they
   will not be shared at all, but will still be stored on the same NFS server
2) change summary versions each time the package is downgraded, but it's quite
   hard to do, because each backend can have implemented its own cache format,
   and the cache can be stored basically anywhere on the disk and, the most
   importantly, this doesn't cover on-the-fly version changes (like mounting
   the home from two versions of the system without involving rpm)
3) if the summary notices "too high" version, then it will downgrade it on
   its own, which means rebuilding it from scratch, with use of the vCard-s
   stored in the DB - it has also couple cons, like the rebuild would be
   done always after the switch, while a move from older to newer is done
   already within the migrate process, automatically. This migrate/downgrade
   can be time consuming, depending on actual cache size
4) have only one server with running evolution-data-server processes, and
   connect to it remotely, while supporting older (D-Bus) APIs by the clients,
   but I do not think it's practical to do too.

The most feasible way from my point of view is to use 1), not only because it doesn't require any changes on the evolution-related code, but because I expect that many other applications may suffer of the same downgrade issue. And also incorporate the 3), which will work fine for address books, if not switching between versions too often, for a price of slower open the first time the migration/downgrade is done. Of course, first do this upstream.

Matthew, what do you think?

Comment 11 Milan Crha 2014-07-07 13:18:16 UTC
If there is a need to run two different evolution instances on the same /home, then the XDS spec is the way to go, thus effectively do not share actual data, which means both evolutions should be configured separately. This problem is deeper than just with evolution.