[
https://issues.apache.org/jira/browse/JAMES-2350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tellier Benoit closed JAMES-2350.
---------------------------------
> JPA max quota manager is not thread safe
> ----------------------------------------
>
> Key: JAMES-2350
> URL: https://issues.apache.org/jira/browse/JAMES-2350
> Project: James Server
> Issue Type: Bug
> Components: IMAPServer, jpa
> Affects Versions: master
> Reporter: Tellier Benoit
> Priority: Major
> Fix For: master
>
>
> `Yeikel Santana` encountered the following error:
> {code:java}
> 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)
> {code}
> 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.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]