Skip to content

Commit e865bca

Browse files
committed
Improve reliability of mongocryptd default launching
* Configure mongocryptd to log to /dev/null via --logpath * Configure one second socket connect and read timeouts for connections to mongocryptd * Apply connection string after applying default settings
1 parent 2346e5b commit e865bca

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

driver-core/src/main/com/mongodb/internal/capi/MongoCryptHelper.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.mongodb.MongoClientException;
2222
import com.mongodb.MongoClientSettings;
2323
import com.mongodb.connection.ClusterSettings;
24+
import com.mongodb.connection.SocketSettings;
2425
import com.mongodb.crypt.capi.MongoAwsKmsProviderOptions;
2526
import com.mongodb.crypt.capi.MongoCryptOptions;
2627
import com.mongodb.crypt.capi.MongoLocalKmsProviderOptions;
@@ -77,20 +78,32 @@ public static List<String> createMongocryptdSpawnArgs(final Map<String, Object>
7778
spawnArgs.add("--idleShutdownTimeoutSecs");
7879
spawnArgs.add("60");
7980
}
81+
if (!spawnArgs.contains("--logpath")) {
82+
spawnArgs.add("--logappend");
83+
spawnArgs.add("--logpath");
84+
spawnArgs.add(System.getProperty("os.name").startsWith("Windows") ? "NUL" : "/dev/null");
85+
}
8086
return spawnArgs;
8187
}
8288

8389
public static MongoClientSettings createMongocryptdClientSettings(final String connectionString) {
8490

8591
return MongoClientSettings.builder()
86-
.applyConnectionString(new ConnectionString((connectionString != null)
87-
? connectionString : "mongodb://localhost:27020"))
8892
.applyToClusterSettings(new Block<ClusterSettings.Builder>() {
8993
@Override
9094
public void apply(final ClusterSettings.Builder builder) {
9195
builder.serverSelectionTimeout(1, TimeUnit.SECONDS);
9296
}
9397
})
98+
.applyToSocketSettings(new Block<SocketSettings.Builder>() {
99+
@Override
100+
public void apply(final SocketSettings.Builder builder) {
101+
builder.readTimeout(1, TimeUnit.SECONDS);
102+
builder.connectTimeout(1, TimeUnit.SECONDS);
103+
}
104+
})
105+
.applyConnectionString(new ConnectionString((connectionString != null)
106+
? connectionString : "mongodb://localhost:27020"))
94107
.build();
95108
}
96109

0 commit comments

Comments
 (0)