ports/92901: firefox-1.5 core dumps when attempting to load jdk14 plugin, but only on 4.11-STABLE

Don Lewis truckman at FreeBSD.org
Tue Feb 7 03:30:10 PST 2006


The following reply was made to PR ports/92901; it has been noted by GNATS.

From: Don Lewis <truckman at FreeBSD.org>
To: FreeBSD-gnats-submit at FreeBSD.org
Cc: freebsd-ports-bugs at FreeBSD.org
Subject: Re: ports/92901: firefox-1.5 core dumps when attempting to load
 jdk14 plugin, but only on 4.11-STABLE
Date: Tue, 7 Feb 2006 03:27:31 -0800 (PST)

 On  6 Feb, FreeBSD-gnats-submit at FreeBSD.org wrote:
 > Thank you very much for your problem report.
 > It has the internal identification `ports/92901'.
 > The individual assigned to look at your
 > report is: freebsd-ports-bugs. 
 > 
 > You can access the state of your problem report at any time
 > via this link:
 > 
 > http://www.freebsd.org/cgi/query-pr.cgi?pr=92901
 > 
 >>Category:       ports
 >>Responsible:    freebsd-ports-bugs
 >>Synopsis:       firefox-1.5 core dumps when attempting to load jdk14 plugin, but only on 4.11-STABLE
 >>Arrival-Date:   Mon Feb 06 17:20:03 GMT 2006
 
 The mapping from this=0x808ea00 to 0x808ea1c is being done the
 NS_STATIC_CAST() in nsServiceManager::GetGlobalServiceManager() on line
 57 of nsServiceManagerObsolete.cpp, which is being called by
 nsPluginFile::GetPluginInfo() on line 434 of nsPluginsDirUnix.cpp.
 
 I built the jdk14 plugin with debugging info so I could fill in the gap
 in stack trace.
 
 #0  0x281a76d5 in PL_DHashTableOperate (table=0x8089ba2, key=0x2a76f9fc, 
     op=PL_DHASH_LOOKUP) at pldhash.c:492
 #1  0x28204f43 in nsComponentManagerImpl::GetFactoryEntry (this=0x8089b76, 
     aClass=@0x2a76f9fc) at nsComponentManager.cpp:1622
 #2  0x28206803 in nsComponentManagerImpl::RegisterService (this=0x8089b76, 
     aClass=@0x2a76f9fc, aService=0x88d92e0) at nsComponentManager.cpp:2138
 #3  0x2a7632ac in CPluginServiceProvider::CPluginServiceProvider (
     this=0x88d92e0, pProvider=0x808ea1c)
     at ../../../src/plugin/oji-plugin/src/motif/navig5/CPluginServiceProvider.cpp:64
 #4  0x2a75cc65 in JavaPluginFactory5::JavaPluginFactory5 (this=0x872e180, 
     pProvider=0x808ea1c)
     at ../../../src/plugin/oji-plugin/src/motif/navig5/JavaPluginFactory5.cpp:150
 #5  0x2a75c776 in JavaPluginFactory5::Create (sm=0x808ea1c, aIID=@0x2a768850, 
     aInstancePtr=0xbfbfa530)
     at ../../../src/plugin/oji-plugin/src/motif/navig5/JavaPluginFactory5.cpp:103
 #6  0x2a7436ea in NSGetFactory (pProvider=0x808ea1c, aClass=@0x2a725ec8, 
     aClassName=0x0, aProgID=0x0, aFactory=0xbfbfa530)
     at ../../../src/plugin/oji-plugin/src/motif/navig5/GetFactory5.cpp:72
 #7  0x2a71f333 in nsPluginFile::GetPluginInfo (this=0xbfbfa610, 
     info=@0xbfbfa620) at nsPluginsDirUnix.cpp:449
 #8  0x2a7057af in nsPluginHostImpl::ScanPluginsDirectory (this=0x8b8f680, 
     pluginsDir=0x8713a00, compManager=0x808ea00, aCreatePluginList=1, 
     aPluginsChanged=0xbfbfa7c4, checkForUnwantedPlugins=0)
     at nsPluginHostImpl.cpp:4947
 
 0x808ea1c is getting passed as far as frame #3, where it somehow gets
 mapped to 0x8089b76 instead of back to 0x808ea00 on line 64 in
 CPluginServiceProvider.cpp.  I don't understand c++ well enough to
 figure out what is going on here.
 
 (gdb) frame 3
 #3  0x2a7632ac in CPluginServiceProvider::CPluginServiceProvider (
     this=0x88d92e0, pProvider=0x808ea1c)
     at ../../../src/plugin/oji-plugin/src/motif/navig5/CPluginServiceProvider.cpp:64
 64      if (NS_FAILED(pProvider->QueryInterface(kIServiceManagerIID, (void**)&mService))) {
 (gdb) list
 59        mPluginManager(NULL), mJVMManager(NULL), mCookieStorage(NULL)
 60
 61  {
 62  #ifdef RAPTOR_API
 63      // Try to obtain nsIServiceManager if running inside Mozilla
 64      if (NS_FAILED(pProvider->QueryInterface(kIServiceManagerIID, (void**)&mService))) {
 65        plugin_error("Did not find the service manager!");
 66      }
 67  #else
 68      // We are running inside Mozilla classic. The provider is a plugin manager
 
 
 If I step through this code in gdb, this is what I see:
 
 Breakpoint 2, CPluginServiceProvider::CPluginServiceProvider (this=0x88d92e0, 
     pProvider=0x808ea1c)
     at ../../../src/plugin/oji-plugin/src/motif/navig5/CPluginServiceProvider.cpp:58
 58      : mService(NULL), mMgr(NULL), 
 (gdb) step
 64      if (NS_FAILED(pProvider->QueryInterface(kIServiceManagerIID, (void**)&mService))) {
 (gdb) step
 0x2820b264 in non-virtual thunk to nsComponentManagerImpl::RegisterService(nsID const&, nsISupports*) ()
     at ../../dist/include/string/nsTDependentSubstring.h:62
 62          {
 (gdb) step
 nsComponentManagerImpl::RegisterService (this=0x28b1846d, aClass=@0xbfbfa288, 
     aService=0x4) at nsComponentManager.cpp:2134
 2134   {
 (gdb) step
 245         : nsAutoLockBase((void*)mon, eAutoMonitor),
 (gdb) print this
 $8 = (nsComponentManagerImpl * const) 0x8089b76
 
 


More information about the freebsd-gnome mailing list