Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.2.0
-
None
-
None
-
Reviewed
Description
Ignore Illegal Operation state transition exception in SQLOperation.runQuery to expose real exception.
setState may create Illegal Operation state transition exception which may hide the real exception. we see the following exception happened from setState(OperationState.ERROR); in SQLOperation.runQuery
org.apache.hive.service.cli.operation.Operation: Error running hive query: org.apache.hive.service.cli.HiveSQLException: Illegal Operation state transition from CLOSED to ERROR at org.apache.hive.service.cli.OperationState.validateTransition(OperationState.java:91) at org.apache.hive.service.cli.OperationState.validateTransition(OperationState.java:97) at org.apache.hive.service.cli.operation.Operation.setState(Operation.java:154) at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:241) at org.apache.hive.service.cli.operation.SQLOperation.access$300(SQLOperation.java:82) at org.apache.hive.service.cli.operation.SQLOperation$3$1.run(SQLOperation.java:288) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693) at org.apache.hive.service.cli.operation.SQLOperation$3.run(SQLOperation.java:301) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)