There's 2.5 minutes there before we even start the replicaset initiation stuff. I'm not sure exactly what's going on, and it's not impossible that it's mongo being slow, but I don't think it's a sure thing. A lot has changed in 1.20, so it bears more investigation.
I dont think this has anything to do with replicasets. This seems to be the key lines in the log:
2014-07-08 14:01:45 DEBUG juju.mongo mongo.go:231 using mongod: /usr/lib/ juju/bin/ mongod --version: "db version v2.4.9\nTue Jul 8 10:01:45.089 git version: nogitversion\n" peergrouper initiate.go:41 Initiating mongo replicaset; dialInfo &mgo.DialInfo{ Addrs:[ ]string{ "127.0. 0.1:37017" }, Direct:false, Timeout: 300000000000, FailFast:false, Database:"", Source:"", Service:"", Mechanism:"", Username:"", Password:"", DialServer: (func(* mgo.ServerAddr) (net.Conn, error))(nil), Dial:(func( net.Addr) (net.Conn, error))(0x5af220)}; memberHostport "10.0.3.1:37017"; user ""; password ""
2014-07-08 14:04:14 DEBUG juju.worker.
There's 2.5 minutes there before we even start the replicaset initiation stuff. I'm not sure exactly what's going on, and it's not impossible that it's mongo being slow, but I don't think it's a sure thing. A lot has changed in 1.20, so it bears more investigation.