Bug 151224 - yelp crashes on start
Summary: yelp crashes on start
Status: RESOLVED FIXED
Alias: None
Product: SUSE Linux 10.1
Classification: openSUSE
Component: GNOME (show other bugs)
Version: Beta 3.5internal
Hardware: x86-64 Other
: P5 - None : Critical (vote)
Target Milestone: ---
Assignee: Joe Shaw
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-15 17:26 UTC by Stanislav Brabec
Modified: 2006-02-16 18:24 UTC (History)
0 users

See Also:
Found By: Other
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stanislav Brabec 2006-02-15 17:26:13 UTC
Yelp crashes on AMD64 after appearing the main window.

Backtrace was generated from '/opt/gnome/bin/yelp'

Using host libthread_db library "/lib64/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 47755023730000 (LWP 30703)]
[New Thread 1124096352 (LWP 30709)]
[New Thread 1115703648 (LWP 30708)]
[New Thread 1107310944 (LWP 30707)]
[New Thread 1098918240 (LWP 30706)]
[New Thread 1090525536 (LWP 30705)]
[New Thread 1082132832 (LWP 30704)]
0x00002b6ed2ae19ef in __libc_waitpid (pid=30710, stat_loc=0x7fffdd72b9cc, options=0)
    at waitpid.c:41
41	  int result = INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL);
#0  0x00002b6ed2ae19ef in __libc_waitpid (pid=30710, stat_loc=0x7fffdd72b9cc, options=0)
    at waitpid.c:41
#1  0x00002b6ecd8b8dc7 in libgnomeui_segv_handle (signum=11) at gnome-ui-init.c:749
#2  <signal handler called>
#3  0x0000000000419abd in toc_process_pending (pager=0x53df40) at yelp-toc-pager.c:403
#4  0x00002b6ed1ca02ba in g_main_context_dispatch () from /opt/gnome/lib64/libglib-2.0.so.0
#5  0x00002b6ed1ca3345 in g_main_context_check () from /opt/gnome/lib64/libglib-2.0.so.0
#6  0x00002b6ed1ca3655 in g_main_loop_run () from /opt/gnome/lib64/libglib-2.0.so.0
#7  0x00002b6ed0fc82b6 in bonobo_main () at bonobo-main.c:394
#8  0x0000000000423f48 in main (argc=<value optimized out>, argv=0x7fffdd72c1f8)
    at yelp-main.c:458

Thread 7 (Thread 1082132832 (LWP 30704)):
#0  0x00002b6ed320b7f6 in *__GI___poll (fds=0x407ffed0, nfds=1, timeout=-1) at poll.c:87
	oldtype = 0
	result = <value optimized out>
#1  0x00002b6ed29bf43d in PR_Poll () from /usr/lib64/libnspr4.so
No symbol table info available.
#2  0x00002b6ed3b5d21e in nsSocketTransportService::Poll (this=<value optimized out>, 
    interval=0x40800164) at nsSocketTransportService2.cpp:359
	pollList = (PRPollDesc *) 0x6ca1e8
	pollCount = 1
	pollTimeout = 4294967295
	ts = 1857851279
	rv = <value optimized out>
#3  0x00002b6ed3b5d43f in nsSocketTransportService::Run (this=0x6c9830)
    at nsSocketTransportService2.cpp:568
	pollInterval = 0
	n = <value optimized out>
	i = -1
	count = <value optimized out>
	active = 1
#4  0x00002b6ed3ac304b in nsThread::Main (arg=0x7f8cc0) at nsThread.cpp:118
	self = <value optimized out>
#5  0x00002b6ed29c30a6 in PR_JoinThread () from /usr/lib64/libnspr4.so
No symbol table info available.
#6  0x00002b6ed2adb223 in start_thread (arg=<value optimized out>) at pthread_create.c:261
	__res = <value optimized out>
	pd = (struct pthread *) 0x40800960
	unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1082132832, -69077656020368171, 
        47754980995472, 140736908665776, 3, 1082134528, -69077657102498507, 
        -69034683575241415}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {
      prev = 0x0, cleanup = 0x0, canceltype = 0}}}
	not_first_call = 0
	robust = <value optimized out>
	__PRETTY_FUNCTION__ = "start_thread"
#7  0x00002b6ed32138bd in clone () from /lib64/libc.so.6
	fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0, 
    mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {
    fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, 
    fs_freq = 0, fs_passno = 0}}
	__elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0x2b6ed32458e0
#8  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 6 (Thread 1090525536 (LWP 30705)):
#0  0x00002b6ed2ade7d7 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00002b6ed29bcf18 in PRP_NakedNotify () from /usr/lib64/libnspr4.so
No symbol table info available.
#2  0x00002b6ed29bdb0a in PR_WaitCondVar () from /usr/lib64/libnspr4.so
No symbol table info available.
#3  0x00002b6ed3ac4b38 in TimerThread::Run (this=0x652830) at TimerThread.cpp:318
	waitFor = 3
	lock = {<nsAutoLockBase> = {<No data fields>}, mLock = 0x652920, mLocked = 1}
#4  0x00002b6ed3ac304b in nsThread::Main (arg=0xa53d60) at nsThread.cpp:118
	self = <value optimized out>
#5  0x00002b6ed29c30a6 in PR_JoinThread () from /usr/lib64/libnspr4.so
No symbol table info available.
#6  0x00002b6ed2adb223 in start_thread (arg=<value optimized out>) at pthread_create.c:261
	__res = <value optimized out>
	pd = (struct pthread *) 0x41001960
	unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1090525536, -69077656020368171, 
        47754980995472, 140736908659840, 3, 1090527232, -69077657077328587, 
        -69034683575241415}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {
      prev = 0x0, cleanup = 0x0, canceltype = 0}}}
	not_first_call = 0
	robust = <value optimized out>
	__PRETTY_FUNCTION__ = "start_thread"
#7  0x00002b6ed32138bd in clone () from /lib64/libc.so.6
	fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0, 
    mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {
    fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, 
    fs_freq = 0, fs_passno = 0}}
	__elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0x2b6ed32458e0
#8  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 5 (Thread 1098918240 (LWP 30706)):
#0  0x00002b6ed2ade7d7 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00002b6ed29bcf18 in PRP_NakedNotify () from /usr/lib64/libnspr4.so
No symbol table info available.
#2  0x00002b6ed29bdb0a in PR_WaitCondVar () from /usr/lib64/libnspr4.so
No symbol table info available.
#3  0x00002b6ed3b42f13 in nsIOThreadPool::ThreadFunc (arg=<value optimized out>)
    at nsIOThreadPool.cpp:254
	delta = 4294967292
	start = 1857854725
	timeout = 60000
	lock = {<nsAutoLockBase> = {<No data fields>}, mLock = 0xb91f80, mLocked = 1}
	pool = (nsIOThreadPool *) 0xbab310
#4  0x00002b6ed29c30a6 in PR_JoinThread () from /usr/lib64/libnspr4.so
No symbol table info available.
#5  0x00002b6ed2adb223 in start_thread (arg=<value optimized out>) at pthread_create.c:261
	__res = <value optimized out>
	pd = (struct pthread *) 0x41802960
	unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1098918240, -69077656020368171, 
        47754980995472, 140736908667856, 3, 1098919936, -69077657085713099, 
        -69034683575241415}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {
      prev = 0x0, cleanup = 0x0, canceltype = 0}}}
	not_first_call = 0
	robust = <value optimized out>
	__PRETTY_FUNCTION__ = "start_thread"
#6  0x00002b6ed32138bd in clone () from /lib64/libc.so.6
	fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0, 
    mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {
    fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, 
    fs_freq = 0, fs_passno = 0}}
	__elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0x2b6ed32458e0
#7  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 4 (Thread 1107310944 (LWP 30707)):
#0  0x00002b6ed2ade7d7 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00002b6ed29bcf18 in PRP_NakedNotify () from /usr/lib64/libnspr4.so
No symbol table info available.
#2  0x00002b6ed29bdb0a in PR_WaitCondVar () from /usr/lib64/libnspr4.so
No symbol table info available.
#3  0x00002b6ed3b42f13 in nsIOThreadPool::ThreadFunc (arg=<value optimized out>)
    at nsIOThreadPool.cpp:254
	delta = 4294967292
	start = 1857854723
	timeout = 60000
	lock = {<nsAutoLockBase> = {<No data fields>}, mLock = 0xb91f80, mLocked = 1}
	pool = (nsIOThreadPool *) 0xbab310
#4  0x00002b6ed29c30a6 in PR_JoinThread () from /usr/lib64/libnspr4.so
No symbol table info available.
#5  0x00002b6ed2adb223 in start_thread (arg=<value optimized out>) at pthread_create.c:261
	__res = <value optimized out>
	pd = (struct pthread *) 0x42003960
	unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1107310944, -69077656020368171, 
        47754980995472, 140736908668160, 3, 1107312640, -69077657127652043, 
        -69034683575241415}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {
      prev = 0x0, cleanup = 0x0, canceltype = 0}}}
	not_first_call = 0
	robust = <value optimized out>
	__PRETTY_FUNCTION__ = "start_thread"
#6  0x00002b6ed32138bd in clone () from /lib64/libc.so.6
	fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0, 
    mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {
    fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, 
    fs_freq = 0, fs_passno = 0}}
	__elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0x2b6ed32458e0
#7  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 3 (Thread 1115703648 (LWP 30708)):
#0  0x00002b6ed2ade7d7 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00002b6ed29bcf18 in PRP_NakedNotify () from /usr/lib64/libnspr4.so
No symbol table info available.
#2  0x00002b6ed29bdb0a in PR_WaitCondVar () from /usr/lib64/libnspr4.so
No symbol table info available.
#3  0x00002b6ed3b42f13 in nsIOThreadPool::ThreadFunc (arg=<value optimized out>)
    at nsIOThreadPool.cpp:254
	delta = 4294967292
	start = 1857854725
	timeout = 60000
	lock = {<nsAutoLockBase> = {<No data fields>}, mLock = 0xb91f80, mLocked = 1}
	pool = (nsIOThreadPool *) 0xbab310
#4  0x00002b6ed29c30a6 in PR_JoinThread () from /usr/lib64/libnspr4.so
No symbol table info available.
#5  0x00002b6ed2adb223 in start_thread (arg=<value optimized out>) at pthread_create.c:261
	__res = <value optimized out>
	pd = (struct pthread *) 0x42804960
	unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1115703648, -69077656020368171, 
        47754980995472, 140736908668160, 3, 1115705344, -69077657136069323, 
        -69034683575241415}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {
      prev = 0x0, cleanup = 0x0, canceltype = 0}}}
	not_first_call = 0
	robust = <value optimized out>
	__PRETTY_FUNCTION__ = "start_thread"
#6  0x00002b6ed32138bd in clone () from /lib64/libc.so.6
	fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0, 
    mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {
    fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, 
    fs_freq = 0, fs_passno = 0}}
	__elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0x2b6ed32458e0
#7  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 2 (Thread 1124096352 (LWP 30709)):
#0  0x00002b6ed2ade7d7 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00002b6ed29bcf18 in PRP_NakedNotify () from /usr/lib64/libnspr4.so
No symbol table info available.
#2  0x00002b6ed29bdb0a in PR_WaitCondVar () from /usr/lib64/libnspr4.so
No symbol table info available.
#3  0x00002b6ed3b42f13 in nsIOThreadPool::ThreadFunc (arg=<value optimized out>)
    at nsIOThreadPool.cpp:254
	delta = 4294967292
	start = 1857854724
	timeout = 60000
	lock = {<nsAutoLockBase> = {<No data fields>}, mLock = 0xb91f80, mLocked = 1}
	pool = (nsIOThreadPool *) 0xbab310
#4  0x00002b6ed29c30a6 in PR_JoinThread () from /usr/lib64/libnspr4.so
No symbol table info available.
#5  0x00002b6ed2adb223 in start_thread (arg=<value optimized out>) at pthread_create.c:261
	__res = <value optimized out>
	pd = (struct pthread *) 0x43005960
	unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1124096352, -69077656020368171, 
        47754980995472, 140736908668128, 3, 1124098048, -69077657110899403, 
        -69034683575241415}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {
      prev = 0x0, cleanup = 0x0, canceltype = 0}}}
	not_first_call = 0
	robust = <value optimized out>
	__PRETTY_FUNCTION__ = "start_thread"
#6  0x00002b6ed32138bd in clone () from /lib64/libc.so.6
	fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0, 
    mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {
    fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, 
    fs_freq = 0, fs_passno = 0}}
	__elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0x2b6ed32458e0
#7  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 1 (Thread 47755023730000 (LWP 30703)):
#0  0x00002b6ed2ae19ef in __libc_waitpid (pid=30710, stat_loc=0x7fffdd72b9cc, options=0)
    at waitpid.c:41
	oldtype = 0
	result = <value optimized out>
#1  0x00002b6ecd8b8dc7 in libgnomeui_segv_handle (signum=11) at gnome-ui-init.c:749
	estatus = 11118
	sa = {__sigaction_handler = {sa_handler = 0, sa_sigaction = 0}, sa_mask = {__val = {0, 
      26860352, 0, 47754963303208, 47754988638768, 140736908671888, 0, 47754963303208, 
      47754962449528, 206158430232, 140736908671552, 140736908671344, 47754962207560, 
      140736908671648, 140736908671584, 26860352}}, sa_flags = 0, sa_restorer = 0xffffffff}
	pid = -512
	in_segv = 1
#2  <signal handler called>
No symbol table info available.
#3  0x0000000000419abd in toc_process_pending (pager=0x53df40) at yelp-toc-pager.c:403
	readd = <value optimized out>
	priv = (YelpTocPagerPriv *) 0x0
	process_i = 6
	process_funcs = {0x41b9c0 <process_libmenu>, 0x41ba10 <process_libmenu_node>, 
  0x419c10 <process_xslt>, 0x41ac00 <process_mandir_pending>, 0x419c10 <process_xslt>, 
  0x41a380 <process_info_pending>, 0x419c10 <process_xslt>, 0}
#4  0x00002b6ed1ca02ba in g_main_context_dispatch () from /opt/gnome/lib64/libglib-2.0.so.0
No symbol table info available.
#5  0x00002b6ed1ca3345 in g_main_context_check () from /opt/gnome/lib64/libglib-2.0.so.0
No symbol table info available.
#6  0x00002b6ed1ca3655 in g_main_loop_run () from /opt/gnome/lib64/libglib-2.0.so.0
No symbol table info available.
#7  0x00002b6ed0fc82b6 in bonobo_main () at bonobo-main.c:394
	loop = (GMainLoop *) 0x589f90
#8  0x0000000000423f48 in main (argc=<value optimized out>, argv=0x7fffdd72c1f8)
    at yelp-main.c:458
	factory = (BonoboGenericFactory *) 0x589fb0
	registration_id = 0x5863e0 "\001"
	program = <value optimized out>
	factory = <value optimized out>
	url = (gchar *) 0x588de0 "GtkWindowGroup"
	client = <value optimized out>
	args = <value optimized out>
	local_id = <value optimized out>
0x00002b6ed2ae19ef	41	  int result = INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL);
Comment 1 JP Rosevear 2006-02-15 19:22:50 UTC
I can replicate with 2.13.4 as well on 64bit.  It looks like priv is NULL.
Comment 2 Joe Shaw 2006-02-15 20:29:00 UTC
Alarmingly, this only happens when built with -O2.
Comment 3 Joe Shaw 2006-02-15 20:35:06 UTC
Ah, found it.  A type punning issue.

int len;
foo (bar, (gsize *) &len);

No reason for len to be an int rather than a gsize in this particular case.

Normally autobuild catches issues like these.  I wonder why not this time?

Anyway, I'll submit a fix soon.
Comment 4 Joe Shaw 2006-02-15 20:37:52 UTC
There are a number of 64-bit fixes in 2.13.5.  JP, should we just ship it instead?
Comment 5 JP Rosevear 2006-02-16 02:49:09 UTC
Looking at the bug list fixed for yelp, that looks right.  I can be a 64 bit guinea pig if need be for testing before we submit.
Comment 6 Joe Shaw 2006-02-16 18:24:18 UTC
The update already contains the patch I whipped up to fix this bug, and many other 64-bit issues.  I tested it on my 64-bit machine and it works pretty well.

I've submitted this to STABLE.