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