[ https://issues.apache.org/jira/browse/DIRMINA-544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Maarten Bosteels reassigned DIRMINA-544: ---------------------------------------- Assignee: Maarten Bosteels > ConcurrentModificationException in MdcInjectionFilter > ----------------------------------------------------- > > Key: DIRMINA-544 > URL: https://issues.apache.org/jira/browse/DIRMINA-544 > Project: MINA > Issue Type: Bug > Components: Core > Affects Versions: 2.0.0-M1 > Reporter: Maarten Bosteels > Assignee: Maarten Bosteels > Fix For: 2.0.0-M2 > > > When doing some load testing on FtpServer, I ran into a threading > issue in MdcInjectionFilter. When adding some load, I frequently get a > ConcurrentModificationException on removing the MDC properties. Here's > the stacktrace: > java.util.ConcurrentModificationException > at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) > at java.util.HashMap$KeyIterator.next(HashMap.java:828) > at > org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:140) > at > org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:67) > at > org.apache.mina.common.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:401) > at > org.apache.mina.common.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:38) > at > org.apache.mina.common.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:820) > at > org.apache.mina.common.DefaultIoFilterChain$HeadFilter.messageReceived(DefaultIoFilterChain.java:604) > at > org.apache.mina.common.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:401) > at > org.apache.mina.common.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:395) > at > org.apache.mina.common.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:425) > at > org.apache.mina.common.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:387) > at > org.apache.mina.common.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:379) > at > org.apache.mina.common.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:43) > at > org.apache.mina.common.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:676) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > The cause of the problem is a call to setProperty() from > org.apache.ftpserver.command.USER. I'm not familiar enough with the > MDC filter to identify the culprit. Simply synchronizing the context > Map does not help. The test I'm running is quite simple: > package org.apache.ftpserver.clienttests; > public class MdcThreadingTest extends ClientTestTemplate { > public void testLoginMulti() throws Exception { > tearDown(); > for(int i = 0; i<10000; i++) { > setUp(); > assertTrue(client.login(ADMIN_USERNAME, > ADMIN_PASSWORD)); > tearDown(); > } > System.out.println("All done!"); > } > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.