Revelation slow to open file - en message catalog missing?

Bug #134469 reported by Tony Lewis
4
Affects Status Importance Assigned to Milestone
revelation (Ubuntu)
Confirmed
Low
Unassigned

Bug Description

Binary package hint: revelation

In Kubuntu feisty, once I enter a password, revelation takes around 8s to open the file (machine less than 1 year old)

strace shows many many iterations of the following:

futex(0x8171f50, FUTEX_WAKE, 1) = 0
futex(0x8171f50, FUTEX_WAKE, 1) = 0
stat64("/usr/share/locale/en_AU.UTF8/LC_MESSAGES/revelation.mo", 0xbfd7bd28) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale-langpack/en_AU.UTF8/LC_MESSAGES/revelation.mo", 0xbfd7bd28) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale/en_AU/LC_MESSAGES/revelation.mo", 0xbfd7bd28) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale-langpack/en_AU/LC_MESSAGES/revelation.mo", 0xbfd7bd28) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale/en.UTF8/LC_MESSAGES/revelation.mo", 0xbfd7bd28) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale-langpack/en.UTF8/LC_MESSAGES/revelation.mo", 0xbfd7bd28) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale/en/LC_MESSAGES/revelation.mo", 0xbfd7bd28) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale-langpack/en/LC_MESSAGES/revelation.mo", 0xbfd7bd28) = -1 ENOENT (No such file or directory)

So it appears that the english locale messages catalog for revelation is not included in the package.

Confirmed with this:

$ dpkg -L revelation | grep 'mo$'
/usr/share/locale/cs/LC_MESSAGES/revelation.mo
/usr/share/locale/de/LC_MESSAGES/revelation.mo
/usr/share/locale/fr/LC_MESSAGES/revelation.mo
/usr/share/locale/sv/LC_MESSAGES/revelation.mo
/usr/share/locale/zh/LC_MESSAGES/revelation.mo

This is still the same for version 0.4.11-2ubuntu2 in gutsy (via http://packages.ubuntu.com/cgi-bin/search_contents.pl?searchmode=filelist&word=revelation&version=gutsy&arch=i386)

Revision history for this message
flowbot (flowbot) wrote :

Having the same problem on Xubuntu Hardy Heron with my Inspiron 1420 laptop ... although Revelation takes about half an hour to fully load and be functional.

Revision history for this message
flowbot (flowbot) wrote :

Has anyone got an idea of how to work around this - i haven't got access to any of my passwords until this gets fixed (well, i do, but it takes about half an hour to open revelation, then another half hour till i can choose a password to retrieve, then another half hour to close it).

I get the same messages about a missing language file.

Revision history for this message
Tony Lewis (tonylewis) wrote : Re: [Bug 134469] Re: Revelation slow to open file - en message catalog missing?

flowbot wrote:
> Has anyone got an idea of how to work around this
1. migrate to keepassx
2. recompile your own revelation
3. fix the broken package and submit the fix upstream

None are pain-free. I plan to do (1) when I can spare the time. I will
certainly find the time if an upgrade to hardy causes revelation to take
half an hour to open. Talk about motivation :-)

Tony

Revision history for this message
flowbot (flowbot) wrote :

>1. migrate to keepassx

i once tried to do this, but it appears that revelation and keepassx use different formats, and none of the export formats support by revelation are able to be imported into keepassx.

>2. recompile your own revelation

just tried this (building from source), but the problem presists.

>3. fix the broken package and submit the fix upstream

this is probably out of my league at the moment, but hopefully someone who can help will run into this same problem.

Revision history for this message
flowbot (flowbot) wrote :

well, this was fixed by re-installing final release of Xubuntu Hardy Heron for me.

Revision history for this message
Hew (hew) wrote :

Tony: Has the problem been solved with an upgrade to Hardy for you too?

Changed in revelation:
status: New → Incomplete
Revision history for this message
Tony Lewis (tonylewis) wrote :

I dont think so. Revelation is currently loading relatively quickly, but I think that's because of cached filesystems.

If I run strace, I see it's still trying to find the EN version of revelation.mo:

From the command:

A snippet:
stat64("/usr/share/locale-langpack/en_AU.UTF8/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale/en_AU/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale-langpack/en_AU/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale/en.UTF8/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale-langpack/en.UTF8/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale/en/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale-langpack/en/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale/en_AU.UTF8/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale-langpack/en_AU.UTF8/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale/en_AU/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale-langpack/en_AU/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)
stat64("/usr/share/locale/en.UTF8/LC_MESSAGES/revelation.mo", 0xbfadf378) = -1 ENOENT (No such file or directory)

See these commands

$ strace -e trace=file revelation myfile 2>&1 | egrep 'usr/share.*\/en.*revelation.mo' | grep 'No such file' | wc -l
1968

$ dpkg -L revelation | grep revelation.mo
/usr/share/locale/cs/LC_MESSAGES/revelation.mo
/usr/share/locale/de/LC_MESSAGES/revelation.mo
/usr/share/locale/fr/LC_MESSAGES/revelation.mo
/usr/share/locale/sv/LC_MESSAGES/revelation.mo
/usr/share/locale/zh/LC_MESSAGES/revelation.mo

So it still appears that revelation is spending ages looking for an EN version of revelation.mo, and one is *not* in the package.

I call it unfixed.

Thanks.

Hew (hew)
Changed in revelation:
status: Incomplete → Confirmed
importance: Undecided → Low
Revision history for this message
AsstZD (eskaer-spamsink) wrote :

As nobody CBA, here's a catalog for ya.

Revision history for this message
Tony Lewis (tonylewis) wrote :

Thanks AsstZD, but it didn''t seem to make a difference to the symptom (slow to open).

I can see via strace that revelation notices the file, but it still then just keeps looking for it, or another.

The following command is a snippet from strace running with "-e trace=stat" - i.e. it's filtering only on the stat commands. It finds the one I installed, and then keeps looking.

[pid 11411] stat("/usr/share/locale/en/LC_MESSAGES/revelation.mo", {st_mode=S_IFREG|0644, st_size=32741, ...}) = 0
[pid 11411] stat("/usr/share/locale-langpack/en/LC_MESSAGES/revelation.mo", 0x7fffb02d09a0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale/en_AU.UTF8/LC_MESSAGES/revelation.mo", 0x7fffb02d0ad0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale-langpack/en_AU.UTF8/LC_MESSAGES/revelation.mo", 0x7fffb02d0ad0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale/en_AU/LC_MESSAGES/revelation.mo", 0x7fffb02d0ad0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale-langpack/en_AU/LC_MESSAGES/revelation.mo", 0x7fffb02d0ad0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale/en.UTF8/LC_MESSAGES/revelation.mo", 0x7fffb02d0ad0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale-langpack/en.UTF8/LC_MESSAGES/revelation.mo", 0x7fffb02d0ad0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale/en/LC_MESSAGES/revelation.mo", {st_mode=S_IFREG|0644, st_size=32741, ...}) = 0
[pid 11411] stat("/usr/share/locale-langpack/en/LC_MESSAGES/revelation.mo", 0x7fffb02d0ad0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale/en_AU.UTF8/LC_MESSAGES/revelation.mo", 0x7fffb02d07c0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale-langpack/en_AU.UTF8/LC_MESSAGES/revelation.mo", 0x7fffb02d07c0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale/en_AU/LC_MESSAGES/revelation.mo", 0x7fffb02d07c0) = -1 ENOENT (No such file or directory)
[pid 11411] stat("/usr/share/locale-langpack/en_AU/LC_MESSAGES/revelation.mo", 0x7fffb02d07c0) = -1 ENOENT (No such file or directory)

Revision history for this message
Tony Lewis (tonylewis) wrote :

This is the full revelation capture, but trimmed to surrounding the locale part. You can see that it finds the revelation.mo file, reads it, and then keeps looking

Revision history for this message
Matthias (matthias-opennomad) wrote :

FWIW, I found that running revelation from the command line and setting LANG=C reduces startup time and doesn't show the endless attempts to read the .mo files

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.