[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: metaunloading problem
From:       David Faure <david () mandrakesoft ! com>
Date:       2000-07-29 20:56:19
[Download RAW message or body]

On Tue, 25 Jul 2000, Michael Matz wrote :
> Hi,
> 
> On Mon, 24 Jul 2000, Dirk Mueller wrote:
> > #0  0x4000769c in _dl_lookup_symbol (
> > undef_name=0x411a9e2f "_._35_KUnloadMetaClass_Helperlibkjava_la",
> > ref=0xbffff59c, symbol_scope=0x8179f20,
> > reference_name=0x8179618 "/opt/kde/lib/libkjava.so.1", reloc_type=7)
> > at do-lookup.h:70
> > #1  0x4000a351 in fixup (l=0x8179f20, reloc_offset=1092263471)
> > at dl-runtime.c:88
> > #2  0x4000a4d0 in _dl_runtime_resolve () at dl-runtime.c:182
> > #3  0x411b04b2 in
> > _GLOBAL_.D._._35_KUnloadMetaClass_Helperlibkjava_lalibkjava_la_meta_unload
> > .cppGiaLbb () at libkjava_la_meta_unload.cpp:9
> 
> As the crash is in ld.so when resolving the symbol I suspect that some
> bounds problem in the code (added the last days) screwed the symbol
> tables. Wasn't that also the problem, when there were static function
> local objects? That, or a normal overwriting of unallocated memory.

What seems to happen (this crash still happens quite often) is that
most libs's metaclasses get unloaded
 
kjs_html_la
libkhtml_la 
libkhtmlhtml_la
libkhtmlrender_la
libkhtmlmisc_la
konqueror_la
libkonq_la
libkparts_la
libkfile_la
libkdeui_la
libkdecore_la

and THEN it tries to unload libkjava_la and crashes

#0  0x40006ffc in _dl_lookup_symbol () from /lib/ld-linux.so.2
#1  0x40009db2 in _dl_map_object_deps () from /lib/ld-linux.so.2
#2  0x40009f20 in _dl_map_object_deps () from /lib/ld-linux.so.2
#3  0x411630d2 in _GLOBAL_.D._._35_KUnloadMetaClass_Helperlibkjava_lalibkjava_la_meta_unload.cppCOwkFc \
() at libkjava_la_meta_unload.cpp:9 #4  0x4115f693 in __do_global_dtors_aux () from \
/opt/kde2dev/lib/libkjava.so.1 #5  0x4000a516 in _dl_init_next () from \
/lib/ld-linux.so.2 #6  0x40d86765 in exit () from /lib/libc.so.6
#7  0x40d7dcb4 in __libc_start_main () from /lib/libc.so.6  

Is this order of unloading normal ?
(I guess there's no guarantee on the order of the global destructors, right ?)

Still can't find why this happens :(

-- 
David FAURE, david@mandrakesoft.com, faure@kde.org
http://home.clara.net/faure/, http://www.konqueror.org/
KDE, Making The Future of Computing Available Today
See http://www.kde.org/kde1-and-kde2.html for how to set up KDE 2


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic