Comment 4 for bug 1396553

Revision history for this message
Kiwinote (kiwinote) wrote :

This has been broken for quite a while - there are two parts to this:

--> UNITY_LENS_APPLICATIONS
Unity-lens-applications reads a Berkeley DB file which is generated by software-center. The filename contains the version number of libdb. In February 2012 the transition [0] to libdb5.1 was done, in November 2013 there was a transition [1] to libdb5.3, but the filename was not updated, which means that since then the source code of unity-lens-applications had had a wrong filename in line 42 of src/unity-ratings-db.c [2].

[0] http://bazaar.launchpad.net/~unity-team/unity-lens-applications/trunk/revision/17.1.166
[1] http://bazaar.launchpad.net/~unity-team/unity-lens-applications/trunk/revision/375
[2] http://bazaar.launchpad.net/~unity-team/unity-lens-applications/trunk/view/head:/src/unity-ratings-db.c

--> SOFTWARE_CENTER
Upon launching software-center, software-center generates a file for unity-lens-applications to read. For at least a year, if not multiple years, software-center crashes whilst trying to generate this db. The crash occurs in line 336 of [3] with "DBInvalidArgError: (22, 'Invalid argument -- BDB0054 illegal flag combination specified to DB_ENV->open')". Experimentation seems to show that removing the "|bdb.DB_NOMMAP" stops this crash. The NOMMAP flag was introduced in [4], but I don't know enough about the Berkeley DB format to know why the NOMMAP flag should or shouldn't be in use. The internet seems to describe the flag as "Always copy read-only database files in this environment into the local cache instead of potentially mapping them into process memory". I couldn't pull up any other illegal flag combinations using NOMMAP errors besides software-center.

[3] http://bazaar.launchpad.net/~ubuntuone-control-tower/software-center/trunk/view/2869/softwarecenter/backend/reviews/__init__.py
[4] http://bazaar.launchpad.net/~ubuntuone-control-tower/software-center/trunk/revision/2434

After installing a modified version of unity-lens-applications and changing software-center and launching software-center I needed to kill the unity-scope-loader process after which the ratings reappeared in the dash (obviously only for apps which have ratings, which are not the newest ones).

Another issue affecting the applications lens is the missing applications descriptions due to bug #1486061