Re: ConcurrentModificationException when making concurrent requests through Phoenix Query Server
"I don't know if there is a problem with our Phoenix Query Server configuration, which is the default one" I meant, Thanks !! On Wed, Nov 25, 2015 at 5:08 PM, rafawrote: > Hi all ! > > We are using Apache Phoenix 4.5.2. We are making some tests from an > application server using the query server jdbc thin client driver. > > When making upserts, if we use more than one client thread for making > requests we obtain this error in our client: > > exception is java.sql.SQLException: exception while executing query: > response code 500 > at > org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84) > at > org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) > at > org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) > at > org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:660) > at > org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:909) > at > org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:970) > at > org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:980) > at > com..x.x.xx.poc.phoenix.PhoenixClient.put(PhoenixClient.java:127) > at > com..x.x.xx.poc.webapp.common.Injector.call(Injector.java:31) > at > com..x.x.xx.poc.webapp.common.Injector.call(Injector.java:13) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.sql.SQLException: exception while executing query: > response code 500 > at > org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:432) > at > org.apache.calcite.avatica.AvaticaPreparedStatement.executeUpdate(AvaticaPreparedStatement.java:118) > at > com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:410) > at > org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:916) > at > org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:909) > at > org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:644) > ... 10 more > Caused by: java.lang.RuntimeException: response code 500 > at > org.apache.calcite.avatica.remote.RemoteService.apply(RemoteService.java:45) > at > org.apache.calcite.avatica.remote.JsonService.apply(JsonService.java:215) > at > org.apache.calcite.avatica.remote.RemoteMeta.fetch(RemoteMeta.java:190) > at > org.apache.calcite.avatica.MetaImpl$FetchIterator.moveNext(MetaImpl.java:809) > at > org.apache.calcite.avatica.MetaImpl$FetchIterator.(MetaImpl.java:780) > at > org.apache.calcite.avatica.MetaImpl$FetchIterable.iterator(MetaImpl.java:758) > at > org.apache.calcite.avatica.MetaImpl.createCursor(MetaImpl.java:98) > at > org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:187) > at > org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:430) > ... 15 more > > > In the Phoenix Query Server log we see these errors: > > 2015-11-25 15:44:52,495 WARN org.eclipse.jetty.server.HttpChannel: / > java.util.ConcurrentModificationException > at java.util.HashMap$HashIterator.remove(HashMap.java:940) > at > org.apache.phoenix.execute.MutationState.commit(MutationState.java:501) > at > org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:472) > at > org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:469) > at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) > at > org.apache.phoenix.jdbc.PhoenixConnection.commit(PhoenixConnection.java:469) > at > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:323) > at > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:312) > at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) > at > org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:310) > at > org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:240) > at > org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:173) > at >
ConcurrentModificationException when making concurrent requests through Phoenix Query Server
Hi all ! We are using Apache Phoenix 4.5.2. We are making some tests from an application server using the query server jdbc thin client driver. When making upserts, if we use more than one client thread for making requests we obtain this error in our client: exception is java.sql.SQLException: exception while executing query: response code 500 at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:660) at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:909) at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:970) at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:980) at com..x.x.xx.poc.phoenix.PhoenixClient.put(PhoenixClient.java:127) at com..x.x.xx.poc.webapp.common.Injector.call(Injector.java:31) at com..x.x.xx.poc.webapp.common.Injector.call(Injector.java:13) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.sql.SQLException: exception while executing query: response code 500 at org.apache.calcite.avatica.Helper.createException(Helper.java:41) at org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:432) at org.apache.calcite.avatica.AvaticaPreparedStatement.executeUpdate(AvaticaPreparedStatement.java:118) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:410) at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:916) at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:909) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:644) ... 10 more Caused by: java.lang.RuntimeException: response code 500 at org.apache.calcite.avatica.remote.RemoteService.apply(RemoteService.java:45) at org.apache.calcite.avatica.remote.JsonService.apply(JsonService.java:215) at org.apache.calcite.avatica.remote.RemoteMeta.fetch(RemoteMeta.java:190) at org.apache.calcite.avatica.MetaImpl$FetchIterator.moveNext(MetaImpl.java:809) at org.apache.calcite.avatica.MetaImpl$FetchIterator.(MetaImpl.java:780) at org.apache.calcite.avatica.MetaImpl$FetchIterable.iterator(MetaImpl.java:758) at org.apache.calcite.avatica.MetaImpl.createCursor(MetaImpl.java:98) at org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:187) at org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:430) ... 15 more In the Phoenix Query Server log we see these errors: 2015-11-25 15:44:52,495 WARN org.eclipse.jetty.server.HttpChannel: / java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.remove(HashMap.java:940) at org.apache.phoenix.execute.MutationState.commit(MutationState.java:501) at org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:472) at org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:469) at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) at org.apache.phoenix.jdbc.PhoenixConnection.commit(PhoenixConnection.java:469) at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:323) at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:312) at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:310) at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:240) at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:173) at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:178) at org.apache.calcite.avatica.jdbc.JdbcMeta.fetch(JdbcMeta.java:763) at org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:163) at org.apache.calcite.avatica.remote.Service$FetchRequest.accept(Service.java:330) at org.apache.calcite.avatica.remote.Service$FetchRequest.accept(Service.java:304) at