Sunday, February 10, 2008

Java 6 & AMD64

I've noticed that Java 6 update 4 for amd64 always crashes in arbitrary places (for instance, eclipse crashes compiling a class). Whenever you need to use Java 6 Update 4 on amd64 but it keeps crashing, use -Djava.compiler=none - to disable Java6's buggy JIT. In a case your requirements are not Java 6 you can use Java 5 update 14 on amd 64 for it looks stable.

Current thread (0x00002aab2d10e800): JavaThread "CompilerThread1" daemon [_thread_in_native, id=20462, stack(0x00000000406b2000,0x00000000407b3000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000000000000

Registers:
RAX=0x0000000000000000, RBX=0x00002aab311cc4d8, RCX=0x00002aab3137e9b0, RDX=0x0000000000000046
RSP=0x00000000407aee70, RBP=0x00000000407aeee0, RSI=0x00002aab3137e9b0, RDI=0x00002aab311cc4d8
R8 =0x00002aab3137ea08, R9 =0x00002aab3137e9b0, R10=0x00002aab3137e9b0, R11=0x0000000000000000
R12=0x00002aab311cc4a0, R13=0x0000000000000000, R14=0x00002aab2cd3b870, R15=0x0000000000000001
RIP=0x00002b5f70ae122a, EFL=0x0000000000010246, CSGSFS=0x0000000000000033, ERR=0x0000000000000004
TRAPNO=0x000000000000000e

Top of Stack: (sp=0x00000000407aee70)
0x00000000407aee70: 00002aab30548b88 00000001ffffffff
0x00000000407aee80: 00002aab3137e9b0 0000000270a85331
0x00000000407aee90: 00002aab30548b80 00000007407afaa0
0x00000000407aeea0: 00000000407afb68 01000000000004a7
0x00000000407aeeb0: 00000000407afaa0 00002b5f7112a4f0
0x00000000407aeec0: 00000000407afaa0 00000000407af030
0x00000000407aeed0: 00000000407aeff0 00000000407aefc0
0x00000000407aeee0: 00000000407af100 00002b5f70ae076c
0x00000000407aeef0: 00000000407afb68 00000000407af0b0
0x00000000407aef00: 00002aab330b0fb0 00002aab30000020
0x00000000407aef10: 00000000407aef80 00002b5f711438d0
0x00000000407aef20: 00002aab307d8a20 0000000000000151
0x00000000407aef30: 00000000407afbc0 00002b5f70608bbc
0x00000000407aef40: 00000000407b2950 00000000407aef80
0x00000000407aef50: 00002b5f71146040 00002aab3100b990
0x00000000407aef60: 0000000000000151 00002b5f70f1a9d2
0x00000000407aef70: 0000000040110b90 00002b5f70f1aaa1
0x00000000407aef80: 00000000407b2950 00000000407aefc0
0x00000000407aef90: 00002b5f71146040 0000000000007fe8
0x00000000407aefa0: 00002aab307f5d10 00002b5f70f1a9d2
0x00000000407aefb0: 0000000040110b90 00002b5f70f1aaa1
0x00000000407aefc0: 00002b5f7112a4f0 00002b5f0000000e
0x00000000407aefd0: 00000000407b1450 00000000407afaa0
0x00000000407aefe0: 00000000000008c8 00002aab2d10ec70
0x00000000407aeff0: 000000000000000d 00000000407b1450
0x00000000407af000: 00002aab32c78490 00002b5f70a84d00
0x00000000407af010: 00002aab311bd4b0 00000000000004a8
0x00000000407af020: 00000000407af0b0 00002aab332443e0
0x00000000407af030: 000000000000000c 00000000407b1450
0x00000000407af040: 00002aab3178f090 00002aab31ce1aa0
0x00000000407af050: 00002aab3184eb70 00002aab3184f6b0
0x00000000407af060: 00002aab330c8c60 00000000407afbc0

Instructions: (pc=0x00002b5f70ae122a)
0x00002b5f70ae121a: 48 89 cf 41 ff 95 80 00 00 00 48 89 df 49 89 c5
0x00002b5f70ae122a: 8b 00 41 21 44 24 38 41 8b 45 04 21 43 04 41 8b
Stack: [0x00000000406b2000,0x00000000407b3000], sp=0x00000000407aee70, free space=1011k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1f122a]
V [libjvm.so+0x1f076c]
V [libjvm.so+0x244525]
V [libjvm.so+0x241035]
V [libjvm.so+0x1e05c7]
V [libjvm.so+0x248ec8]
V [libjvm.so+0x248866]
V [libjvm.so+0x62a3f9]
V [libjvm.so+0x6246a1]
V [libjvm.so+0x505eea]


Current CompileTask:
C2:581 org.eclipse.core.internal.dtree.DataTreeNode.forwardDeltaWith([Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode;[Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode;Lorg/eclipse/core/internal/dtree/IComparator;)[Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode; (469 bytes)

Saturday, February 2, 2008

Debian + Eclipse + Java + AMD64

This is for those who use debian on amd64 with java from package . If you have a problem running eclipse (exit code=13 or alike) just install sun's java and enjoy! There is a something wrong with the java package in debian (sun-java6-*). I've spent two days trying get it to work.