camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Peschke (JIRA) <j...@apache.org>
Subject [jira] [Created] (CAMEL-8063) Persistent tail tracking picks random tail tracker from mongoDB collection
Date Wed, 19 Nov 2014 12:28:33 GMT
Jörg Peschke created CAMEL-8063:
-----------------------------------

             Summary: Persistent tail tracking picks random tail tracker from mongoDB collection
                 Key: CAMEL-8063
                 URL: https://issues.apache.org/jira/browse/CAMEL-8063
             Project: Camel
          Issue Type: Bug
          Components: camel-mongodb
    Affects Versions: 2.13.1
            Reporter: Jörg Peschke
            Priority: Minor


There is a bug the method "initialize" in "MongoDbTailTrackingManager.java": 

...
 if (trackingObj == null) {
            dbCol.insert(filter, WriteConcern.SAFE);
            trackingObj = dbCol.findOne();
 }
...

If no tail tracking object exists in the database, a new one will be inserted (that's okay),
but the query "dbCol.findOne()" fetches ANY tail tracking object from the database (and not
the one we've just inserted). 

In my oppinition, this is a bug and should be corrected like this: 
...
DBObject filter = new BasicDBObject("persistentId", config.persistentId);
trackingObj = dbCol.findOne(filter);
 if (trackingObj == null) {
            dbCol.insert(filter, WriteConcern.SAFE);
            trackingObj = dbCol.findOne(filter);
 }

(not tested).

A workaround can be implemented by putting each persistent tail tracker in it's own collection,
so I marked this issue as "minor".

More details: http://camel.465427.n5.nabble.com/MongoDB-Persistent-tail-tracking-with-concurrent-tailable-consumers-td5759131.html

Best regards,
Joerg Peschke



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message