What steps will reproduce the problem?
- Update to latest openjdk-8 in Ubuntu 16.04 (8u181-b13-1ubuntu0.16.04.1)
- Run YouTrack 2018.3 build 47010 with SSL enabled (standalone JAR, bundled Hub)
- Attempt to connect to YouTrack or just observe youtrack-stderr.log
What is the expected result?
As a JetBrains customer, we expect YouTrack to boot and respond successfully on a standard Ubuntu 16.04 system with the latest openjdk-8 package.
What happens instead?
YouTrack does not start correctly.
The latest openjdk-8 update on Ubuntu contains the following backported change from 8u191:
- CVE-2018-3180, S8202613: Improve TLS connections stability.
The change to SSLSessionImpl
can be examined here: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/7f473886abb4
More info and context:
It appears that certain libraries within YouTrack rely on sun.* non-public APIs (Why Developers Should Not Write Programs That Call 'sun' Packages). While it is understandable that 3rd party libraries are hard to control, JetBrains could work to fix those libraries (or update them to later versions), ship multiple dependency versions that are compatible with both old and new SSLSessionImpl
or choose alternatives that use public Java APIs.
Relevant excerpts from youtrack-stderr.log:
Call into sun.security.ssl.Handshaker
from org.eclipse.jetty.io.ssl.SslConnection
:
[2018-11-08 17:09:55,215] [YouTrack Error] [2018-11-08 17:09:55,203] WARN - y.util.thread.QueuedThreadPool -
[2018-11-08 17:09:55,215] [YouTrack Error] java.lang.NoSuchMethodError: sun.security.ssl.SSLSessionImpl.<init>(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/util/Collection;Ljava/security/SecureRandom;Ljava/lang/String;IZ)V
[2018-11-08 17:09:55,215] [YouTrack Error] at sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:787) ~[?:1.8.0_181]
[2018-11-08 17:09:55,215] [YouTrack Error] at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:232) ~[?:1.8.0_181]
[2018-11-08 17:09:55,215] [YouTrack Error] at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052) ~[?:1.8.0_181]
[2018-11-08 17:09:55,215] [YouTrack Error] at sun.security.ssl.Handshaker$1.run(Handshaker.java:992) ~[?:1.8.0_181]
[2018-11-08 17:09:55,215] [YouTrack Error] at sun.security.ssl.Handshaker$1.run(Handshaker.java:989) ~[?:1.8.0_181]
[2018-11-08 17:09:55,216] [YouTrack Error] at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_181]
[2018-11-08 17:09:55,216] [YouTrack Error] at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1467) ~[?:1.8.0_181]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:687) ~[jetty-io-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.server.NegotiatingServerConnection.fill(NegotiatingServerConnection.java:153) ~[jetty-server-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.server.NegotiatingServerConnection.onFillable(NegotiatingServerConnection.java:98) ~[jetty-server-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) ~[jetty-io-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) ~[jetty-io-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:251) ~[jetty-io-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) ~[jetty-io-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) ~[jetty-io-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) ~[jetty-io-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) ~[jetty-util-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,216] [YouTrack Error] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) ~[jetty-util-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,217] [YouTrack Error] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) ~[jetty-util-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,217] [YouTrack Error] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) ~[jetty-util-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,217] [YouTrack Error] at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [jetty-util-9.3.24.v20180605.jar:9.3.24.v20180605]
[2018-11-08 17:09:55,217] [YouTrack Error] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Call into sun.net.www.protocol.https.HttpsURLConnectionImpl
from org.glassfish.jersey.client.internal.HttpUrlConnector
[2018-11-08 17:10:19,787] [YouTrack Error] [2018-11-08 17:10:19,783] ERROR - dle.util.hub.HubServiceUpdater - Cannot update services information in Hub
[2018-11-08 17:10:19,788] [YouTrack Error] com.jetbrains.bundle.hub_client.util.validation.HubUrlValidationException: sun.security.ssl.SSLSessionImpl.<init>(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/util/Collection;Lsun/security/ssl/SessionId;Ljava/lang/String;IZ)V
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.hub_client.util.HubClientProvider.buildAndValidateHubClient(HubClientProvider.java:156) ~[hub-client-util-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.hub_client.util.HubClientProvider.validateAndRememberHubClient(HubClientProvider.java:90) ~[hub-client-util-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.hub_client.util.HubClientProvider.getHubClient(HubClientProvider.java:79) ~[hub-client-util-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.hub_client.util.BundleHubClient.getHubClient(BundleHubClient.java:188) ~[hub-client-util-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.hub_client.util.BundleHubClient.getBundleHubAccountsClient(BundleHubClient.java:111) ~[hub-client-util-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.util.hub.HubServiceUpdater.updateHubInfo(HubServiceUpdater.java:213) ~[bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.util.hub.HubServiceUpdater.update(HubServiceUpdater.java:54) [bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.services.impl.HubConfiguratorService.configureHubServices(HubConfiguratorService.java:87) [bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.services.impl.HubConfiguratorService.doStart(HubConfiguratorService.java:64) [bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.services.impl.ServiceBase.start(ServiceBase.java:65) [bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.Services.startService(Services.java:627) [bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.Services.startAllServices(Services.java:554) [bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.Services.start(Services.java:534) [bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.BundleMain.start(BundleMain.java:208) [bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at com.jetbrains.bundle.BundleMain.start(BundleMain.java:167) [bundle-1.4.434.jar:?]
[2018-11-08 17:10:19,788] [YouTrack Error] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
[2018-11-08 17:10:19,788] [YouTrack Error] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181]
[2018-11-08 17:10:19,788] [YouTrack Error] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181]
[2018-11-08 17:10:19,788] [YouTrack Error] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at com.jetbrains.bundle.bootstrap.Bundle$EntryPointProvider$1.invoke(Bundle.java:92) [bundle-bootstrap-1.4.434.jar:?]
[2018-11-08 17:10:19,789] [YouTrack Error] at com.sun.proxy.$Proxy18.start(Unknown Source) [?:?]
[2018-11-08 17:10:19,789] [YouTrack Error] at com.jetbrains.launcher.AppProxy$6$1.call(AppProxy.java:99) [youtrack-wrapper.jar:1.0.117]
[2018-11-08 17:10:19,789] [YouTrack Error] at com.jetbrains.launcher.AppProxy$6$1.call(AppProxy.java:97) [youtrack-wrapper.jar:1.0.117]
[2018-11-08 17:10:19,789] [YouTrack Error] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] Caused by: java.lang.NoSuchMethodError: sun.security.ssl.SSLSessionImpl.<init>(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/util/Collection;Lsun/security/ssl/SessionId;Ljava/lang/String;IZ)V
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.security.ssl.ClientHandshaker.serverHello(ClientHandshaker.java:723) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:210) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.security.ssl.Handshaker.process_record(Handshaker.java:987) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559) ~[?:1.8.0_181]
[2018-11-08 17:10:19,789] [YouTrack Error] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[?:1.8.0_181]
[2018-11-08 17:10:19,790] [YouTrack Error] at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564) ~[?:1.8.0_181]
[2018-11-08 17:10:19,790] [YouTrack Error] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) ~[?:1.8.0_181]
[2018-11-08 17:10:19,790] [YouTrack Error] at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) ~[?:1.8.0_181]
[2018-11-08 17:10:19,790] [YouTrack Error] at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347) ~[?:1.8.0_181]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:351) ~[jersey-client-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:246) ~[jersey-client-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255) ~[jersey-client-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:700) ~[jersey-client-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[jersey-common-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[jersey-common-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.internal.Errors.process(Errors.java:228) ~[jersey-common-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) ~[jersey-common-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:696) ~[jersey-client-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:420) ~[jersey-client-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:316) ~[jersey-client-2.20.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at jetbrains.jetpass.client.oauth2.OAuth2Client.getHubScope(OAuth2Client.kt:44) ~[hub-client-all-2018.1.8679.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at jetbrains.jetpass.client.accounts.BaseAccountsClient.checkServiceCredentials(BaseAccountsClient.kt:51) ~[hub-client-all-2018.1.8679.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] at com.jetbrains.bundle.hub_client.util.HubClientProvider.buildAndValidateHubClient(HubClientProvider.java:115) ~[hub-client-util-1.4.434.jar:?]
[2018-11-08 17:10:19,790] [YouTrack Error] ... 26 more