Benjamin, did Kevan's proposed fix work for your scenario?
If so, we need to know ASAP, so we can pull the fix (GERONIMO-3930) into the 2.1.1 release....


-Donald


Kevan Miller wrote:

On Mar 14, 2008, at 6:25 AM, Tomasz Mazan wrote:


Hi Guys
I got very ugly (and blocking) issue with HOWL.
After processing 20k request to my webservice whose are translated to ~120k XA transactions (postgres + jms) Geronimo hangs up and does not respond on requests via HTTP, request to JMS engine (from HermesJMS) and ignores tries
to shutdown server.

I stopped Geronimo with kill -9 and tried to start it again and got
exception:

Module 11/69 org.apache.geronimo.configs/activemq-ra/2.1-SNAPSHOT/car
10:22:15,325 ERROR [GBeanInstanceState] Error while starting; GBean is now
in the FAILED state:
abstractName="org.apache.geronimo.configs/transaction/2.1-SNAPSHOT/car?ServiceModule=org.apache.geronimo.configs/transaction/2.1-SNAPSHOT/car,j2eeType=TransactionLog,name=HOWLTransactionLog"
java.lang.IllegalArgumentException: Negative position
       at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:613)
       at
org.objectweb.howl.log.BlockLogBuffer.read(BlockLogBuffer.java:412)
       at
org.objectweb.howl.log.LogFileManager.read(LogFileManager.java:641)

Hi Beniamin,
Looks like we're configuring HOWL to create an infinite number of blocks in the tx log files. I think we need to limit this to prevent this IllegalArgumentException. Try adding this to your config.xml:

<module name="org.apache.geronimo.configs/transaction/2.1-SNAPSHOT/car">
        <gbean name="HOWLTransactionLog">
            <attribute name="maxBlocksPerFile">65534</attribute>
        </gbean>
    </module>

By my calculations, 65,535 blocks * 32 kbytes per block = 2**31 - 1. I believe HOWL stores a file header in each log file. So, need to leave some room for that, also...

Actually, might make sense to knock the maxBlocksPerFile size down even further for testing purposes... Also, would be great if you could run these tests with the latest AMQ and OpenEJB fixes to avoid the IllegalStateException's.

I'm not entirely sure why your server became unresponsive. So, we may have some additional work to do...

--kevan


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to