-
Type:
Bug
-
Resolution: Gone away
-
Priority:
Unknown
-
None
-
Affects Version/s: 5.5.1
-
Component/s: None
-
None
-
None
-
Java Drivers
-
None
-
None
-
None
-
None
-
None
-
None
When connecting to a MongoDB Atlas Free Tier cluster using a standard mongodb+srv:// connection string, the MongoDB Java driver fails during initialization with an Interrupted waiting for lock error.
The issue occurs during the DNS SRV polling process — even though the cluster is reachable and DNS resolution works correctly. It happens within a Kubernetes environment (Amazon EKS), running the Microcks 1.13 application (Spring Boot + MongoDB driver 5.5.1).
mongodb+srv://<user>:<password>@xxxxx.mongodb.net/?appName=microcks
(Database host obfuscated for privacy)
🧩 Environment
- MongoDB Driver: 5.5.1
- Java: OpenJDK 21
- App container: Spring Boot (Microcks 1.13)
- Runtime: Kubernetes (Amazon EKS, private cluster with NAT)
- MongoDB Atlas Cluster: Free Tier (no VPC peering, public DNS)
17:18:49.059 [DEBUG] org.mongodb.driver.connection - Connection pool created for ac-cvtmxzy-shard-00-01.1awbn0g.mongodb.net:27017 using options maxIdleTimeMS=0, minPoolSize=0, maxPoolSize=100, maxConnecting=2, waitQueueTimeoutMS=120000 17:18:49.062 [INFO] org.mongodb.driver.cluster - Adding discovered server ac-cvtmxzy-shard-00-02.1awbn0g.mongodb.net:27017 to client view of cluster 17:18:49.064 [DEBUG] org.mongodb.driver.connection - Connection pool created for ac-cvtmxzy-shard-00-02.1awbn0g.mongodb.net:27017 using options maxIdleTimeMS=0, minPoolSize=0, maxPoolSize=100, maxConnecting=2, waitQueueTimeoutMS=120000 17:18:49.067 [WARN] org.mongodb.driver.cluster - Exception in monitor thread during notification of DNS resolution state change com.mongodb.MongoInterruptedException: Interrupted waiting for lock at com.mongodb.internal.thread.InterruptionUtil.interruptAndCreateMongoInterruptedException(InterruptionUtil.java:41) at com.mongodb.internal.Locks.lockInterruptibly(Locks.java:92) at com.mongodb.internal.Locks.checkedWithInterruptibleLock(Locks.java:80) at com.mongodb.internal.Locks.withInterruptibleLock(Locks.java:75) at com.mongodb.internal.Locks.withInterruptibleLock(Locks.java:68) at com.mongodb.internal.connection.BaseCluster.withLock(BaseCluster.java:252) at com.mongodb.internal.connection.AbstractMultiServerCluster.withLock(AbstractMultiServerCluster.java:59) at com.mongodb.internal.connection.BaseCluster.updateDescription(BaseCluster.java:224) at com.mongodb.internal.connection.AbstractMultiServerCluster.updateDescription(AbstractMultiServerCluster.java:392) at com.mongodb.internal.connection.AbstractMultiServerCluster.lambda$initialize$0(AbstractMultiServerCluster.java:105) at com.mongodb.internal.Locks.lambda$withInterruptibleLock$1(Locks.java:69) at com.mongodb.internal.Locks.checkedWithInterruptibleLock(Locks.java:82) at com.mongodb.internal.Locks.withInterruptibleLock(Locks.java:75) at com.mongodb.internal.Locks.withInterruptibleLock(Locks.java:68) at com.mongodb.internal.connection.BaseCluster.withLock(BaseCluster.java:252) at com.mongodb.internal.connection.AbstractMultiServerCluster.withLock(AbstractMultiServerCluster.java:59) at com.mongodb.internal.connection.AbstractMultiServerCluster.initialize(AbstractMultiServerCluster.java:101) at com.mongodb.internal.connection.DnsMultiServerCluster$1.initialize(DnsMultiServerCluster.java:55) at com.mongodb.internal.connection.DefaultDnsSrvRecordMonitor$DnsSrvRecordMonitorRunnable.run(DefaultDnsSrvRecordMonitor.java:89) at java.base/java.lang.Thread.run(Thread.java:1583) at com.mongodb.internal.Locks.checkedWithInterruptibleLock(Locks.java:82) at com.mongodb.internal.Locks.withInterruptibleLock(Locks.java:75) at com.mongodb.internal.Locks.withInterruptibleLock(Locks.java:68) at com.mongodb.internal.connection.BaseCluster.withLock(BaseCluster.java:252) at com.mongodb.internal.connection.AbstractMultiServerCluster.withLock(AbstractMultiServerCluster.java:59) at com.mongodb.internal.connection.AbstractMultiServerCluster.initialize(AbstractMultiServerCluster.java:101) at com.mongodb.internal.connection.DnsMultiServerCluster$1.initialize(DnsMultiServerCluster.java:55) at com.mongodb.internal.connection.DefaultDnsSrvRecordMonitor$DnsSrvRecordMonitorRunnable.run(DefaultDnsSrvRecordMonitor.java:89) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.lang.InterruptedException: null at java.base/java.util.concurrent.locks.ReentrantLock$Sync.lockInterruptibly(ReentrantLock.java:159) at java.base/java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:372) at com.mongodb.internal.Locks.lockInterruptibly(Locks.java:90) ... 18 common frames omitted
🧩 Expected behavior
The MongoDB Java driver should successfully initialize and connect to the Atlas SRV URI without throwing an Interrupted waiting for lock exception.