Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
master
-
None
Description
`Yeikel Santana` encountered the following error:
15:24:39.824 [ERROR] o.a.j.i.p.b.AbstractChainedProcessor - Error while processing IMAP request org.apache.openjpa.persistence.PersistenceException: Multiple concurrent threads attempted to access a single broker. By default brokers are not thread safe; if you require and/or intend a broker to be accessed by more than one thread, set the openjpa.Multithreaded property to true to override the default behavior. at org.apache.openjpa.kernel.BrokerImpl.endOperation(BrokerImpl.java:1987) at org.apache.openjpa.kernel.BrokerImpl.isActive(BrokerImpl.java:1935) at org.apache.openjpa.kernel.DelegatingBroker.isActive(DelegatingBroker.java:47 5) at org.apache.openjpa.persistence.EntityManagerImpl.isActive(EntityManagerImpl. java:678) at org.apache.openjpa.persistence.PersistenceExceptions$2.translate(Persistence Exceptions.java:74) at org.apache.openjpa.kernel.DelegatingBroker.translate(DelegatingBroker.java:1 06) at org.apache.openjpa.kernel.DelegatingBroker.newObjectId(DelegatingBroker.java :317) at org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java :487) at org.apache.james.mailbox.jpa.quota.JPAPerUserMaxQuotaManager.getMaxMessage(J PAPerUserMaxQuotaManager.java:104) at org.apache.james.mailbox.store.quota.StoreQuotaManager.getMessageQuota(Store QuotaManager.java:52) at org.apache.james.imap.processor.GetQuotaRootProcessor.doProcess(GetQuotaRoot Processor.java:81) at org.apache.james.imap.processor.GetQuotaRootProcessor.doProcess(GetQuotaRoot Processor.java:53) at org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractM ailboxProcessor.java:110) at org.apache.james.imap.processor.AbstractMailboxProcessor.process(AbstractMai lboxProcessor.java:97) at org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractM ailboxProcessor.java:89) at org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractM ailboxProcessor.java:71) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(Abstra ctChainedProcessor.java:65) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(Abstra ctChainedProcessor.java:74) at org.apache.james.imapserver.netty.ImapChannelUpstreamHandler.messageReceived (ImapChannelUpstreamHandler.java:196) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleCh annelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPi peline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext. sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceive d(FrameDecoder.java:462) at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.jav a:443) at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecode r.java:303) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleCh annelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPi peline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext. sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(Channel UpstreamEventRunnable.java:43) at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunna ble.java:67) at org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$Child Executor.run(OrderedMemoryAwareThreadPoolExecutor.java:314) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:11 49) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6 24) at java.lang.Thread.run(Thread.java:748)
We need to issue parallel IMAP `GETQUOTAROOT` calls on top of JPA James Server and ensure that we reproduce this bug.
Then we need to solve it.
Then ensure our test pass.