[ 
https://issues.apache.org/jira/browse/HIVE-84?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12660785#action_12660785
 ] 

Ashish Thusoo commented on HIVE-84:
-----------------------------------

Do you still need the needsRefresh code in SessionState.java

Also why just check for the refresh stuff only for MetaVars and why not do it 
for all the vars? Why the special case?


> MetaStore Client is not thread safe
> -----------------------------------
>
>                 Key: HIVE-84
>                 URL: https://issues.apache.org/jira/browse/HIVE-84
>             Project: Hadoop Hive
>          Issue Type: Bug
>          Components: Metastore
>    Affects Versions: 0.2.0
>         Environment: with patch for hive-77 - run:
> ant -lib ./testlibs -Dtestcase=TestMTQueries test
>            Reporter: Joydeep Sen Sarma
>            Assignee: Prasad Chakka
>             Fix For: 0.2.0
>
>         Attachments: hive-84.patch
>
>
> when running DDL Tasks in concurrent threads - the following exception trace 
> is observed:
> java.sql.SQLIntegrityConstraintViolationException: The statement was aborted 
> because it would have caused a duplicate ke\ y value in a unique or primary 
> key constraint or unique index identified by 'UNIQUETABLE' defined on 'TBLS'.
>   at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:207)
>   at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:209)
>   at org.apache.hadoop.hive.ql.Driver.run(Driver.java:174)
>   at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:185)
>   at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:210)
>   at org.apache.hadoop.hive.ql.QTestUtil.executeClient(QTestUtil.java:390)
>   at org.apache.hadoop.hive.ql.QTestUtil$QTRunner.run(QTestUtil.java:681)
>   at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.jdo.JDODataStoreException: Insert of object 
> "org.apache.hadoop.hive.metastore.model.mta...@3bc8d400" us\ ing statement 
> "INSERT INTO TBLS 
> (TBL_ID,CREATE_TIME,DB_ID,RETENTION,TBL_NAME,SD_ID,OWNER,LAST_ACCESS_TIME) 
> VALUES (?,?,?\ ,?,?,?,?,?)" failed : The statement was aborted because it 
> would have caused a duplicate key value in a unique or primar\ y key 
> constraint or unique index identified by 'UNIQUETABLE' defined on 'TBLS'.
> NestedThrowables:
> java.sql.SQLIntegrityConstraintViolationException: The statement was aborted 
> because it would have caused a duplicate ke\ y value in a unique or primary 
> key constraint or unique index identified by 'UNIQUETABLE' defined on 'TBLS'.
>   at 
> org.jpox.jdo.JPOXJDOHelper.getJDOExceptionForJPOXException(JPOXJDOHelper.java:291)
>   at 
> org.jpox.jdo.AbstractPersistenceManager.jdoMakePersistent(AbstractPersistenceManager.java:671)
>   at 
> org.jpox.jdo.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:691)
>   at 
> org.apache.hadoop.hive.metastore.ObjectStore.createTable(ObjectStore.java:479)
>   at 
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table(HiveMetaStore.java:292)
>   at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:252)
>   at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:205)
>   ... 7 more
> Caused by: java.sql.SQLIntegrityConstraintViolationException: The statement 
> was aborted because it would have caused a d\ uplicate key value in a unique 
> or primary key constraint or unique index identified by 'UNIQUETABLE' defined 
> on 'TBLS'.
>   at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
> Source)
>   at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
> Source)
>   at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown 
> Source)
>   at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown 
> Source)
>   at 
> org.jpox.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:396)
>   at 
> org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:370)
>   at 
> org.jpox.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:157)
>   at 
> org.jpox.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:136)
>   at 
> org.jpox.state.JDOStateManagerImpl.internalMakePersistent(JDOStateManagerImpl.java:3082)
>   at 
> org.jpox.state.JDOStateManagerImpl.makePersistent(JDOStateManagerImpl.java:3062)
>   at 
> org.jpox.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1231)
>   at org.jpox.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1077)
>   at 
> org.jpox.jdo.AbstractPersistenceManager.jdoMakePersistent(AbstractPersistenceManager.java:666)
>   ... 12 more
> Caused by: java.sql.SQLException: The statement was aborted because it would 
> have caused a duplicate key value in a uniq\ ue or primary key constraint or 
> unique index identified by 'UNIQUETABLE' defined on 'TBLS'.
>   at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown 
> Source)
>   at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
>  Source)
>   ... 30 more
> Caused by: ERROR 23505: The statement was aborted because it would have 
> caused a duplicate key value in a unique or prim\ ary key constraint or 
> unique index identified by 'UNIQUETABLE' defined on 'TBLS'.
>   at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>   at 
> org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(Unknown 
> Source)
>   at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(Unknown Source)
>   at org.apache.derby.impl.sql.execute.IndexChanger.insert(Unknown Source)
>   at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(Unknown Source)
>   at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown 
> Source)
>   at 
> org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown 
> Source)
>   at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source)
> when running normal select queries as well - one hits exception, stack trace:
> 2008-11-27 01:54:00,216 ERROR metadata.Hive (Hive.java:getTable(275)) - 
> NoSuchObjectException(message:default.dummySrc t\
> able not found)
>   at 
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.get_table(HiveMetaStore.java:347)
>   at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getTable(HiveMetaStoreClient.java:433)
>   at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getTable(HiveMetaStoreClient.java:472)
>   at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:272)
>   at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:254)
>   at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getMetaData(SemanticAnalyzer.java:544)
>   at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:3192)
>   at 
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:73)
>   at org.apache.hadoop.hive.ql.QTestUtil.analyzeAST(QTestUtil.java:672)
>   at 
> org.apache.hadoop.hive.ql.parse.TestParseNegative.testParseNegative_unknown_table1(TestParseNegative.java:231)
>   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 junit.framework.TestCase.runTest(TestCase.java:154)
>   at junit.framework.TestCase.runBare(TestCase.java:127)
>   at junit.framework.TestResult$1.protect(TestResult.java:106)
>   at junit.framework.TestResult.runProtected(TestResult.java:124)
>   at junit.framework.TestResult.run(TestResult.java:109)
>   at junit.framework.TestCase.run(TestCase.java:118)
>   at junit.framework.TestSuite.runTest(TestSuite.java:208)
>   at junit.framework.TestSuite.run(TestSuite.java:203)
>   at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:297)
>   at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:672)
>   at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:567)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to