[ https://issues.apache.org/jira/browse/DRILL-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15851911#comment-15851911 ]
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_r99396637 --- Diff: contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuit.java --- @@ -234,15 +240,17 @@ private static void createDbAndCollections(String dbName, @AfterClass public static void tearDownCluster() throws Exception { - if (mongoClient != null) { - mongoClient.dropDatabase(EMPLOYEE_DB); - mongoClient.close(); - } synchronized (MongoTestSuit.class) { - if (distMode) { - DistributedMode.cleanup(); - } else { - SingleMode.cleanup(); + if (initCount.decrementAndGet() == 0) { + if (mongoClient != null) { + mongoClient.dropDatabase(EMPLOYEE_DB); + mongoClient.close(); + } + if (distMode) { + DistributedMode.cleanup(); + } else { + SingleMode.cleanup(); --- End diff -- Should the above include error handling? It seems that if the `dropDatabase` fails, then `close()` won't be called, nor will the `cleanup` method. > 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)