On Saturday 29 August 2009 18:11:31 Ximin Luo wrote: > New build: > > http://cloud.github.com/downloads/freenet/contrib-staging/freenet-ext.27-pre6-5-g23bd9ff.jar > > This one includes 64-bit FEC binaries for windows x64. It has been tested on > windows XP 64-bit with both 32-bit and 64-bit Sun JVMs, and on Debian > GNU/Linux > squeeze/sid with a 64-bit openJDK JVM. > > To run it on a 64-bit JVM on windows, point wrapper.conf to the exact path of > 64-bit java.exe - wrapper will take simply "java" to mean the 32-bit java.exe, > since the wrapper is itself 32-bit. You'll get an "Attempting to deploy Native > FEC for win32-x86_64" message in your wrapper.log if you've set it up right.
Hmmmm, so all we have to do to make the wrapper support win64 properly is fix the JVM path autodetection to pick up 64-bit JVMs? > > The FreeBSD-x86 binary has not been recompiled wiht the latest changes, but > should still work (no JNI ABI changes were made). > > X > > Ximin Luo wrote: > > latest version in contrib fixes these crashes on my machine > > > > http://cloud.github.com/downloads/freenet/contrib-staging/freenet-ext.27-pre6-4-gbe60d2f.jar > > > > please test it. > > > > X > > > > Ximin Luo wrote: > >> just reproduced this myself on a 64bit windows xp with a 32bit JVM, with > >> the > >> exact same error. should be able to debug it a bit quicker now. > > > >> X > > > >> Ximin Luo wrote: > >>> # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x69141741, pid=328, > >>> tid=5424 > >>> siginfo: ExceptionCode=0xc0000005, reading address 0x00000000 > >>> > >>> libfec8.dll: > >>> 6914173e: 8b 55 dc mov -0x24(%ebp),%edx > >>> 69141741: 03 02 add (%edx),%eax > >>> 69141743: 89 07 mov %eax,(%edi) > >>> > >>> This corresponds to > >>> > >>> fec8-jinterf.c: > >>> 170: inarr[i] += localDataOff[i]; > >>> > >>> with i=0, on the first run of the loop (which has been unrolled), and > >>> > >>> %edi points to inarr > >>> %eax has the same value as inarr[0] > >>> -0x24(%ebp) points to localDataOff > >>> > >>> The register dump has EDX=0x00000000, so localDataOff is a null pointer, > >>> but > >>> code earlier on in the function should prevent this: > >>> > >>> libfec8.dll: > >>> 6914133c: 89 45 dc mov %eax,-0x24(%ebp) > >>> 6914133f: 83 c4 10 add $0x10,%esp > >>> 69141342: 85 c0 test %eax,%eax > >>> 69141344: 0f 84 02 01 00 00 je 6914144c <RETURN> > >>> > >>> fec8-jinterf.c: > >>> 147: if (localDataOff == NULL) { > >>> 148: return; /* exception occured */ > >>> 149: } > >>> > >>> and it's a local variable so can't be affected by other threads. > >>> > >>> also the register dump has: ESP=0x207dfa04, EBP=0x207df9f8; EBP < ESP > >>> should > >>> not be happening on windows... > >>> > >>> The only thing I can think of is that the JNI function PushLocalFrame is > >>> screwing with the EBP register, for some reason... > >>> > >>> Can you try running this on 32-bit windows? > >>> > >>> X > >>> > >>> Ximin Luo wrote: > >>>> Can you run it several more times and attach some more hs_err logs? > >>>> > >>>> Also, do you have any other JVMs you can try this on? Preferably > >>>> 32-JVM-on-64-OS ones. > >>>> > >>>> X -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 835 bytes Desc: This is a digitally signed message part. URL: <https://emu.freenetproject.org/pipermail/devl/attachments/20090831/4d9599f4/attachment.pgp>
