Tests started to fail with random "SSL peer shut down incorrectly" (#53)
wojciech.kapcia@tigase.net opened 4 years ago
tigase.jaxmpp.core.client.exceptions.JaxmppException: tigase.jaxmpp.core.client.exceptions.JaxmppException: java.io.EOFException: SSL peer shut down incorrectly
wojciech.kapcia@tigase.net commented 4 years ago

Reason is always the same:

[01:30:24] :     [Step 3/5] 2020-07-08 22:30:24 | ErrorEvent{condition=null, …, caught=javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake}
[2020-07-09 17:58:56:054] [FINER   ] [              in_2-c2s ] ClientConnectionManager.processCommand(): Starting TLS for connection: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, type: accept, Socket: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], jid: null
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] ClientTrustManagerFactory.getManager(): Creating new TrustManager for VHost localhost
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] ClientTrustManagerFactory.getManager(): CA cert path=null for VHost localhost
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] ClientTrustManagerFactory.getManager(): Creating new TrustManager for VHost localhost
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] ClientTrustManagerFactory.getManager(): CA cert path=null for VHost localhost
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] ClientConnectionManager.processCommand(): TLS: wantClientAuth=false, needClientAuth=false, trustManagers=null; for connection c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, type: accept, Socket: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], jid: null
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] XMPPIOService.processWaitingPackets(): c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, type: accept, Socket: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], jid: null, Sending packet: from=null, to=null, DATA=<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>, SIZE=50, XMLNS=urn:ietf:params:xml:ns:xmpp-tls, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] IOService.writeData()            : Socket: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], Writing data (50): <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
[2020-07-09 17:58:56:054] [FINER   ] [              in_2-c2s ] SocketIO.write()                 : SOCKET - Writing data, remaining: 50, c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222]
[2020-07-09 17:58:56:054] [FINER   ] [              in_2-c2s ] SocketIO.write()                 : Wrote to channel 50 bytes, c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222]
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] IOService.writeData()            : Socket: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], wrote: 50
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] XMPPIOService.processWaitingPackets(): c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, type: accept, Socket: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], jid: null, SENT: <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] IOService.isConnected()          : Socket: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], Connected: true, id: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] IOService.startTLS()             : c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, type: accept, Socket: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], jid: null, Starting TLS for domain: localhost
[2020-07-09 17:58:56:054] [FINEST  ] [              in_2-c2s ] SSLContextContainer.getSSLContext(): Using SSLHolder: SSLHolder{domainCertificate=subject: *.localhost, altNames: [], issuer: CN=*.localhost, EMAILADDRESS=admin@tigase.org, OU=XMPP Service, O=Tigase.org, sslContext=javax.net.ssl.SSLContext@5b3f7956, tms=[tigase.io.CertificateContainer$FakeTrustManager@59bee480]}
[2020-07-09 17:58:56:055] [INFO    ] [              in_2-c2s ] SSLContextContainer.getHardenedMode(): Using hardened-mode: secure for domain: localhost
[2020-07-09 17:58:56:055] [INFO    ] [              in_2-c2s ] SSLContextContainer.getHardenedMode(): Using hardened-mode: secure for domain: localhost
[2020-07-09 17:58:56:055] [FINE    ] [              in_2-c2s ] JcaTLSWrapper.<init>()           : Created server TLSWrapper. Protocols: [TLSv1.2, TLSv1.1, TLSv1, SSLv2Hello]; Ciphers: [TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]; Session cipher: SSL_NULL_WITH_NULL_NULL
[2020-07-09 17:58:56:055] [FINER   ] [              in_2-c2s ] TLSIO.<init>()                   : TLS Socket created: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222]
[2020-07-09 17:58:56:055] [FINEST  ] [              in_2-c2s ] SocketThread.addSocketServicePriv(): Adding to waiting: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, type: accept, Socket: TLS: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], jid: null
[2020-07-09 17:58:56:054] [FINEST  ] [    socketReadThread-0 ] SocketThread.addAllWaiting()     : ADDED OP_READ: 127.0.0.1_5222_127.0.0.1_36280
[2020-07-09 17:58:56:055] [FINER   ] [    socketReadThread-0 ] SocketThread.addAllWaiting()     : Forcing stopping the service: 127.0.0.1_5222_127.0.0.1_36280
java.nio.channels.CancelledKeyException
        at java.base/sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:71)
        at java.base/sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:96)
        at java.base/java.nio.channels.spi.AbstractSelectableChannel.register(AbstractSelectableChannel.java:217)
        at tigase.net.SocketThread.addAllWaiting(SocketThread.java:341)
        at tigase.net.SocketThread.run(SocketThread.java:265)
        at java.base/java.lang.Thread.run(Thread.java:834)
[2020-07-09 17:58:56:055] [FINEST  ] [    socketReadThread-0 ] StreamManagementIOProcessor.serviceStopped(): c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, type: accept, Socket: TLS: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], jid: null, service stopped - StreamManagement disabled
[2020-07-09 17:58:56:055] [FINER   ] [    socketReadThread-0 ] IOService.forceStop()            : Socket: TLS: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222], Force stop called...
[2020-07-09 17:58:56:055] [FINER   ] [    socketReadThread-0 ] IOService.forceStop()            : Calling stop on: TLS: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222]
[2020-07-09 17:58:56:055] [FINEST  ] [    socketReadThread-0 ] TLSIO.stop()                     : Stop called...TLS: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222]
[2020-07-09 17:58:56:055] [FINEST  ] [    socketReadThread-0 ] SocketIO.stop()                  : Stop called c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[addr=/127.0.0.1,port=36280,localport=5222]
[2020-07-09 17:58:56:055] [FINER   ] [    socketReadThread-0 ] IOService.forceStop()            : Calling stop on the listener: tigase.server.xmppclient.ClientConnectionManager@6befbb12
[2020-07-09 17:58:56:055] [FINEST  ] [    socketReadThread-0 ] ConnectionManager$ServiceConnectedTimer.cancel(): Missing service connected timer task: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, type: accept, Socket: TLS: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[unconnected], jid: null
[2020-07-09 17:58:56:055] [FINER   ] [    socketReadThread-0 ] ConnectionManager.serviceStopped(): [[c2s]] Connection stopped: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, type: accept, Socket: TLS: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280 Socket[unconnected], jid: null
[2020-07-09 17:58:56:055] [FINER   ] [    socketReadThread-0 ] ClientConnectionManager.xmppStreamClosed(): Stream closed: c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280
[2020-07-09 17:58:56:055] [FINE    ] [    socketReadThread-0 ] ClientConnectionManager.xmppStreamClosed(): Service stopped, sending packet: from=c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280, to=sess-man@9585556aacac, DATA=<iq type="set" to="sess-man@9585556aacac" delay="120" id="4824ee9b-dfeb-4ffc-808d-1b1797dd3368" from="c2s@9585556aacac/127.0.0.1_5222_127.0.0.1_36280" retryCount="15"><command node="STREAM_CLOSED" xmlns="http://jabber.org/protocol/commands"/></iq>, SIZE=247, XMLNS=null, PRIORITY=SYSTEM, PERMISSION=NONE, TYPE=set

I'd guess that something in this change https://github.com/tigase/tigase-server/commit/da3b2916c6c1a76c694d3ef821588e4ccac09c42 is throwing an exception (NPE?) that kills the connection, but at the same time, there is no relevant ST. Question is - what, and why only sometimes and randomly? I'll continue tomorrow...

@andrzej.wojcik - anything comes to mind?

Andrzej Wójcik (Tigase) commented 4 years ago

Just a while guess, but what if we would use BouncyCastle as a TLS provider? Why? Because I'm not sure right now what is Jaxmpp using. It used to use JCA but there were some works with BouncyCastle to provide SASL (SCRAM-*-PLUS) and I'm not sure what is being used. It could be the some combination of BC and JCA is causing the issue ie. due to some error.

Please also look at SSLContextContainerAbstract:133:

if (log.isLoggable(Level.FINEST)) {
     log.log(Level.FINEST, "Created new SSLHolder: {0} for domain: {1} (with alias: {2})",
         new String[]{String.valueOf(sslHolder), hostname, alias, String.valueOf(clientMode)});
}

Do we have here an invalid number of arguments? more arguments then we use in the template?

The same issue is in line 165.

Moreover, I do see a weird thing. In ClientTrustManagerFactory in method getManagers() I do see that you have replaced vhost with vhsot.getKey() in logs and then added above the following line:

final String vhostKey = vHost != null ? vHost.getKey() : "null";

It looks to me that for some reason vhost was passed as NULL which should not happen and shouldn't be allowed! Later on in that method vhost is used as a key for trustManagers property which is of type ConcurrentHashMap and according to the JavaDoc NULL is not allowed to be a key there!

NullPointerException - if the specified key or value is null

It looks to me that the root cause is ClientConnectionManager::getVHostItem() which is returning NULL and that is not supported. The question here is Why it returns null?

Maybe vhost repository is not loaded or there was an issue with loading a vhost. We've made a few changes in the vhost-man not so long ago and that could cause this issue.

wojciech.kapcia@tigase.net commented 4 years ago

@andrzej.wojcik

Just a while guess, but what if we would use BouncyCastle as a TLS provider? Why? Because I'm not sure right now what is Jaxmpp using. It used to use JCA but there were some works with BouncyCastle to provide SASL (SCRAM-*-PLUS) and I'm not sure what is being used. It could be the some combination of BC and JCA is causing the issue ie. due to some error.

It's using JCA in TTS-NG. Probably need configuring BC (same as in Tigase)

Please also look at SSLContextContainerAbstract:133: Do we have here an invalid number of arguments? more arguments then we use in the template? The same issue is in line 165.

Yes we do (I'll correct it) but this should not matter - it would case IndexOutOfBound exception if we had more references than items in array AFAIR (in current case it would simply not use last item)

Moreover, I do see a weird thing. In ClientTrustManagerFactory in method getManagers() I do see that you have replaced vhost with vhsot.getKey() in logs and then added above the following line: final String vhostKey = vHost != null ? vHost.getKey() : "null";

I made this change to somewhat limit debug verbosity (information about vhost details were already available, in this case we only care about vhost name) though the change itself (even with above line to prevent accidental NPE) should not matter in this case.

It looks to me that for some reason vhost was passed as NULL which should not happen and shouldn't be allowed! Later on in that method vhost is used as a key for trustManagers property which is of type ConcurrentHashMap and according to the JavaDoc NULL is not allowed to be a key there! It looks to me that the root cause is ClientConnectionManager::getVHostItem() which is returning NULL and that is not supported. The question here is Why it returns null?

Yes, this should not happen (having NULL here) and it's most likely not happening (haven't reviewed the logs yet) and before this commit (I assume) it was not happening so we could assume that there wasn't any NPE in this place. I just made a couple of changes that could prevent possible NPEs but tests are still failing.

(it's kinda annoying that there is no detail with why the connection is broken)

Maybe vhost repository is not loaded or there was an issue with loading a vhost. We've made a few changes in the vhost-man not so long ago and that could cause this issue.

Yes, but it was working just fine before so previous VHost changes should at least be manifested before.

wojciech.kapcia@tigase.net commented 4 years ago

Looking at the summary page, it seems that the problem started with build 8.1.0-SNAPSHOT-b10795 from 2020-07-06 with this comit:

componentInfo{Title=Tigase XMPP Server, Version=8.1.0-SNAPSHOT-b5623/33e78a65, Class=tigase.server.XMPPServer}

so the commit in question seems to be unrelated.

There were two others:

Given that all those failures/skipped tests are related to failure in TLS during registration I'd say the second one would be the most likely cause. I reverted the commit from the jaxmpp and it seems number of this type of failures dropped significantly. I'm starting to suspect that this is some sort of concurrency issue in jaxmpp (can't reproduce it locally)...

wojciech.kapcia@tigase.net commented 4 years ago

It seems it boils down changes in TTS-NG; commits up to 2a64a551 works fine so far.

wojciech.kapcia@tigase.net commented 4 years ago

StackTrace:

2020-07-14 12:49:13 | two-way-tsl-user-OK :: two-way-tsl-user-OK_c6maip0001@a.localhost >> <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.connectors.socket.SocketConnector.printLog: [scid=5 thread=51] Proceeding TLS
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.connectors.socket.SocketConnector.printLog: [scid=5 thread=51] Start handshake
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.connectors.socket.SocketConnector.printLog: [scid=5 thread=51] Can't establish encrypted connection
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.connectors.socket.Worker.interrupt: Worker Interrupted
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.Jaxmpp.onException: Catching exception
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.connectors.socket.Worker.interrupt: Worker Interrupted
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.connectors.socket.SocketConnector.printLog: [scid=5 thread=49] Connector  state changed: connected->disconnecting
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.connectors.socket.SocketConnector.printLog: [scid=5 thread=51] Connector  state changed: disconnecting->disconnected
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.connectors.socket.SocketConnector.printLog: [scid=5 thread=49] Stream terminate not sent, because of connection state==disconnected
2020-07-14 12:49:13 | tigase.jaxmpp.j2se.connectors.socket.Worker.interrupt: Worker Interrupted
tigase.jaxmpp.core.client.exceptions.JaxmppException: tigase.jaxmpp.core.client.exceptions.JaxmppException: java.net.SocketException: Broken pipe (Write failed)
	at tigase.jaxmpp.j2se.Jaxmpp.waitForLoginFinish(Jaxmpp.java:154)
	at tigase.jaxmpp.j2se.Jaxmpp.login(Jaxmpp.java:249)
	at tigase.tests.utils.AccountsManager.unregisterAccount(AccountsManager.java:244)
	at tigase.tests.server.TestTwoWayTLS.registerAccount(TestTwoWayTLS.java:225)
	at tigase.tests.server.TestTwoWayTLS.testConnectionWithCertificate(TestTwoWayTLS.java:119)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
	at org.testng.TestRunner.privateRun(TestRunner.java:648)
	at org.testng.TestRunner.run(TestRunner.java:505)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
	at org.testng.SuiteRunner.run(SuiteRunner.java:364)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
	at org.testng.TestNG.runSuites(TestNG.java:1049)
	at org.testng.TestNG.run(TestNG.java:1017)
	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:135)
	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeSingleClass(TestNGDirectoryTestSuite.java:112)
	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99)
	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:146)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
Caused by: tigase.jaxmpp.core.client.exceptions.JaxmppException: java.net.SocketException: Broken pipe (Write failed)
	at tigase.jaxmpp.core.client.connector.AbstractSocketXmppSessionLogic.processConnectorErrors(AbstractSocketXmppSessionLogic.java:185)
	at tigase.jaxmpp.core.client.connector.AbstractSocketXmppSessionLogic$1.onError(AbstractSocketXmppSessionLogic.java:89)
	at tigase.jaxmpp.core.client.Connector$ErrorHandler$ErrorEvent.dispatch(Connector.java:314)
	at tigase.jaxmpp.core.client.Connector$ErrorHandler$ErrorEvent.dispatch(Connector.java:299)
	at tigase.jaxmpp.j2se.eventbus.ThreadSafeEventBus$2.run(ThreadSafeEventBus.java:81)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.SocketException: Broken pipe (Write failed)
	at java.base/java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.base/java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:110)
	at java.base/java.net.SocketOutputStream.write(SocketOutputStream.java:150)
	at java.base/sun.security.ssl.SSLSocketOutputRecord.encodeChangeCipherSpec(SSLSocketOutputRecord.java:221)
	at java.base/sun.security.ssl.OutputRecord.changeWriteCiphers(OutputRecord.java:162)
	at java.base/sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer.produce(ChangeCipherSpec.java:118)
	at java.base/sun.security.ssl.Finished$T12FinishedProducer.onProduceFinished(Finished.java:395)
	at java.base/sun.security.ssl.Finished$T12FinishedProducer.produce(Finished.java:379)
	at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436)
	at java.base/sun.security.ssl.ServerHelloDone$ServerHelloDoneConsumer.consume(ServerHelloDone.java:182)
	at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422)
	at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:183)
	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1144)
	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1055)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:395)
	at tigase.jaxmpp.j2se.connectors.socket.SocketConnector.proceedJCETLS(SocketConnector.java:1126)
	at tigase.jaxmpp.j2se.connectors.socket.SocketConnector.proceedTLS(SocketConnector.java:758)
	at tigase.jaxmpp.j2se.connectors.socket.SocketConnector.onTLSStanza(SocketConnector.java:224)
	at tigase.jaxmpp.j2se.connectors.socket.SocketConnector.processElement(SocketConnector.java:254)
	at tigase.jaxmpp.j2se.connectors.socket.SocketConnector$1.processElement(SocketConnector.java:425)
	at tigase.jaxmpp.j2se.connectors.socket.Worker$1.nextElement(Worker.java:52)
	at tigase.jaxmpp.j2se.connectors.socket.XMPPDomBuilderHandler.endElement(XMPPDomBuilderHandler.java:149)
	at tigase.xml.SimpleParser.parse(SimpleParser.java:302)
	at tigase.jaxmpp.j2se.connectors.socket.Worker.run(Worker.java:115)
wojciech.kapcia@tigase.net commented 4 years ago

After some work all tests are finally passing. Mostly done:

  • correctly differentiate between hostnames and domains in configuration files (were failing, mostly on my machine)
  • address issue with credentials in MongoDB

issue 1 of 1
Type
Bug
Priority
Normal
Assignee
Version
tigase-server-8.1.0
Issue Votes (0)
Watchers (0)
Reference
tigase/tigase-tts-ng#53
Please wait...
Page is in error, reload to recover