You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Tellier Benoit (JIRA)" <se...@james.apache.org> on 2018/03/14 04:24:00 UTC

[jira] [Created] (JAMES-2350) JPA max quota manager is not thread safe

Tellier Benoit created JAMES-2350:
-------------------------------------

             Summary: 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
             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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org