Closed Bug 78220 Opened 23 years ago Closed 12 years ago

Crash launching browser using Purify with Java

Categories

(Core Graveyard :: Java: OJI, defect, P3)

x86
Windows NT
defect

Tracking

(Not tracked)

RESOLVED INVALID
Future

People

(Reporter: namachi, Assigned: James.Melvin)

References

Details

(Keywords: crash, Whiteboard: [needs retesting with Purify])

I am able reproduce everytime. When I start the Browser without Purify 
it works fine. When I try to launch it using Purify it crashes immediately.
I get the Talkback Dialog. I have submitted a couple of crash and Here is 
the stack trace I got from talkback.

Shiva

PURERT.DLL + 0xf08eb (0x3f0f08eb)
jpins32.dll + 0xefb3 (0x502eefb3)
nsPluginHostImpl::GetPluginFactory
[d:\builds\seamonkey\mozilla\modules\plugin\nglsrc\nsPluginHostImpl.cpp, line 3355]
nsJVMManager::StartupJVM
[d:\builds\seamonkey\mozilla\modules\oji\src\nsJVMManager.cpp, line 608]
nsJVMManager::MaybeStartupLiveConnect
[d:\builds\seamonkey\mozilla\modules\oji\src\nsJVMManager.cpp, line 784]
nsJSEnvironment::GetScriptingEnvironment
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 1447]
nsGetInterface::operator()
[d:\builds\seamonkey\mozilla\xpcom\base\nsIInterfaceRequestor.cpp, line 39]
nsCOMPtr_base::assign_from_helper
[d:\builds\seamonkey\mozilla\xpcom\base\nsCOMPtr.cpp, line 66]
nsAppShellService::GetHiddenWindowAndJSContext
[d:\builds\seamonkey\mozilla\xpfe\appshell\src\nsAppShellService.cpp, line 714]
nsAppShellService::SetXPConnectSafeContext
[d:\builds\seamonkey\mozilla\xpfe\appshell\src\nsAppShellService.cpp, line 178]
nsAppShellService::CreateHiddenWindow
[d:\builds\seamonkey\mozilla\xpfe\appshell\src\nsAppShellService.cpp, line 248]
netscp6.exe + 0x167c (0x0040167c)
netscp6.exe + 0x11b8 (0x004011b8)
netscp6.exe + 0x2b92 (0x00402b92)
PURERT.DLL + 0x4053 (0x3f004053)
netscp6.exe + 0x5b061 (0x0045b061)
No JS Engine issues apparent in trace; reassigning to Plug-ins component - 
Assignee: rogerl → av
Component: Javascript Engine → Plug-ins
QA Contact: pschwartau → shrir
I guess this should go away with the fix for loading Java lazily. Shrirang, do 
you have the bug number handily to mark dependency or even maybe dup?

*** This bug has been marked as a duplicate of 26516 ***
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → DUPLICATE
Bug No 26516 status says it resolved fixed. But, this crash is still happening.
Until then I want this bug should be opened. I changing this as depends on the
bug 26516. I want to track this crash.



Status: RESOLVED → REOPENED
Depends on: 26516
Resolution: DUPLICATE → ---
moving to future, this is will not be something a typical user would encounter.
Priority: -- → P4
Target Milestone: --- → Future
If Java is causing a problem with Purify and you can't disable it, you can either:

a) Uninstall it through the control panel

b) Remove the "plugin.scan.SunJRE" pref from winpref.js
Summary: Crash launching browser using Purify. → Crash launching browser using Purify with Java
Here's the stack, in case you ever fix this.

[W] PAR: Insufficient parameters match format string at (0x13f940) {1 occurrence}
    Call location
    sscanf         [MSVCRT.DLL]
    Java_sun_plugin_security_TrustDecider_isAllPermissionGranted [jpins32.dll]
    nsPluginHostImpl::GetPluginFactory(char const*,nsIPlugin * *)
[nsPluginHostImpl.cpp:4476]
                              (nsIFactory**)&pluginTag->mEntryPoint);
            plugin = pluginTag->mEntryPoint;
            if (plugin != NULL)
 =>           plugin->Initialize();
          }
          else
          {
    nsJVMManager::StartupJVM(void) [nsJVMManager.cpp:665]
        nsCOMPtr<nsIPlugin> f =
                 do_GetService(NS_INLINE_PLUGIN_CONTRACTID_PREFIX
NS_JVM_MIME_TYPE, &err);
        if (NS_FAILED(err) || !f) {
 =>         err = pluginHost->GetPluginFactory(NS_JVM_MIME_TYPE, &pluginFactory);
        }
        else {
            pluginFactory  = f;
    nsJVMManager::MaybeStartupLiveConnect(void) [nsJVMManager.cpp:901]
    
        do {
            static PRBool registeredLiveConnectFactory =
NS_SUCCEEDED(JSJ_RegisterLiveConnectFactory());
 =>         if (IsLiveConnectEnabled() && StartupJVM() == nsJVMStatus_Running) {
                    JVM_InitLCGlue();
                    nsIJVMPlugin* plugin = GetJVMPlugin();
                    if (plugin) {
    nsJVMManager::StartupLiveConnect(JSRuntime *,int&) [nsJVMManager.h:142]
             */
            NS_IMETHOD
            StartupLiveConnect(JSRuntime* runtime, PRBool& outStarted)
     =>     {
                outStarted = MaybeStartupLiveConnect();
                return NS_OK;
            }
    nsJSEnvironment::Init(void) [nsJSEnvironment.cpp:1700]
          // LiveConnect?
          if (manager) {
            PRBool started = PR_FALSE;
     =>     rv = manager->StartupLiveConnect(sRuntime, started);
          }
        
          isInitialized = NS_SUCCEEDED(rv);
    NS_CreateScriptContext(nsIScriptGlobalObject *,nsIScriptContext * *)
[nsJSEnvironment.cpp:1748]
        NS_CreateScriptContext(nsIScriptGlobalObject *aGlobal,
                               nsIScriptContext **aContext)
        {
     =>   nsresult rv = nsJSEnvironment::Init();
          NS_ENSURE_SUCCESS(rv, rv);
        
          nsCOMPtr<nsIScriptContext> scriptContext;
    nsDOMSOFactory::NewScriptContext(nsIScriptGlobalObject *,nsIScriptContext *
*) [nsDOMFactory.cpp:152]
        NS_IMETHODIMP
        nsDOMSOFactory::NewScriptContext(nsIScriptGlobalObject *aGlobal,
                                         nsIScriptContext **aContext)
     => {
          return NS_CreateScriptContext(aGlobal, aContext);
        }
        
    ???            [ip=0x04652c88]
-->OJI
Assignee: av → joe.chou
Status: REOPENED → NEW
Component: Plug-ins → OJI
QA Contact: shrir → pmac
The workarounds described in http://bugzilla.mozilla.org/show_bug.cgi?
id=78220#c6

do not work for me. My uninstall of Java isn't clean (not removed from my 
add/remove programs applet in Win2k).  Removing the appropriate lines from 
winpref.js doesn't work, either.  Still seeing the same crash. My work for Mail 
and Navigator regarding FMM, UMR and leaks is blocked by this bug.  Raising 
severity.  Joe, would you please look at this bug?  Thanks.
Severity: normal → major
Keywords: nsbeta1
Sorry all, I spoke too soon.  I ran a commercial build after I changed the pref
and built opt, and that seems to have reset my value in winpref.js.

Removing that pref does indeed cause this to work again.  Restoring bug state.
Severity: major → normal
I uninstalled 1.4 which left 1.3.x and all is fine. This looks like a bug in 1.4
that in most cases is harmless, but apparently Purify is tripping up. I think it
is also causing us very sporadic startup crashes in some cases as well, but not
postive on this.
The patch in bug 128366 causes us to lazily load plugins and Java. Could it help
in this bug?
Most likely, and while I've gotten used to the workaround, that would really
help me in my Purify efforts.  Currently, everytime I run a commercial build,
then switch to my opt Mozilla build under Purify, I have to remove the Java
lines in winprefs.js
Beta 1.4.1 of the JRE doesn't crash on my system. I filed a bug with Sun for
1.4. I'm wondering if this is causing very intermittant crashes in other cases.
Bug 156165 seems to exhibit the same behavior. I'm waiting to see if the Beta
1.4.1 version solves that problem.

Also this seems to be a dupe of bug 75827 or at least very similar. I love
Comment #9 in that bug. Probably can be translated too, the JVM has some issues
that Purify exposes.
While the beta allows me to startup, if I open the Java console or go to a page
with a Java app, Mozilla terminates. Looks like the JVM tries to initialize but
then fires a signal to terminate the process. The Purify output is very strange.
I get little to no information before Purify starts looking for leaks, then
after the leak check is performed I get a slew of Invalid Pointer Write errors
with the following stack.

    _DllMainCRTStartup [crtdll.obj]
    LdrShutdownProcess [ntdll.dll]
    ExitProcess    [KERNEL32.dll]
    ExitProcess    [KERNEL32.DLL]
    cexit          [MSVCRT.DLL]
    ???            [jvm.dll ip=0x6d39dd0f]
    JVM_FindSignal [jvm.dll]
    ???            [jvm.dll ip=0x6d377381]
    ???            [jvm.dll ip=0x6d377ae3]
    ???            [jvm.dll ip=0x6d3918a8]
    JNI_CreateJavaVM [jvm.dll]
    ???            [jpishare.dll ip=0x05d016c8]
    ???            [jpishare.dll ip=0x05d012b2]
    ???            [jpishare.dll ip=0x05d0104c]
    ???            [jpins32.dll ip=0x6d763b61]
    ProxyJNIEnv::ProxyJNIEnv(nsIJVMPlugin *,nsISecureEnv *) [ProxyJNI.cpp:1674]
    CreateProxyJNI(nsIJVMPlugin *,nsISecureEnv *) [ProxyJNI.obj:1694]
    JVM_GetJNIEnv  [jvmmgr.cpp:292]
    ???            [ip=0x04b252c8]
    GetConsole     [jvmmgr.cpp:144]
.
Blocks: 145287
Maybe as a workaround you could use Valgrind ?

http://developer.kde.org/~sewardj/
This last issue with the beta JRE is going to be particular troublesome as it's
not going to show up in any talkback builds since this is just a "forced"
shutdown. If someone knows of any persistent log that might record why the JVM
is terminating the process let me know and I'll check them.
Priority: P4 → P2
Re-assign to Java group for further investigation.
Assignee: joe.chou → James.Melvin
Can someone point me the URL for purify so that I can reproduce the issue?

Xiaobin, Rational Purify is a very expensive desktop application.  See
http://www.rational.com/products/pqc/index.jsp for more details.  It runs on
Win32 and Solaris.
Using Rational Purify with Mozilla 1.0 does not cause crash. 
Status: NEW → RESOLVED
Closed: 23 years ago22 years ago
Resolution: --- → WORKSFORME
The purify version is 2002.05.20 Build 4425.
I still see this with the JRE 1.3 and Purify on Windows 2000 (same version as
Xiaobin).  I have to manually remove these lines:

// Locate Java by scanning the Sun JRE installation directory with a minimum version
// Note: Does not scan if security.enable_java is not true
pref("plugin.scan.SunJRE", "1.3");

from winpref.js before I run Purify.  Netscape 7 automatically places this pref
back in this profile if I use the same one.

Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Here's what I'm seeing on a branch debug build:

[I] Loading Purify'd WINMM.dll at 0x15f30000 (preferred 0x77570000)
[I] Loading Purify'd jvm.dll at 0x6d330000
[I] Loading Purify'd hpi.dll at 0x6d1d0000
[I] Summary of all memory leaks... {506254 bytes, 12046 blocks}
[E] IPR: Invalid pointer read in md_DetectWindowMove {2 occurrences}
[E] IPR: Invalid pointer read in md_DetectWindowMove {2 occurrences}
[E] IPR: Invalid pointer read in md_DetectWindowMove {2 occurrences}
[E] IPR: Invalid pointer read in md_DetectWindowMove {2 occurrences}
[I] Exiting with code 1 (0x00000001)
[I] Program terminated at 09/18/2002 19:55:19

I get a ton of errors, but no crashes when I run a trunk debug build. Below is
one example of more than 20k of errors.

[E] IPR: Invalid pointer read in strpbrk {9 occurrences}
        Reading 41 bytes from 0x00136e78 (1 byte at 0x00136ea0 illegal)
        Address 0x00136e78 is argument #1 of strpbrk
        Address 0x00136e78 points into a VirtualAlloc'd block 
        Thread ID: 0x770
        Error location
             [MSVCRT.DLL ip=0x580169aa]
             [MSVCRT.DLL ip=0x580125b9]
             [MSVCRT.DLL ip=0x58012597]
             [jvm.dll ip=0x6d3d5c81]
             [jvm.dll ip=0x6d376eaf]
             [jvm.dll ip=0x6d3777ad]
             [jvm.dll ip=0x6d39159c]
             [jvm.dll ip=0x6d3a9c62]
             [jpishare.dll ip=0x09021725]
             [jpishare.dll ip=0x0902130f]
             [jpishare.dll ip=0x0902104c]
             [jpins32.dll ip=0x6d773b61]
            ProxyJNIEnv::ProxyJNIEnv(nsIJVMPlugin *,nsISecureEnv *)
[ProxyJNI.cpp:1674]
            CreateProxyJNI(nsIJVMPlugin *,nsISecureEnv *) [ProxyJNI.cpp:1694]
            JVM_GetJNIEnv  [jvmmgr.cpp:292]
            GetConsole     [jvmmgr.cpp:144]
            JVM_ShowConsole [jvmmgr.cpp:158]
            nsJVMManager::ShowJavaConsole(void) [nsJVMManager.cpp:213]
            XPTC_InvokeByIndex [xptcinvoke.cpp:105]
           
XPCWrappedNative::CallMethod(XPCCallContext&,CallMode::XPCWrappedNative)
[xpcwrappednative.cpp:1994]

I also occasionally get messages that jvm.dll can't be found. I can't reproduce
this message reliably. Also I've uninstalled the 1.4.1rc and reinstalled.

I'm not sure what to make of all this. Basically running Purify and Java
together can't be done anymore even in debug mode. 
Oh, and I'm running the same version of Purify as stated in Comment #23
The reason jvm.dll is not found is that you should config the jvm correctly to
point to c:\progra~1\java\j2re1.4.1\bin\client\jvm.dll. I don't know why purify
can not be run inside jvm. Maybe for some security reason. However, you should
not see crash and that means that is no reason to keep this bug open.
QA Contact: pmac → petersen
Priority: P2 → P3
Word has it that the newest version of Purify works with java.  But does this
mean that you can use purify for java code?  Or is it that Purify is more
friendly when debugging an app that uses a java plugin?
By the definitions on <http://bugzilla.mozilla.org/bug_status.html#severity> and
<http://bugzilla.mozilla.org/enter_bug.cgi?format=guided>, crashing and dataloss
bugs are of critical or possibly higher severity.  Only changing open bugs to
minimize unnecessary spam.  Keywords to trigger this would be crash, topcrash,
topcrash+, zt4newcrash, dataloss.
Severity: normal → critical
adt: nsbeta1-
Keywords: nsbeta1nsbeta1-
Is this still an issue?
Whiteboard: purifyme
Whiteboard: purifyme → [needs retesting with Purify]
Product: Core → Core Graveyard
The OJI interface isn't supported any more, so let's close this bug.
Status: REOPENED → RESOLVED
Closed: 22 years ago12 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.