drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-5088) Error when reading DBRef column
Date Fri, 03 Feb 2017 18:43:51 GMT

    [ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15851910#comment-15851910
] 

ASF GitHub Bot commented on DRILL-5088:
---------------------------------------

Github user paul-rogers commented on a diff in the pull request:

    https://github.com/apache/drill/pull/702#discussion_r99396951
  
    --- Diff: contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/TestTableGenerator.java
---
    @@ -58,7 +59,16 @@ public static void generateTable(String dbName, String collection,
             .jsonArray(jsonArray).importFile(jsonFile).build();
         MongoImportExecutable importExecutable = MongoImportStarter
             .getDefaultInstance().prepare(mongoImportConfig);
    -    importExecutable.start();
    +    MongoImportProcess importProcess = importExecutable.start();
    +
    +    try {
    +      while (importProcess.isProcessRunning()) {
    +        Thread.sleep(1000);
    +      }
    +    }catch (Exception ex) {
    +      logger.error("Import mongoDb failed", ex);
    --- End diff --
    
    Here we log the error but go ahead and return. Should we propagate an exception upward
in the call stack so that the caller knows that "Something Is Wrong"? Otherwise, how will
the caller know whether the import process is ready or not?


> Error when reading DBRef column
> -------------------------------
>
>                 Key: DRILL-5088
>                 URL: https://issues.apache.org/jira/browse/DRILL-5088
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Data Types
>         Environment: drill 1.9.0
> mongo 3.2
>            Reporter: Guillaume Champion
>            Assignee: Chunhui Shi
>
> In a mongo database with DBRef, when a DBRef is inserted in the first line of a mongo's
collection drill query failed :
> {code}
> 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2;
> Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for class com.mongodb.DBRef.
> {code}
> Simple example to reproduce:
> In mongo instance
> {code}
> db.contact2.drop();
> db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" : DBRef("contact",
ObjectId("999cbf116b69060001fd8611")) });
> {code}
> In drill :
> {code}
> 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2;
> Error: SYSTEM ERROR: CodecConfigurationException: Can't find a codec for class com.mongodb.DBRef.
> [Error Id: 2944d766-e483-4453-a706-3d481397b186 on Analytics-Biznet:31010] (state=,code=0)
> {code}
> If the first line doesn't contain de DBRef, drill will querying correctly :
> In a mongo instance :
> {code}
> db.contact2.drop();
> db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8939") });
> db.contact2.insert({ "_id" : ObjectId("582081d96b69060001fd8938"), "account" : DBRef("contact",
ObjectId("999cbf116b69060001fd8611")) });
> {code}
> In drill :
> {code}
> 0: jdbc:drill:zk=local> select * from mongo.mydb.contact2;
> +--------------------------------------+---------------------------------------------------------------+
> |                 _id                  |                            account         
                  |
> +--------------------------------------+---------------------------------------------------------------+
> | {"$oid":"582081d96b69060001fd8939"}  | {"$id":{}}                                 
                  |
> | {"$oid":"582081d96b69060001fd8938"}  | {"$ref":"contact","$id":{"$oid":"999cbf116b69060001fd8611"}}
 |
> +--------------------------------------+---------------------------------------------------------------+
> 2 rows selected (0,563 seconds)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message