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.

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
>>>>
>>>>
>>> _______________________________________________
>>> Devl mailing list
>>> Devl at freenetproject.org
>>> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
>> _______________________________________________
>> Devl mailing list
>> Devl at freenetproject.org
>> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
_______________________________________________
Devl mailing list
Devl at freenetproject.org
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to