You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/02/03 18:43:51 UTC

[jira] [Commented] (DRILL-5088) Error when reading DBRef column

    [ 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)