[
https://issues.apache.org/jira/browse/PHOENIX-5191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16825738#comment-16825738
]
Karan Mehta commented on PHOENIX-5191:
--------------------------------------
[~abhishek.chouhan] is right here. All JDBC objects, PhoenixConnection,
PhoenixStatement, PhoenixPreparedStatement etc are not thread safe. These are
light weight objects, so multiple instances of those are fine, as long as leaks
don't happen. Don't try to pool these connections either. Closing this as not a
bug. [[email protected]]
> commit thrown error info: java.util.ConcurrentModificationException
> --------------------------------------------------------------------
>
> Key: PHOENIX-5191
> URL: https://issues.apache.org/jira/browse/PHOENIX-5191
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.10.0, 4.11.0, 4.12.0, 4.14.0
> Reporter: Jepson
> Priority: Critical
> Labels: performance
> Original Estimate: 96h
> Remaining Estimate: 96h
>
> {code:java}
> java.util.ConcurrentModificationException
> at java.util.HashMap$HashIterator.nextNode(HashMap.java:1442)
> at java.util.HashMap$EntryIterator.next(HashMap.java:1476)
> at java.util.HashMap$EntryIterator.next(HashMap.java:1474)
> at
> org.apache.phoenix.execute.MutationState.generateMutations(MutationState.java:645)
> at
> org.apache.phoenix.execute.MutationState.addRowMutations(MutationState.java:519)
> at org.apache.phoenix.execute.MutationState.send(MutationState.java:1005)
> at org.apache.phoenix.execute.MutationState.send(MutationState.java:1514)
> at org.apache.phoenix.execute.MutationState.commit(MutationState.java:1337)
> at
> org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:683)
> at
> org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:679)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at
> org.apache.phoenix.jdbc.PhoenixConnection.commit(PhoenixConnection.java:679)
> at
> com.jiuye.mcp.agent.runner.impl.PhoenixTargetRunnerImpl.cronScheduleMessageBatchCommit(PhoenixTargetRunnerImpl.java:414)
> at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
> at
> org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
> at
> org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
> at
> java.util.concurrent.Executors$RunnableAdapter.call$$$capture(Executors.java:511)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java)
> at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
> at java.util.concurrent.FutureTask.run(FutureTask.java)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> 2019-03-13 10:15:15.060 [pool-2-thread-1] INFO
> org.apache.phoenix.execute.MutationState - Abort successful
> 2019-03-13 10:15:15.061 [pool-2-thread-1] ERROR
> c.j.mcp.agent.runner.impl.PhoenixTargetRunnerImpl -
> cronScheduleMessageBatchCommit:java.util.ConcurrentModificationException{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)