GNOME Help empty

Bug #18434 reported by Mikel Ward
18
Affects Status Importance Assigned to Milestone
yelp (Ubuntu)
Fix Released
Medium
Sebastien Bacher

Bug Description

When I select System->Help, the main "Help Topics" contents page is empty!

I performed a clean install of Ubuntu 5.04, however my home directory contained
a GNOME profile from a previous Linux installation. Nevertheless, I would
expect the help menu to be appropriately populated by the system.

I also added the breezy repos to my APT sources, but the only thing I pull from
there so far was a newer version of libgcc4.

Revision history for this message
Sebastien Bacher (seb128) wrote :

what locale are you using? does it work differently if you move ~/.gnome2/yelp?

Revision history for this message
Mikel Ward (mikelward) wrote :

My current value of LANG is en_AU.UTF-8. Invoking yelp with other values such
as en_AU.utf8 and C has the same effect.

Removing my ~/.gnome2/yelp only seems to forget the window placement details.
It still has an empty contents and appears otherwise unchanged.

Invoking yelp from the command line seems to always yield:
I/O warning : failed to load external entity
"/home/michael/.gnome2/yelp-bookmarks.xbel"
*** glibc detected *** free(): invalid next size (fast): 0x0804b868 ***
I/O warning : failed to load external entity ""
manpath: warning: $MANPATH set, ignoring /etc/manpath.config

libc6 is the version from hoary, but libgcc1 is from breezy. I'll try
downgrading in case it's related.

Revision history for this message
Mikel Ward (mikelward) wrote :

Downgraded to 4.0-0pre6ubuntu7 (the final trace of breezy I can find) and the
problem still exists.

Unset MANPATH and the problem still exists.

Revision history for this message
Sebastien Bacher (seb128) wrote :

does the menu entries for the different applications work as expected?

Revision history for this message
Mikel Ward (mikelward) wrote :

Help->Contents gives sane results in Epiphany and Evolution.

Clicking on the Home button from there takes me back to the main help contents
page which is empty.

Revision history for this message
Trouilliez vincent (vincent-trouilliez-modulonet) wrote :

I have the exact same problem (see attached screenshot), on Breezy (Fresh Colony
#2 plus daily upgrade), locale is "en_US.UTF-8".

It works fine when called from an application, but if I try to get the home page
either by pressing the "home" icon in the toolbar, or by going to System->Help,
the page doesn't display any entry whatsoever, and if launched from a terminal,
I also get the warning saying it can't load
"/home/vincent/.gnome2/yelp-bookmarks.xbel". Looking at the content of
~/.gnome2, there isn't any file by that name, so I don't understant why its
trying to open it ?! The only possibly relevant file would be "yelp", but it
contains absolutely no info but the window's dimensions.

Revision history for this message
Trouilliez vincent (vincent-trouilliez-modulonet) wrote :

Created an attachment (id=2905)
empty help main page

Revision history for this message
Mikel Ward (mikelward) wrote :

I still had libc6 = 2.3.5* from Breezy. Rectifying this caused a major
uninstall then reinstall of nearly everything in ubuntu-desktop.

Now I'm back at 2.3.2 from Hoary and the help contents works.

Still, the error message emitted suggests that the newer libc is catching a
programming bug (bounds error, freeing an invalid pointer, etc.), so maybe that
needs to be investigated.

Revision history for this message
Sebastien Bacher (seb128) wrote :

Vincent, the warning is usual, that's not the bug. I've just uploaded a new
version, let me know if that fixes the issue. It works fine here ...

Revision history for this message
Trouilliez vincent (vincent-trouilliez-modulonet) wrote :

(In reply to comment #9)
> Vincent, the warning is usual, that's not the bug. I've just uploaded a new
> version, let me know if that fixes the issue. It works fine here ...

Okay, I have installed the update Yelp... but that didn't change anything... :-/
I don't understand, my Breezy is pretty much "stock", a Colony #2 plus daily
updates, and not more than half a dozen packages from main and universe. I
didn't 'mess' at all with the system...straaaange...

Is there a way I could debug this problem ? I heard about things like 'trace' or
strace' or something. Would that show what Yelp is doing when it is loadng the
home page ? Any other tool I could use ?

Revision history for this message
Trouilliez vincent (vincent-trouilliez-modulonet) wrote :

Created an attachment (id=2982)
Yelp strace log

Revision history for this message
Trouilliez vincent (vincent-trouilliez-modulonet) wrote :

I ran strace while loading yelp, and specified the " -e trace=file " option, so
that only file related system calls are logged.
Still, there are 10,000 (not joking!) lines in the log, and most of them
basically say "No such file or directory"... what a mess !
Rather worrying, I don't know where to start :-/

Revision history for this message
Mikel Ward (mikelward) wrote :

Still broken in Breezy.

Revision history for this message
Trouilliez vincent (vincent-trouilliez-modulonet) wrote :

(In reply to comment #13)
> Still broken in Breezy.

Yep, still not fixed. Looks like it generates different error messages while
loading, though. It now talks about Open Office or something... what doesn OOo
have to do with yelp... I thought OOo had its own help system ??

I/O warning : failed to load external entity "/home/vincent/.gnome2/yelp-bookmar
ks.xbel"
*** glibc detected *** free(): invalid next size (fast): 0x0804b868 ***
I/O warning : failed to load external entity ""

(yelp:10473): Yelp-WARNING **: Could not locate section gz for oofromtemplate2.1 .gz
(yelp:10473): Yelp-WARNING **: Could not locate section gz for ooffice2.1.gz

Revision history for this message
Trouilliez vincent (vincent-trouilliez-modulonet) wrote :

Hi,

Just a quick note to report that yesterday's Breezy update fixed the problem... :o)

Revision history for this message
Mikel Ward (mikelward) wrote :

Still broken for me in latest Breezy with Yelp 2.11.1-0ubuntu2.

I've traced the path Yelp uses to build the table of contents and I suspect the
ScrollKeeper content list is the problem:
% scrollkeeper-get-content-list en_US
*** glibc detected *** free(): invalid next size (fast): 0x0804b868 ***
/usr/bin/scrollkeeper-get-content-list: line 16: 14930 Aborted
scrollkeeper-get-cl $1 scrollkeeper_cl.xml

The ScrollKeeper database in /usr/share/omf appears to be populated, so it's
looking more like a database corruption or a bug.

I've tried with common locales including C, en_US, en_AU, en_AU.UTF-8 (my
current LANG setting), and en_AU.utf8 (the alternative version of the same
locale). I have enabled en_AU.UTF-8 and en_US.UTF-8 via "dpkg-reconfigure
locales"; all others are disabled.

I've tried rebuilding the database by doing "apt-get --reinstall install
scrollkeeper", which seems to call scrollkeeper-rebuilddb.

This is an important application for me. Please let me know if there's anything
I can do to help debug this or get it fixed.

Revision history for this message
Sebastien Bacher (seb128) wrote :

thanks for the comment, I've tracked this bug some days ago to an issue from
scrollkeeper libs/i18n.c with some LANGUAGE value:

"LANGUAGE=C scrollkeeper-get-content-list C" works fine
"LANGUAGE=en_GB:en scrollkeeper-get-content-list C" crashes

If somebody want to try with the upstream code or track what's wrong with i18n.c
he's welcome. This will be fixed for 5.10 anyway.

Revision history for this message
Mikel Ward (mikelward) wrote :

I had "LANGUAGE=en_AU:en" in /etc/environment, but it seems "en_AU" implies "en"
as a fallback.

% LANGUAGE=en_AU scrollkeeper-get-content-list en_AU
I/O warning : failed to load external entity
"/var/lib/scrollkeeper/en_AU/scrollkeeper_cl.xml"
I/O warning : failed to load external entity
"/var/lib/scrollkeeper/en/scrollkeeper_cl.xml"
/tmp/scrollkeeper-michael/contents.0

I'm going to set "LANGUAGE=en_AU" as a workaround and see what else breaks. :-)

It's also interesting that scrollkeeper-get-content-list always seems to fail if
LANGUAGE contains two elements, but not if it contains one or three:

% LANGUAGE=en_AU:en scrollkeeper-get-content-list en_AU
*** glibc detected *** free(): invalid next size (fast): 0x0804b868 ***
/usr/bin/scrollkeeper-get-content-list: line 16: 30416 Aborted
scrollkeeper-get-cl $1 scrollkeeper_cl.xml

% LANGUAGE=en_AU:en_US:en scrollkeeper-get-content-list en_AU
I/O warning : failed to load external entity
"/var/lib/scrollkeeper/en_AU/scrollkeeper_cl.xml"
I/O warning : failed to load external entity
"/var/lib/scrollkeeper/en/scrollkeeper_cl.xml"
I/O warning : failed to load external entity
"/var/lib/scrollkeeper/en_US/scrollkeeper_cl.xml"
I/O warning : failed to load external entity
"/var/lib/scrollkeeper/en/scrollkeeper_cl.xml"
I/O warning : failed to load external entity
"/var/lib/scrollkeeper/en/scrollkeeper_cl.xml"
/tmp/scrollkeeper-michael/contents.0

This works for any combination of languages I've tried, including
LANGUAGE=en_US:en_AU:en, LANGUAGE=en_US:en_AU:C, or other weird values such as
LANGUAGE=en:en:en.

Looks like a simple iteration bug.

It would also be nice if LANGUAGE were documented somewhere such as locale(1)
and/or locale(5).

Revision history for this message
Don Scorgie (don-scorgie) wrote :

Created an attachment (id=3388)
Patch to fix scrollkeeper

The problem is that the function sk_get_language_list in i18n.c mallocs 1 of
its members too small. This patch just creates it 1 element larger.

Revision history for this message
Martin Pitt (pitti) wrote :

*** Bug 20392 has been marked as a duplicate of this bug. ***

Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks for tracking that. I've patched with a slightly modified change (extra
"()"), this upload fixes the issue:

 scrollkeeper (0.3.14-10ubuntu1) breezy; urgency=low
 .
   * debian/patches/03_language_fix.diff:
     - fix a crasher with some values of LANGUAGE,
       patch based of the fix from Don Scorgie <email address hidden>
       (Ubuntu: #12164).

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

Duplicates of this bug

Other bug subscribers

Remote bug watches

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