-
Type:
Bug
-
Resolution: Done
-
Priority:
Blocker - P1
-
None
-
Affects Version/s: 2.11.1
-
Component/s: API
When we talk to a given Mongo server, through the JavaAPI, with a eval(), it always fails.
Here is a quick and dirty Java program that demonstrates the issue. If we go onto the console of the server and run the same command [eval("db.serverStatus()")] it works as expected.
Bar.java
import com.mongodb.DB; import com.mongodb.MongoClient; public class doNotUse { public static void main(String[] args) throws Exception { MongoClient mc = new MongoClient( "192.168.26.240", 49140 ); DB db = mc.getDB("log"); Object o = db.eval( "db.serverStatus()", (Object[])null ); System.out.println(o); } }
Fails with:
Bar.java
Exception in thread "main" com.mongodb.MongoException: not talking to master and retries used up
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:314)
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:316)
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:316)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:257)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:310)
at com.mongodb.DB.command(DB.java:274)
at com.mongodb.DB.command(DB.java:256)
at com.mongodb.DB.command(DB.java:313)
at com.mongodb.DB.command(DB.java:211)
at com.mongodb.DB.doEval(DB.java:353)
at com.mongodb.DB.eval(DB.java:370)
at org.doNotUse.main(doNotUse.java:21)
The server we are talking to is a slave to another master.