hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ashutosh Chauhan (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-4580) Change DDLTask to report errors using canonical error messages rather than http status codes
Date Sat, 06 Jul 2013 18:51:48 GMT

     [ https://issues.apache.org/jira/browse/HIVE-4580?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Ashutosh Chauhan updated HIVE-4580:
-----------------------------------

    Status: Open  (was: Patch Available)

On a clean checkout 7 out of 9 tests in TestWebHCatE2e failed for me, with following trace:
{code}
listDataBases Failure GET http://localhost:50111/templeton/v1/ddl/database?user.name=johndoe
{"error":"Unable to access program: ${env.HCAT_PREFIX}/bin/hcat"} expected:<200> but
was:<401>
   junit.framework.AssertionFailedError: GET http://localhost:50111/templeton/v1/ddl/database?user.name=johndoe
{"error":"Unable to access program: ${env.HCAT_PREFIX}/bin/hcat"} expected:<200> but
   was:<401>
   at org.apache.hcatalog.templeton.TestWebHCatE2e.listDataBases(TestWebHCatE2e.java:92)
   0.037
   invalidPath Success 0.008
   dropTableNoSuchDB Failure DELETE http://localhost:50111/templeton/v1/ddl/database/no_such_db/table/t1?user.name=johndoe
{"error":"Unable to access program: ${env.HCAT_PREFIX}/bin/hcat"}
   expected:<404> but was:<401>
   junit.framework.AssertionFailedError: DELETE http://localhost:50111/templeton/v1/ddl/database/no_such_db/table/t1?user.name=johndoe
{"error":"Unable to access program:
   ${env.HCAT_PREFIX}/bin/hcat"} expected:<404> but was:<401>
   at org.apache.hcatalog.templeton.TestWebHCatE2e.dropTableNoSuchDB(TestWebHCatE2e.java:112)
   0.008
   dropTableNoSuchDbIfExists Failure DELETE http://localhost:50111/templeton/v1/ddl/database/no_such_db/table/t1?user.name=johndoe&ifExists=true
{"error":"Unable to access program:
   ${env.HCAT_PREFIX}/bin/hcat"} expected:<404> but was:<401>
   junit.framework.AssertionFailedError: DELETE http://localhost:50111/templeton/v1/ddl/database/no_such_db/table/t1?user.name=johndoe&ifExists=true
{"error":"Unable to access program:
   ${env.HCAT_PREFIX}/bin/hcat"} expected:<404> but was:<401>
   at org.apache.hcatalog.templeton.TestWebHCatE2e.dropTableNoSuchDbIfExists(TestWebHCatE2e.java:125)
   0.008
   dropTableIfExists Failure DELETE http://localhost:50111/templeton/v1/ddl/database/default/table/no_such_table?user.name=johndoe&ifExists=true
{"error":"Unable to access program:
   ${env.HCAT_PREFIX}/bin/hcat"} expected:<200> but was:<401>
   junit.framework.AssertionFailedError: DELETE http://localhost:50111/templeton/v1/ddl/database/default/table/no_such_table?user.name=johndoe&ifExists=true
{"error":"Unable to access program:
   ${env.HCAT_PREFIX}/bin/hcat"} expected:<200> but was:<401>
   at org.apache.hcatalog.templeton.TestWebHCatE2e.dropTableIfExists(TestWebHCatE2e.java:136)
   0.007
   createDataBase Failure PUT http://localhost:50111/templeton/v1/ddl/database/newdb?user.name=johndoe
{"error":"Unable to access program: ${env.HCAT_PREFIX}/bin/hcat"} expected:<200> but
   was:<401>
   junit.framework.AssertionFailedError: PUT http://localhost:50111/templeton/v1/ddl/database/newdb?user.name=johndoe
{"error":"Unable to access program: ${env.HCAT_PREFIX}/bin/hcat"}
   expected:<200> but was:<401>
   at org.apache.hcatalog.templeton.TestWebHCatE2e.createDataBase(TestWebHCatE2e.java:149)
   0.051
   createTable Failure PUT http://localhost:50111/templeton/v1/ddl/database/default/table/test_table?user.name=johndoe
{"error":"Unable to access program: ${env.HCAT_PREFIX}/bin/hcat"}
   expected:<200> but was:<401>
   junit.framework.AssertionFailedError: PUT http://localhost:50111/templeton/v1/ddl/database/default/table/test_table?user.name=johndoe
{"error":"Unable to access program:
   ${env.HCAT_PREFIX}/bin/hcat"} expected:<200> but was:<401>
   at org.apache.hcatalog.templeton.TestWebHCatE2e.createTable(TestWebHCatE2e.java:166)
   0.045
   describeNoSuchTable Failure GET http://localhost:50111/templeton/v1/ddl/database/default/table/no_such_table?user.name=johndoe
{"error":"Unable to access program: ${env.HCAT_PREFIX}/bin/hcat"}
   expected:<404> but was:<401>
   junit.framework.AssertionFailedError: GET http://localhost:50111/templeton/v1/ddl/database/default/table/no_such_table?user.name=johndoe
{"error":"Unable to access program:
   ${env.HCAT_PREFIX}/bin/hcat"} expected:<404> but was:<401>
 at org.apache.hcatalog.templeton.TestWebHCatE2e.describeNoSuchTable(TestWebHCatE2e.java:176)
{code}

Seems like environment is not setup correctly for tests to run.
                
> Change DDLTask to report errors using canonical error messages rather than http status
codes
> --------------------------------------------------------------------------------------------
>
>                 Key: HIVE-4580
>                 URL: https://issues.apache.org/jira/browse/HIVE-4580
>             Project: Hive
>          Issue Type: Bug
>          Components: HCatalog
>    Affects Versions: 0.11.0
>            Reporter: Eugene Koifman
>            Assignee: Eugene Koifman
>             Fix For: 0.12.0
>
>         Attachments: HIVE-4580.1.patch, HIVE-4580.2.patch, HIVE-4580.patch
>
>   Original Estimate: 40h
>  Remaining Estimate: 40h
>
> org.apache.hadoop.hive.ql.exec.DDLTask handles DDL operations in Hive.
> Some operations (those exposed as REST API by Templeton) in this class, write a JSON
object to stdout (on failure) which includes "error" and "errorCode" fields.  "errorCode"
is set to values like 404, 500, etc. i.e. Http Status codes.  I believe this was done to support
Templeton REST API.  This is not the right place to introduce Http codes.  
> DDLTask should use canonical error messages defined in org.apache.hadoop.hive.ql.ErrorMsg
and propagate it up to HCatCli which can decide how to encode the error and to which stream.
 In particular it can create a parseable JSON object which Templeton can then interpret. 
JSON object can also be generated here for errors from the parser/resolver (e.g. trying to
describe a table which doesn't exist).
> Then Templeton can map the canonical error code to appropriate Http Code.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message