Hi Stephen, Try increasing the max connections limit in MySQL. I ran into a similar problem and this resolved things after a Hive 0.12 upgrade. You can increase the connection limit without a restart, but pay attention to other settings as well so that you don't over allocate resources on your db server.
Regards, Rick On Dec 17, 2013 6:12 PM, "Stephen Sprague" <sprag...@gmail.com> wrote: > hi guys, > I'm pretty much at my wits end on this one. i'm using hive v0.12 against a > mysql metastore. the error manifests itself (mostly randomly which is the > problem) as this error in the client: > > 2013-12-17 16:54:03,158 ERROR metastore.RetryingRawStore > (RetryingRawStore.java:invoke(146)) - JDO datastore error. Retrying > metastore command after 1000 ms (attempt 1 of 1) > 2013-12-17 16:54:04,345 ERROR metastore.RetryingHMSHandler > (RetryingHMSHandler.java:invoke(141)) - > MetaException(message:java.lang.RuntimeException: commitTransaction was > called but openTransactionCalls = 0. This probably indicates that there are > unbalanced calls to openTransaction/commitTransaction) > > > but i believe this to be just a symptom of something happening further > upstream. > > > examining the hive.log file for this useer (under /tmp/<user>/hive.log) i > find this hideous traceback with "bonecp" being the focus of attention. > There's nothing wrong with the mysql server metastore especially given it > works sometimes. to me i think it has something to do with the connection > pooling logic but that's only speculation. > > before i surrender and rollback to a previous version i ask: Has anyone > encountered this before? Or are there any nuggets in the traceback worthy > of insight? > > thanks, > Stephen. > > > 2013-12-17 16:54:03,142 ERROR bonecp.ConnectionHandle > (ConnectionHandle.java:markPossiblyBroken(297)) - Database access problem. > Killing off all remaining connections in the connection pool. SQL State = > 08S01 > 2013-12-17 16:54:03,144 ERROR bonecp.ConnectionHandle > (ConnectionHandle.java:markPossiblyBroken(297)) - Database access problem. > Killing off all remaining connections in the connection pool. SQL State = > 08007 > 2013-12-17 16:54:03,146 ERROR bonecp.ConnectionHandle > (ConnectionHandle.java:markPossiblyBroken(297)) - Database access problem. > Killing off all remaining connections in the connection pool. SQL State = > 08007 > 2013-12-17 16:54:03,147 ERROR bonecp.ConnectionHandle > (ConnectionHandle.java:markPossiblyBroken(297)) - Database access problem. > Killing off all remaining connections in the connection pool. SQL State = > 08007 > 2013-12-17 16:54:03,148 ERROR bonecp.BoneCP > (BoneCP.java:terminateAllConnections(199)) - Error in attempting to close > connection > com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: > Communications link failure during rollback(). Transaction resolution > unknown. > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) > at com.mysql.jdbc.Util.getInstance(Util.java:386) > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013) > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) > at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4730) > at > com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4325) > at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1557) > at > com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:396) > at > com.jolbox.bonecp.BoneCP.terminateAllConnections(BoneCP.java:197) > at > com.jolbox.bonecp.ConnectionHandle.markPossiblyBroken(ConnectionHandle.java:298) > at > com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:404) > at > com.jolbox.bonecp.BoneCP.terminateAllConnections(BoneCP.java:197) > at > com.jolbox.bonecp.ConnectionHandle.markPossiblyBroken(ConnectionHandle.java:298) > at > com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:404) > at > com.jolbox.bonecp.BoneCP.terminateAllConnections(BoneCP.java:197) > at > com.jolbox.bonecp.ConnectionHandle.markPossiblyBroken(ConnectionHandle.java:298) > at > com.jolbox.bonecp.ConnectionHandle.getTransactionIsolation(ConnectionHandle.java:635) > at > org.datanucleus.store.rdbms.ConnectionFactoryImpl$ManagedConnectionImpl.getConnection(ConnectionFactoryImpl.java:422) > at > org.datanucleus.store.rdbms.SQLController.getStatementForQuery(SQLController.java:316) > at > org.datanucleus.store.rdbms.SQLController.getStatementForQuery(SQLController.java:300) > at > org.datanucleus.store.rdbms.valuegenerator.SequenceTable.getNextVal(SequenceTable.java:194) > at > org.datanucleus.store.rdbms.valuegenerator.TableGenerator.reserveBlock(TableGenerator.java:190) > at > org.datanucleus.store.valuegenerator.AbstractGenerator.reserveBlock(AbstractGenerator.java:305) > at > org.datanucleus.store.rdbms.valuegenerator.AbstractRDBMSGenerator.obtainGenerationBlock(AbstractRDBMSGenerator.java:98) > at > org.datanucleus.store.valuegenerator.AbstractGenerator.obtainGenerationBlock(AbstractGenerator.java:197) > at > org.datanucleus.store.valuegenerator.AbstractGenerator.next(AbstractGenerator.java:105) > at > org.datanucleus.store.rdbms.RDBMSStoreManager.getStrategyValueForGenerator(RDBMSStoreManager.java:2019) > at > org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractStoreManager.java:1385) > at > org.datanucleus.ExecutionContextImpl.newObjectId(ExecutionContextImpl.java:3727) > at > org.datanucleus.state.JDOStateManager.setIdentity(JDOStateManager.java:2574) > at > org.datanucleus.state.JDOStateManager.initialiseForPersistentNew(JDOStateManager.java:526) > at > org.datanucleus.state.ObjectProviderFactoryImpl.newForPersistentNew(ObjectProviderFactoryImpl.java:202) > at > org.datanucleus.ExecutionContextImpl.newObjectProviderForPersistentNew(ExecutionContextImpl.java:1326) > at > org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2123) > at > org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2212) > at > org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567) > at > org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326) > at > org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193) > at > org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1272) > at > org.apache.hadoop.hive.metastore.model.MTable.jdoProvideField(MTable.java) > at > org.apache.hadoop.hive.metastore.model.MTable.jdoProvideFields(MTable.java) > at > org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1349) > at > org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289) > at > org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167) > at > org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143) > at > org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3777) > at > org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3753) > at > org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2124) > at > org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1972) > at > org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1820) > at > org.datanucleus.ExecutionContextThreadedImpl.persistObject(ExecutionContextThreadedImpl.java:217) > at > org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727) > at > org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752) > at > org.apache.hadoop.hive.metastore.ObjectStore.createTable(ObjectStore.java:648) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.hive.metastore.RetryingRawStore.invoke(RetryingRawStore.java:124) > at $Proxy4.createTable(Unknown Source) > at > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_core(HiveMetaStore.java:1074) > at > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_with_environment_context(HiveMetaStore.java:1107) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:103) > at $Proxy9.create_table_with_environment_context(Unknown Source) > at > org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:482) > at > org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:471) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:89) > at $Proxy10.createTable(Unknown Source) > at > org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:596) > at > org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:3661) > at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:252) > at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151) > at > org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65) > at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1414) > at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1192) > at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1020) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:888) > at > org.apache.hadoop.hive.service.HiveServer$HiveServerHandler.execute(HiveServer.java:198) > at > org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:644) > at > org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:628) > at > org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) > at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) > at > org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:206) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > 2013-12-17 16:54:03,153 ERROR bonecp.BoneCP > (BoneCP.java:terminateAllConnections(199)) - Error in attempting to close > connection > com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: > Communications link failure during rollback(). Transaction resolution > unknown. > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) > at com.mysql.jdbc.Util.getInstance(Util.java:386) > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013) > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) > at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4730) > at > com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4325) > at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1557) > at > com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:396) > at > com.jolbox.bonecp.BoneCP.terminateAllConnections(BoneCP.java:197) > at > com.jolbox.bonecp.ConnectionHandle.markPossiblyBroken(ConnectionHandle.java:298) > at > com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:404) > at > com.jolbox.bonecp.BoneCP.terminateAllConnections(BoneCP.java:197) > at > com.jolbox.bonecp.ConnectionHandle.markPossiblyBroken(ConnectionHandle.java:298) > at > com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:404) > at > com.jolbox.bonecp.BoneCP.terminateAllConnections(BoneCP.java:197) > at > com.jolbox.bonecp.ConnectionHandle.markPossiblyBroken(ConnectionHandle.java:298) > at > com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:404) > at > com.jolbox.bonecp.BoneCP.terminateAllConnections(BoneCP.java:197) > at > com.jolbox.bonecp.ConnectionHandle.markPossiblyBroken(ConnectionHandle.java:298) > at > com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:404) > at > com.jolbox.bonecp.BoneCP.terminateAllConnections(BoneCP.java:197) > at > com.jolbox.bonecp.ConnectionHandle.markPossiblyBroken(ConnectionHandle.java:298) > at > com.jolbox.bonecp.ConnectionHandle.getTransactionIsolation(ConnectionHandle.java:635) > at > org.datanucleus.store.rdbms.ConnectionFactoryImpl$ManagedConnectionImpl.getConnection(ConnectionFactoryImpl.java:422) > at > org.datanucleus.store.rdbms.ConnectionFactoryImpl$ManagedConnectionImpl.getXAResource(ConnectionFactoryImpl.java:356) > at > org.datanucleus.store.connection.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:328) > at > org.datanucleus.store.connection.AbstractConnectionFactory.getConnection(AbstractConnectionFactory.java:64) > at > org.datanucleus.store.AbstractStoreManager.getConnection(AbstractStoreManager.java:429) > at > org.datanucleus.store.AbstractStoreManager.getConnection(AbstractStoreManager.java:395) > at > org.datanucleus.store.rdbms.query.JDOQLQuery.performExecute(JDOQLQuery.java:607) > at org.datanucleus.store.query.Query.executeQuery(Query.java:1786) > at > org.datanucleus.store.query.Query.executeWithArray(Query.java:1672) > at org.datanucleus.api.jdo.JDOQuery.execute(JDOQuery.java:266) > at > org.apache.hadoop.hive.metastore.ObjectStore.getMTable(ObjectStore.java:826) > at > org.apache.hadoop.hive.metastore.ObjectStore.getTable(ObjectStore.java:760) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.hive.metastore.RetryingRawStore.invoke(RetryingRawStore.java:124) > at $Proxy12.getTable(Unknown Source) > at > org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_table(HiveMetaStore.java:1371) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:103) > at $Proxy13.get_table(Unknown Source) > at > org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getTable(HiveMetaStoreClient.java:854) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:89) > at $Proxy14.getTable(Unknown Source) > at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:950) > at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:892) > at > org.apache.hadoop.hive.ql.exec.MoveTask.execute(MoveTask.java:245) > at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151) > at > org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65) > at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1414) > at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1192) > at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1020) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:888) > at > org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259) > at > org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216) > at > org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413) > at > org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:781) > at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675) > at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:614) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.hadoop.util.RunJar.main(RunJar.java:208) > >