[
https://issues.apache.org/jira/browse/FLINK-9878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16552552#comment-16552552
]
ASF GitHub Bot commented on FLINK-9878:
---------------------------------------
Github user pnowojski commented on a diff in the pull request:
https://github.com/apache/flink/pull/6355#discussion_r204329262
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/net/SSLUtils.java ---
@@ -249,14 +357,73 @@ public static SSLContext
createSSLServerContext(Configuration sslConfig) throws
// Set up key manager factory to use the server key
store
KeyManagerFactory kmf = KeyManagerFactory.getInstance(
-
KeyManagerFactory.getDefaultAlgorithm());
+ KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks, certPassword.toCharArray());
+ return new SSLServerConfiguration(
+ sslProtocolVersion,
+ sslCipherSuites,
+ kmf,
+ sessionCacheSize,
+ sessionTimeoutMs,
+ handshakeTimeoutMs,
+ closeNotifyFlushTimeoutMs);
+ }
+
+ return null;
+ }
+
+ /**
+ * Creates the SSL Context for the server assuming SSL is configured.
+ *
+ * @param sslConfig
+ * The application configuration
+ * @return The SSLContext object which can be used by the ssl transport
server
+ * @throws Exception
+ * Thrown if there is any misconfiguration
+ */
+ @Nullable
+ public static SSLContext createSSLServerContext(SSLServerConfiguration
sslConfig) throws Exception {
+ Preconditions.checkNotNull(sslConfig);
+
+ LOG.debug("Creating server SSL context from configuration");
+ SSLContext serverSSLContext =
SSLContext.getInstance(sslConfig.sslProtocolVersion);
+
serverSSLContext.init(sslConfig.keyManagerFactory.getKeyManagers(), null, null);
+ if (sslConfig.sessionCacheSize >= 0) {
+
serverSSLContext.getServerSessionContext().setSessionCacheSize(sslConfig.sessionCacheSize);
+ }
+ if (sslConfig.sessionTimeoutMs >= 0) {
+
serverSSLContext.getServerSessionContext().setSessionTimeout(sslConfig.sessionTimeoutMs
/ 1000);
+ }
+
+ return serverSSLContext;
+ }
+
+ /**
+ * Creates the SSL Context for the server if SSL is configured.
+ *
+ * @param sslConfig
+ * The application configuration
+ * @return The SSLContext object which can be used by the ssl transport
server
+ * Returns null if SSL is disabled
+ * @throws Exception
+ * Thrown if there is any misconfiguration
+ */
+ @Nullable
+ public static SSLContext createSSLServerContext(Configuration
sslConfig) throws Exception {
+
+ Preconditions.checkNotNull(sslConfig);
+ SSLContext serverSSLContext = null;
+
+ if (getSSLEnabled(sslConfig)) {
--- End diff --
ditto: reverse if branch and `Optional`
> IO worker threads BLOCKED on SSL Session Cache while CMS full gc
> ----------------------------------------------------------------
>
> Key: FLINK-9878
> URL: https://issues.apache.org/jira/browse/FLINK-9878
> Project: Flink
> Issue Type: Bug
> Components: Network
> Affects Versions: 1.5.0, 1.5.1, 1.6.0
> Reporter: Nico Kruber
> Assignee: Nico Kruber
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.5.2, 1.6.0
>
>
> According to https://github.com/netty/netty/issues/832, there is a JDK issue
> during garbage collection when the SSL session cache is not limited. We
> should allow the user to configure this and further (advanced) SSL parameters
> for fine-tuning to fix this and similar issues. In particular, the following
> parameters should be configurable:
> - SSL session cache size
> - SSL session timeout
> - SSL handshake timeout
> - SSL close notify flush timeout
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)