13:15:22.039 [default-akka.actor.default-dispatcher-4] INFO reactivemongo.api.MongoDriver - No mongo-async-driver configuration found13:15:22.120 [default-akka.actor.default-dispatcher-6] INFO reactivemongo.api.MongoDriver - [Supervisor-1] Creating connection: Connection-213:15:22.131 [reactivemongo-akka.actor.default-dispatcher-4] DEBUG reactivemongo.api.MongoDriver - [Supervisor-1] Add connection to the supervisor: Connection-213:15:22.150 [default-akka.actor.default-dispatcher-6] DEBUG reactivemongo.api.Failover2 - [Supervisor-1/Connection-2] Waiting is available...13:15:23.024 [reactivemongo-akka.actor.default-dispatcher-2] DEBUG reactivemongo.core.actors.MongoDBSystem - [Supervisor-1/Connection-2] The node set is available (Set(ds013172-a.mlab.com:13172, ds013172.mlab.com:13172)); Waiting authentication: Set()13:15:23.114 [reactivemongo-akka.actor.default-dispatcher-3] DEBUG reactivemongo.core.actors.MongoDBSystem - AUTH: got challenge for channel -1745266098: ScramSha1Challenge(1)13:15:23.220 [reactivemongo-akka.actor.default-dispatcher-3] ERROR reactivemongo.core.actors.MongoDBSystem - [Supervisor-1/Connection-2] Authentication failurereactivemongo.core.commands.DefaultCommandError: BSONCommandError['fails to negociate SCRAM-SHA1: org.apache.commons.codec.digest.DigestUtils.sha1([B)[B'] at reactivemongo.core.commands.CommandError$.apply(commands.scala:149) at reactivemongo.core.commands.ScramSha1StartNegociation$$anonfun$3$$anonfun$apply$16$$anonfun$apply$19.liftedTree1$1(authentication.scala:191) at reactivemongo.core.commands.ScramSha1StartNegociation$$anonfun$3$$anonfun$apply$16$$anonfun$apply$19.apply(authentication.scala:160) at reactivemongo.core.commands.ScramSha1StartNegociation$$anonfun$3$$anonfun$apply$16$$anonfun$apply$19.apply(authentication.scala:156) at scala.util.Either$RightProjection.flatMap(Either.scala:522) at reactivemongo.core.commands.ScramSha1StartNegociation$$anonfun$3$$anonfun$apply$16.apply(authentication.scala:156) at reactivemongo.core.commands.ScramSha1StartNegociation$$anonfun$3$$anonfun$apply$16.apply(authentication.scala:152) at scala.util.Either$RightProjection.flatMap(Either.scala:522) at reactivemongo.core.commands.ScramSha1StartNegociation$$anonfun$3.apply(authentication.scala:152) at reactivemongo.core.commands.ScramSha1StartNegociation$$anonfun$3.apply(authentication.scala:149) at scala.util.Either$RightProjection.flatMap(Either.scala:522) at reactivemongo.core.commands.ScramSha1StartNegociation.<init>(authentication.scala:149) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2$$anonfun$applyOrElse$6$$anonfun$apply$12.apply(authentication.scala:107) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2$$anonfun$applyOrElse$6$$anonfun$apply$12.apply(authentication.scala:104) at reactivemongo.core.actors.MongoDBSystem$$anonfun$whenAuthenticating$1$$anonfun$apply$22.apply(actors.scala:769) at reactivemongo.core.actors.MongoDBSystem$$anonfun$whenAuthenticating$1$$anonfun$apply$22.apply(actors.scala:768) at scala.Option.fold(Option.scala:158) at reactivemongo.core.actors.MongoDBSystem$$anonfun$whenAuthenticating$1.apply(actors.scala:768) at reactivemongo.core.actors.MongoDBSystem$$anonfun$whenAuthenticating$1.apply(actors.scala:767) at reactivemongo.core.nodeset.NodeSet$$anonfun$10$$anonfun$1.applyOrElse(nodeset.scala:113) at reactivemongo.core.nodeset.NodeSet$$anonfun$10$$anonfun$1.applyOrElse(nodeset.scala:112) at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) at reactivemongo.core.nodeset.utils.package$.update(nodeset.scala:58) at reactivemongo.core.nodeset.NodeSet$$anonfun$10.apply(nodeset.scala:112) at reactivemongo.core.nodeset.NodeSet$$anonfun$10.apply(nodeset.scala:111) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234) at scala.collection.Iterator$class.foreach(Iterator.scala:893) at scala.collection.AbstractIterator.foreach(Iterator.scala:1336) at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) at scala.collection.AbstractIterable.foreach(Iterable.scala:54) at scala.collection.TraversableLike$class.map(TraversableLike.scala:234) at scala.collection.AbstractTraversable.map(Traversable.scala:104) at reactivemongo.core.nodeset.NodeSet.updateByChannelId(nodeset.scala:111) at reactivemongo.core.nodeset.NodeSet.updateConnectionByChannelId(nodeset.scala:109) at reactivemongo.core.actors.MongoDBSystem$class.whenAuthenticating(actors.scala:767) at reactivemongo.core.actors.StandardDBSystem.whenAuthenticating(actors.scala:934) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2$$anonfun$applyOrElse$6.apply(authentication.scala:104) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2$$anonfun$applyOrElse$6.apply(authentication.scala:101) at scala.util.Either.fold(Either.scala:99) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2.applyOrElse(authentication.scala:93) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:170) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171) at akka.actor.Actor$class.aroundReceive(Actor.scala:484) at reactivemongo.core.actors.StandardDBSystem.aroundReceive(actors.scala:934) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526) at akka.actor.ActorCell.invoke(ActorCell.scala:495) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) at akka.dispatch.Mailbox.run(Mailbox.scala:224) at akka.dispatch.Mailbox.exec(Mailbox.scala:234) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)13:15:23.302 [reactivemongo-akka.actor.default-dispatcher-3] DEBUG reactivemongo.core.actors.MongoDBSystem - AUTH: got challenge for channel -1745266098: ScramSha1Challenge(1)13:15:23.303 [reactivemongo-akka.actor.default-dispatcher-3] ERROR reactivemongo.core.actors.MongoDBSystem - [Supervisor-1/Connection-2] Authentication failurereactivemongo.core.commands.DefaultCommandError: BSONCommandError['invalid SCRAM-SHA1 random prefix'] at reactivemongo.core.commands.CommandError$.apply(commands.scala:149) at reactivemongo.core.commands.ScramSha1StartNegociation$$anonfun$2.apply(authentication.scala:150) at reactivemongo.core.commands.ScramSha1StartNegociation$$anonfun$2.apply(authentication.scala:150) at scala.Option.toRight(Option.scala:312) at reactivemongo.core.commands.ScramSha1StartNegociation.<init>(authentication.scala:150) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2$$anonfun$applyOrElse$6$$anonfun$apply$12.apply(authentication.scala:107) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2$$anonfun$applyOrElse$6$$anonfun$apply$12.apply(authentication.scala:104) at reactivemongo.core.actors.MongoDBSystem$$anonfun$whenAuthenticating$1$$anonfun$apply$22.apply(actors.scala:769) at reactivemongo.core.actors.MongoDBSystem$$anonfun$whenAuthenticating$1$$anonfun$apply$22.apply(actors.scala:768) at scala.Option.fold(Option.scala:158) at reactivemongo.core.actors.MongoDBSystem$$anonfun$whenAuthenticating$1.apply(actors.scala:768) at reactivemongo.core.actors.MongoDBSystem$$anonfun$whenAuthenticating$1.apply(actors.scala:767) at reactivemongo.core.nodeset.NodeSet$$anonfun$10$$anonfun$1.applyOrElse(nodeset.scala:113) at reactivemongo.core.nodeset.NodeSet$$anonfun$10$$anonfun$1.applyOrElse(nodeset.scala:112) at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) at reactivemongo.core.nodeset.utils.package$.update(nodeset.scala:58) at reactivemongo.core.nodeset.NodeSet$$anonfun$10.apply(nodeset.scala:112) at reactivemongo.core.nodeset.NodeSet$$anonfun$10.apply(nodeset.scala:111) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234) at scala.collection.Iterator$class.foreach(Iterator.scala:893) at scala.collection.AbstractIterator.foreach(Iterator.scala:1336) at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) at scala.collection.AbstractIterable.foreach(Iterable.scala:54) at scala.collection.TraversableLike$class.map(TraversableLike.scala:234) at scala.collection.AbstractTraversable.map(Traversable.scala:104) at reactivemongo.core.nodeset.NodeSet.updateByChannelId(nodeset.scala:111) at reactivemongo.core.nodeset.NodeSet.updateConnectionByChannelId(nodeset.scala:109) at reactivemongo.core.actors.MongoDBSystem$class.whenAuthenticating(actors.scala:767) at reactivemongo.core.actors.StandardDBSystem.whenAuthenticating(actors.scala:934) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2$$anonfun$applyOrElse$6.apply(authentication.scala:104) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2$$anonfun$applyOrElse$6.apply(authentication.scala:101) at scala.util.Either.fold(Either.scala:99) at reactivemongo.core.actors.MongoScramSha1Authentication$$anonfun$2.applyOrElse(authentication.scala:93) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:170) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171) at akka.actor.Actor$class.aroundReceive(Actor.scala:484) at reactivemongo.core.actors.StandardDBSystem.aroundReceive(actors.scala:934) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526) at akka.actor.ActorCell.invoke(ActorCell.scala:495) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) at akka.dispatch.Mailbox.run(Mailbox.scala:224) at akka.dispatch.Mailbox.exec(Mailbox.scala:234) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
def dbFromConnection(connection: MongoConnection): Future[BSONCollection] = { // define database and collection vals connection.database(database).map(_.collection(collection)) }
def connect = { // define all the vals used in url val driver = new MongoDriver val url: String = s"mongodb://$user:$password@$server/$database?authMode=scram-sha1&rm.tcpNoDelay=true" Future.fromTry(MongoConnection.parseURI(url)).map(driver.connection) }
val future = connect .flatMap(dbFromConnection) .flatMap(/* use the collection */)
As long as a valid config with connection URI is used, this is never used.