[Bug 37389] 64-bit Raptor Chess Interface app v98u3f5 crashes on startup (64-bit Java 6u24 JVM with broken mixed mode execution)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Oct 12 15:58:08 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=37389

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |download, win64
             Status|UNCONFIRMED                 |NEW
                URL|                            |https://raptor-chess-interf
                   |                            |ace.googlecode.com/files/Ra
                   |                            |ptor98u3f5_w64.exe
                 CC|                            |focht at gmx.net
            Summary|The program                 |64-bit Raptor Chess
                   |Raptor98u3f5_w64.exe        |Interface app v98u3f5
                   |crashes on launch           |crashes on startup (64-bit
                   |                            |Java 6u24 JVM with broken
                   |                            |mixed mode execution)
     Ever confirmed|0                           |1

--- Comment #2 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming, there is still a crash with recent Wine 1.7.28 - but in different
way.

You Wine version 1.6.x is definitely too old.

Win64 apps are still kind of hit-and-miss.
In various cases you are better off with the 32-bit version of the app unless
you want to suffer.

The installer will download/install 64-bit Java 1.6 (JRE) on its own.

--- snip ---
$ pwd
/home/focht/wine64/drive_c/Program Files (x86)/Raptor
...
$ file *.exe
elevate.exe:   PE32+ executable (console) x86-64, for MS Windows
Raptor.exe:    PE32+ executable (GUI) x86-64, for MS Windows
SayStatic.exe: PE32 executable (console) Intel 80386, for MS Windows
Uninstall.exe: PE32 executable (GUI) Intel 80386, for MS Windows
--- snip ---

One can bypass the 64-bit executable (which hosts the JVM) for better diagnosis
as follows:

--- snip ---
$ wine "c:\\program files\\Java\\jre6\\bin\\java.exe" -verbose:jni
-verbose:class -Xcheck:jni -jar "C:\\Program Files (x86)\\Raptor\\updater.jar"
--- snip ---

I added more verbosity.

There is a crash in the JVM seen on terminal:

--- snip ---
...
[Loaded sun.nio.cs.US_ASCII from C:\program files\Java\jre6\lib\rt.jar]
[Loaded sun.nio.cs.US_ASCII$Decoder from C:\program files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.DNSName from C:\program files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.ExtendedKeyUsageExtension from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.KeyUsageExtension from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.NetscapeCertTypeExtension from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.NetscapeCertTypeExtension$MapEntry from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.SubjectAlternativeNameExtension from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.SubjectKeyIdentifierExtension from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.KeyIdentifier from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.AuthorityKeyIdentifierExtension from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.AuthorityInfoAccessExtension from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.x509.AccessDescription from C:\program
files\Java\jre6\lib\rt.jar]
[Loaded sun.security.pkcs.SignerInfo from C:\program
files\Java\jre6\lib\rt.jar]
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (sharedRuntime.cpp:711), pid=34, tid=36
#  guarantee(cb->is_adapter_blob() || cb->is_method_handles_adapter_blob())
failed: exception happened outside interpreter, nmethods and vtable stubs (1)
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode windows-amd64
compressed oops)
fixme:msvcrt:MSVCRT__wsopen_s : pmode 0x01b6 ignored
# An error report file with more information is saved as:
# C:\Program Files (x86)\Raptor\hs_err_pid34.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
--- snip ---

The Java VM writes a crash dump:

--- snip ---
...
Current thread (0x0000000000545800):  JavaThread "main" [_thread_in_Java,
id=36, stack(0x0000000000650000,0x0000000000750000)]

Stack: [0x0000000000650000,0x0000000000750000]
[error occurred during error reporting (printing stack bounds), id 0xc0000005]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
v  blob 0x000000000078707f
j 
java.util.jar.Attributes.putValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+13
j 
java.util.jar.Attributes.read(Ljava/util/jar/Manifest$FastInputStream;[B)V+301
j  java.util.jar.Manifest.read(Ljava/io/InputStream;)V+21
j 
sun.security.util.SignatureFileVerifier.processImpl(Ljava/util/Hashtable;Ljava/util/List;)V+20
j 
sun.security.util.SignatureFileVerifier.process(Ljava/util/Hashtable;Ljava/util/List;)V+9
j 
java.util.jar.JarVerifier.processEntry(Lsun/security/util/ManifestEntryVerifier;)V+387
j 
java.util.jar.JarVerifier.update(I[BIILsun/security/util/ManifestEntryVerifier;)V+39
j  java.util.jar.JarFile.initializeVerifier()V+107
j 
java.util.jar.JarFile.getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;+25
j  sun.misc.URLClassPath$JarLoader$2.getInputStream()Ljava/io/InputStream;+11
j  sun.misc.Resource.cachedInputStream()Ljava/io/InputStream;+9
j  sun.misc.Resource.getByteBuffer()Ljava/nio/ByteBuffer;+1
j 
java.net.URLClassLoader.defineClass(Ljava/lang/String;Lsun/misc/Resource;Z)Ljava/lang/Class;+182
j 
java.net.URLClassLoader.access$000(Ljava/net/URLClassLoader;Ljava/lang/String;Lsun/misc/Resource;Z)Ljava/lang/Class;+4
j  java.net.URLClassLoader$1.run()Ljava/lang/Object;+44
v  ~StubRoutines::call_stub
j 
java.security.AccessController.doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;+0
j  java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;+13
j  java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;+47
j  java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;+3
v  ~StubRoutines::call_stub
j  java.lang.Class.getDeclaredMethods0(Z)[Ljava/lang/reflect/Method;+0
j  java.lang.Class.privateGetDeclaredMethods(Z)[Ljava/lang/reflect/Method;+72
j 
java.lang.Class.getMethod0(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;+4
j 
java.lang.Class.getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;+11
j  raptor.updater.UpdateManager.invokeMain([Ljava/lang/String;)V+53
j  raptor.updater.UpdateManager.main([Ljava/lang/String;)V+63
v  ~StubRoutines::call_stub
...
---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x0000000000641800 JavaThread "Low Memory Detector" daemon [_thread_blocked,
id=48, stack(0x0000000004ed0000,0x0000000004fd0000)]
  0x000000000062d000 JavaThread "CompilerThread1" daemon [_thread_blocked,
id=47, stack(0x0000000004dd0000,0x0000000004ed0000)]
  0x0000000000627000 JavaThread "CompilerThread0" daemon [_thread_in_native,
id=46, stack(0x0000000004cd0000,0x0000000004dd0000)]
  0x0000000000624800 JavaThread "Attach Listener" daemon [_thread_blocked,
id=45, stack(0x0000000004bd0000,0x0000000004cd0000)]
  0x0000000000623000 JavaThread "Signal Dispatcher" daemon [_thread_blocked,
id=44, stack(0x0000000004ad0000,0x0000000004bd0000)]
  0x0000000000604800 JavaThread "Finalizer" daemon [_thread_blocked, id=43,
stack(0x00000000049d0000,0x0000000004ad0000)]
  0x0000000000602800 JavaThread "Reference Handler" daemon [_thread_blocked,
id=42, stack(0x00000000048d0000,0x00000000049d0000)]
=>0x0000000000545800 JavaThread "main" [_thread_in_Java, id=36,
stack(0x0000000000650000,0x0000000000750000)]

Other Threads:
  0x00000000005fc000 VMThread [stack: 0x00000000047d0000,0x00000000048d0000]
[id=41]
  0x0000000000644000 WatcherThread [stack:
0x0000000004fd0000,0x00000000050d0000] [id=49]
...
Dynamic libraries:
0x0000000000400000 - 0x000000000042e000     C:\program
files\Java\jre6\bin\java.exe
0x00007f78b9ac0000 - 0x00007f78b9dbb000     C:\windows\system32\ntdll.dll
0x000000007b820000 - 0x000000007bc88000     C:\windows\system32\KERNEL32.dll
0x00007f78b30f0000 - 0x00007f78b3370000     C:\windows\system32\advapi32.dll
0x000000006d7f0000 - 0x000000006def4000     C:\program
files\Java\jre6\bin\server\jvm.dll
0x00007f78b2d40000 - 0x00007f78b30e1000     C:\windows\system32\user32.dll
0x00007f78b29b0000 - 0x00007f78b2d18000     C:\windows\system32\gdi32.dll
0x00007f78b2780000 - 0x00007f78b2995000     C:\windows\system32\version.dll
0x00007f78b24c0000 - 0x00007f78b277a000     C:\windows\system32\winmm.dll
0x00007f78b2110000 - 0x00007f78b24b0000     C:\windows\system32\ole32.dll
0x00007f78b1e50000 - 0x00007f78b20e5000     C:\windows\system32\rpcrt4.dll
0x00007f78b1c20000 - 0x00007f78b1e3f000     C:\windows\system32\msacm32.dll
0x00007f78b1960000 - 0x00007f78b1c0f000     C:\windows\system32\msvcrt.dll
0x000000006d760000 - 0x000000006d76e000     C:\program
files\Java\jre6\bin\verify.dll
0x000000006d3b0000 - 0x000000006d3d7000     C:\program
files\Java\jre6\bin\java.dll
0x000000006d310000 - 0x000000006d31a000     C:\program
files\Java\jre6\bin\hpi.dll
0x00007f78b16f0000 - 0x00007f78b18f5000     C:\windows\system32\psapi.dll
0x000000006d7b0000 - 0x000000006d7c2000     C:\program
files\Java\jre6\bin\zip.dll
--- snip ---

It doesn't matter if "server" or "client" type VM is used.

Trace log around crash location doesn't reveal much as this is mostly native/IL
code from JVM, with few Win64/CRT API callouts.

--- snip ---
...
0024:trace:msvcrt:pf_printf_a Format is: "[Loaded %s from %s]\n"
0024:Ret  msvcrt._vsnprintf() retval=00000051 ret=6dbe53b1
0024:Call msvcrt._write(00000001,0074af00,00000051) ret=6dbe6b1f
0024:Call KERNEL32.WriteFile(00000004,0074af00,00000051,0074a464,00000000)
ret=7f5e46487455
[Loaded sun.security.pkcs.SignerInfo from C:\program
files\Java\jre6\lib\rt.jar]
0024:Ret  KERNEL32.WriteFile() retval=00000001 ret=7f5e46487455 
0024:Ret  msvcrt._write() retval=00000051 ret=6dbe6b1f 
...
0024:Call msvcrt.strrchr(005460e0
"sun/security/pkcs/SignerInfo.class",0000002f) ret=6d8e1b59
...
0024:Call msvcrt.strncmp(005460e0 "sun/security/pkcs/SignerInfo.class",05268770
"sun/security/pkcs/",00000012) ret=6d8e1bc4 
...
0024:Call msvcrt._vsnprintf(0074b2f0,000007d0,6dd78630 "0x%016I64x",0074bb00)
ret=6dbe53b1
0024:trace:msvcrt:pf_printf_a Format is: "0x%016I64x"
0024:Ret  msvcrt._vsnprintf() retval=00000012 ret=6dbe53b1 
0024:Call msvcrt.strncpy(053c8740,0074b2f0 "0x000000000000bbbb",00000012)
ret=6dbe4e70 
...
0024:Call msvcrt._vsnprintf(0074b2f0,000007d0,6dd78630 "0x%016I64x",0074bb00)
ret=6dbe53b1
0024:trace:msvcrt:pf_printf_a Format is: "0x%016I64x"
0024:Ret  msvcrt._vsnprintf() retval=00000012 ret=6dbe53b1 
...
0024:Call msvcrt.strncpy(053c8752,0074b2f0 "0x000000000000bbbb",00000012)
ret=6dbe4e70
0024:Ret  msvcrt.strncpy() retval=053c8752 ret=6dbe4e70
0024:Call msvcrt.strncpy(053c8840,053c8740
"0x000000000000bbbb0x000000000000bbbb",00000024) ret=6dbe4f21
0024:Ret  msvcrt.strncpy() retval=053c8840 ret=6dbe4f21
0024:Call msvcrt._vsnprintf(0074bd80,00000100,6ddabde8
"%s(%s)@0x%016I64x",0074bb08) ret=6da6a1e2
0024:trace:msvcrt:pf_printf_a Format is: "%s(%s)@0x%016I64x"
0024:Ret  msvcrt._vsnprintf() retval=00000049 ret=6da6a1e2 
...
0024:Call msvcrt.memcpy(00545fd0,0074b950,00000080) ret=6dc3bc40
0024:Ret  msvcrt.memcpy() retval=00545fd0 ret=6dc3bc40
0024:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7b7f50 ip=7b7f50
tid=0024
0024:trace:seh:raise_exception  info[0]=0000000000000000
0024:trace:seh:raise_exception  info[1]=0000000000000008
0024:trace:seh:raise_exception  rax=0000000000000000 rbx=000000000074c490
rcx=0000000000000001 rdx=000000000074c400
0024:trace:seh:raise_exception  rsi=00000000efc97188 rdi=0000000000755a0e
rbp=0000000000000000 rsp=000000000074c490
0024:trace:seh:raise_exception   r8=0000000040000000  r9=00000007d6abe818
r10=000000006de816f0 r11=00000000007b0200
0024:trace:seh:raise_exception  r12=0000000000000000 r13=00000000007b7f50
r14=000000000074c488 r15=0000000000545800
0024:trace:seh:RtlVirtualUnwind type 1 rip 7b7f50 rsp 74c490
0024:trace:seh:dump_unwind_info **** func 0-3000000
0024:trace:seh:dump_unwind_info unwind info at 0x75017c flags 1 prolog 0x0
bytes function 0x750000-0x3750000
0024:trace:seh:dump_unwind_info     handler 0x750160 data at 0x750184
0024:trace:seh:call_handler calling handler 0x750160 (rec=0x74c360,
frame=0x74c490 context=0x74b6e0, dispatch=0x74bbb0)
0024:trace:seh:call_handler handler at 0x750160 returned 0
... 
--- snip ---

Playing with more "advanced" virtual machine options I found that forcing the
JVM into interpreted mode execution lets the app start (the default is mixed
mode execution).

So it looks like a problem with Java SE 1.6 JIT compiler code generation.
That feature was introduced during that time and the implementation considered
kinda unstable in early versions.

For further testing I downloaded the most recent available JRE's and gradually
"downgraded": 

'Java SE Runtime Environment 8u20' ->
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

-> app works out of the box in 64-bit WINEPREFIX

'Java SE Runtime Environment 7u67' ->
http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html

-> app works out of the box in 64-bit WINEPREFIX

'Java Runtime Environment 1.6.0.43 (64-bit)' ->
http://filehippo.com/download_jre_64/14479/

-> app works out of the box in 64-bit WINEPREFIX

So what does the app bootstrapper actually download?

-> http://sdlc-esd.sun.com/ESD6/JSCDL/jdk/6u24-b07/jre-6u24-windows-x64.exe
(2011-02-15)

I don't think we should bother further here. It's likely the early mixed mode
implementation at fault here that works by chance (no tests on 64-bit
Windows?).

Use one of the Java versions/installers I posted here as prerequisite before
installing the app in 64-bit WINEPREFIX.

$ sha1sum Raptor98u3f5_w64.exe 
4caf7cac75c4f342d7ab42eced5221ac3cc5dc5e  Raptor98u3f5_w64.exe

$ du -sh Raptor98u3f5_w64.exe
44M    Raptor98u3f5_w64.exe

$ wine --version
wine-1.7.28-90-ga71f25d

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list