Trampoline must not be defined by the bootstrap classloader

1,753 views
Skip to first unread message

Chris Knight

unread,
Sep 12, 2014, 12:57:45 PM9/12/14
to lmax-di...@googlegroups.com
Hi,

I'm using Log4j2 with the async logger option and have included the disruptor 3.3.0 libs - all works fine running as a java main program.
However I get the following error when deploying and starting my EAR and WAR in WAS8.5.

Would anyone have any idea as to why this happens?

My pom.xml contains the following...
        <!-- logging -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-1.2-api</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-web</artifactId>
            <version>${log4j.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>${disruptor.version}</version>
        </dependency>

Thanks
Chris.

Michael Barker

unread,
Sep 12, 2014, 3:16:41 PM9/12/14
to lmax-di...@googlegroups.com
I think you forgot to include the error log.


--
You received this message because you are subscribed to the Google Groups "Disruptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lmax-disrupto...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Chris Knight

unread,
Sep 15, 2014, 5:16:22 AM9/15/14
to lmax-di...@googlegroups.com
Ah yes the crucial bit of information, sorry for the miss.  The error occurs when starting the WAS server but not every time...could it be due to start sequence...


[15/09/14 10:08:18:080 BST] 00000120 FatalExceptio E   Exception processing: 5273 org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapper@8a9ab4fd
                                 java.lang.Error: Trampoline must not be defined by the bootstrap classloader
    at sun.reflect.misc.Trampoline.<clinit>(MethodUtil.java:49)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:236)
    at java.lang.Class.forNameImpl(Native Method)
    at java.lang.Class.forName(Class.java:211)
    at org.apache.logging.log4j.core.util.Loader.initializeClass(Loader.java:285)
    at org.apache.logging.log4j.core.impl.ThrowableProxy.loadClass(ThrowableProxy.java:500)
    at org.apache.logging.log4j.core.impl.ThrowableProxy.toExtendedStackTrace(ThrowableProxy.java:621)
    at org.apache.logging.log4j.core.impl.ThrowableProxy.<init>(ThrowableProxy.java:146)
    at org.apache.logging.log4j.core.impl.Log4jLogEvent.getThrownProxy(Log4jLogEvent.java:323)
    at org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.format(ExtendedThrowablePatternConverter.java:64)
    at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
    at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:189)
    at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:53)
    at org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:52)
    at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:104)
    at org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:86)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
    at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:428)
    at org.apache.logging.log4j.core.async.AsyncLoggerConfig.asyncCallAppenders(AsyncLoggerConfig.java:118)
    at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:222)
    at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:207)
    at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:906)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:929)
    at java.lang.Thread.run(Thread.java:773)

[15/09/14 10:08:18:104 BST] 00000120 SystemErr     R Exception in thread "AsyncLoggerConfig-1" java.lang.RuntimeException: java.lang.Error: Trampoline must not be defined by the bootstrap classloader
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at com.lmax.disruptor.FatalExceptionHandler.handleEventException(FatalExceptionHandler.java:45)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:147)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:906)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:929)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at java.lang.Thread.run(Thread.java:773)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R Caused by: java.lang.Error: Trampoline must not be defined by the bootstrap classloader
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at sun.reflect.misc.Trampoline.<clinit>(MethodUtil.java:49)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at java.lang.J9VMInternals.initializeImpl(Native Method)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at java.lang.J9VMInternals.initialize(J9VMInternals.java:236)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at java.lang.Class.forNameImpl(Native Method)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at java.lang.Class.forName(Class.java:211)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.util.Loader.initializeClass(Loader.java:285)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.impl.ThrowableProxy.loadClass(ThrowableProxy.java:500)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.impl.ThrowableProxy.toExtendedStackTrace(ThrowableProxy.java:621)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.impl.ThrowableProxy.<init>(ThrowableProxy.java:146)
[15/09/14 10:08:18:105 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.impl.Log4jLogEvent.getThrownProxy(Log4jLogEvent.java:323)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.format(ExtendedThrowablePatternConverter.java:64)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:189)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:53)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:52)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:104)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:86)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:428)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.async.AsyncLoggerConfig.asyncCallAppenders(AsyncLoggerConfig.java:118)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:222)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:207)
[15/09/14 10:08:18:106 BST] 00000120 SystemErr     R     at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)

Chris Knight

unread,
Sep 15, 2014, 5:23:36 AM9/15/14
to lmax-di...@googlegroups.com
In addition it appears to cause an out-of-memory issue in WAS (or perhaps its the other way around), here's the WAS error logs details...

Exception = java.lang.OutOfMemoryError
Source = com.ibm.ws.tcp.channel.impl.ChannelSelector
probeid = 254
Stack Dump = java.lang.OutOfMemoryError: Java heap space
    at sun.misc.SharedSecrets$1.blockedOn(SharedSecrets.java:121)
    at java.nio.channels.spi.AbstractInterruptibleChannel.blockedOn(AbstractInterruptibleChannel.java:209)
    at java.nio.channels.spi.AbstractSelector.end(AbstractSelector.java:221)
    at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:195)
    at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:81)
    at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:92)
    at com.ibm.ws.tcp.channel.impl.ChannelSelector.run(ChannelSelector.java:167)
    at java.lang.Thread.run(Thread.java:773)


Exception = java.lang.OutOfMemoryError
Source = com.ibm.io.async.ResultHandler.startHandler
probeid = 792
Stack Dump = java.lang.OutOfMemoryError: Java heap space
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.addWaiter(AbstractQueuedSynchronizer.java:595)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1189)
    at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:197)
    at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:273)
    at com.ibm.ws.util.BoundedBuffer$GetQueueLock.lock(BoundedBuffer.java:270)
    at com.ibm.ws.util.BoundedBuffer.notifyGet_(BoundedBuffer.java:346)
    at com.ibm.ws.util.BoundedBuffer.offer(BoundedBuffer.java:751)
    at com.ibm.ws.util.ThreadPool.execute(ThreadPool.java:1320)
    at com.ibm.ws.util.ThreadPool.execute(ThreadPool.java:1271)
    at com.ibm.ws.runtime.WSThreadPool.execute(WSThreadPool.java:151)
    at com.ibm.io.async.ResultHandler.startHandler(ResultHandler.java:252)
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:580)
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)




On Friday, 12 September 2014 17:57:45 UTC+1, Chris Knight wrote:

Michael Barker

unread,
Sep 15, 2014, 9:31:42 PM9/15/14
to lmax-di...@googlegroups.com
Is it possible to deploy a small application that just uses the Disruptor (not log4j v2) to WAS to see if that works.  May help isolate the problem.

Mike.

--

Remko Popma

unread,
Sep 18, 2014, 6:18:57 AM9/18/14
to lmax-di...@googlegroups.com
This is now fixed in log4j2 master.
For details, see https://issues.apache.org/jira/browse/LOG4J2-832

Mike, I don't think the Disruptor is related to this issue.

Reply all
Reply to author
Forward
0 new messages