Skip to content

GPMONGODB-402: No way of configuring maxWaitQueueSize #445

@graemerocher

Description

@graemerocher

Original Reporter: ayankovsky
Environment: Tomcat 7, Ubuntu 14.04 LTS, Mongodb 2.6.3
Version: 3.0.2
Migrated From: http://jira.grails.org/browse/GPMONGODB-402

I was trying to do some load testing of my grails app and found that my requests are failing with following exception:

{noformat}

2015-01-04 07:52:13,127 [http-nio-8080-exec-151] ERROR errors.GrailsExceptionResolver - MongoWaitQueueFullException occurred when processing request: [GET] /
Too many threads are already waiting for a connection. Max number of threads (maxWaitQueueSize) of 50 has been exceeded.. Stacktrace follows:
com.mongodb.MongoWaitQueueFullException: Too many threads are already waiting for a connection. Max number of threads (maxWaitQueueSize) of 50 has been exceeded.
at com.mongodb.PooledConnectionProvider.get(PooledConnectionProvider.java:70)
at com.mongodb.DefaultServer.getConnection(DefaultServer.java:61)
at com.mongodb.BaseCluster$WrappedServer.getConnection(BaseCluster.java:248)
at com.mongodb.DBTCPConnector$MyPort.getConnection(DBTCPConnector.java:503)
at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:451)
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:286)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:271)
at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84)
at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:66)
at com.mongodb.DBCursor._check(DBCursor.java:458)
at com.mongodb.DBCursor._hasNext(DBCursor.java:546)
at com.mongodb.DBCursor._fill(DBCursor.java:605)
at com.mongodb.DBCursor.toArray(DBCursor.java:640)
at com.mongodb.DBCursor.toArray(DBCursor.java:629)
at com.letsgo.webapp.GeoIpService.find(GeoIpService.groovy:7)
at com.letsgo.webapp.AppController.index(AppController.groovy:10)
at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198)
at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.java:53)
at grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter.doFilter(RequestHolderAuthenticationFilter.java:49)
at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.java:82)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

{noformat}

I found that there is the way to configure it in Java Mongo Driver, but no way to configure with Grails Plugin. Am I missing something?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions