[teiid-issues] [JBoss JIRA] (TEIID-2593) often report: the trustAnchors parameter must be non-empty

Steven Hawkins (JIRA) jira-events at lists.jboss.org
Thu Jul 25 00:40:26 EDT 2013


     [ https://issues.jboss.org/browse/TEIID-2593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Hawkins resolved TEIID-2593.
-----------------------------------

    Resolution: Rejected


I can only reproduce this if the client is not specifying a truststore and the jre cacerts link is missing/invalid.  As long as the client vm synlink/actual cert file is correct then connections work - or if the cacerts file does not contain an appropriate public key, then you'll see a somewhat better message:

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
                
> often report: the trustAnchors parameter must be non-empty
> ----------------------------------------------------------
>
>                 Key: TEIID-2593
>                 URL: https://issues.jboss.org/browse/TEIID-2593
>             Project: Teiid
>          Issue Type: Bug
>          Components: JDBC Connector, JDBC Driver
>    Affects Versions: 7.7
>         Environment: Operating System: RHEL6
> JBoss: 6.1
> JDK: java-1.7.0-openjdk-1.7.0.0.x86_64
> Teiid: 7.7.0.Final
> Connecting to teiid via JDBC, the EngVDBF Database
>            Reporter: ying ma
>            Assignee: Steven Hawkins
>            Priority: Critical
>              Labels: eap6, jboss, sync
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> This ques appear when we upgrade JBoss from 6.0 to 6.1, the teiid always  could not create connection, as below:
> 23:49:41,639 SEVERE [org.teiid.jdbc] (Timer-2) Could not create connection: org.teiid.jdbc.TeiidSQLException: Error establishing socket to host and port: vdb.engineering.redhat.com:31000. Reason: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
> 	at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.jdbc.SocketProfile.connect(SocketProfile.java:56) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.jdbc.TeiidDriver.connect(TeiidDriver.java:107) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at java.sql.DriverManager.getConnection(DriverManager.java:571) [rt.jar:1.7.0_25]
> 	at java.sql.DriverManager.getConnection(DriverManager.java:215) [rt.jar:1.7.0_25]
> 	at com.rehat.tools.vault.service.impl.BugzillaProductUpdate.productVersionUpdateTask(BugzillaProductUpdate.java:42) [vault-service-1.1.1.jar:]
> 	at com.redhat.tools.vault.listener.UpdateTimer.run(UpdateTimer.java:31) [classes:]
> 	at java.util.TimerThread.mainLoop(Timer.java:555) [rt.jar:1.7.0_25]
> 	at java.util.TimerThread.run(Timer.java:505) [rt.jar:1.7.0_25]
> Caused by: [SingleInstanceCommunicationException]Error establishing socket to host and port: vdb.engineering.redhat.com:31000. Reason: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
> 1 [SSLException]java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
> 2 [RuntimeException]Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
> 3 [InvalidAlgorithmParameterException]the trustAnchors parameter must be non-empty
> 	at org.teiid.net.socket.SocketServerConnection.selectServerInstance(SocketServerConnection.java:161) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.net.socket.SocketServerConnection.<init>(SocketServerConnection.java:95) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.net.socket.SocketServerConnectionFactory.getConnection(SocketServerConnectionFactory.java:320) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.jdbc.SocketProfile.connect(SocketProfile.java:54) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	... 7 more
> Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
> 	at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1886) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1844) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1827) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1753) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.AppInputStream.read(AppInputStream.java:113) [jsse.jar:1.7.0_25]
> 	at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) [rt.jar:1.7.0_25]
> 	at java.io.BufferedInputStream.read1(BufferedInputStream.java:275) [rt.jar:1.7.0_25]
> 	at java.io.BufferedInputStream.read(BufferedInputStream.java:334) [rt.jar:1.7.0_25]
> 	at java.io.DataInputStream.read(DataInputStream.java:149) [rt.jar:1.7.0_25]
> 	at org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream.fillBuffer(ObjectDecoderInputStream.java:164) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream.findLength(ObjectDecoderInputStream.java:147) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream.readObjectOverride(ObjectDecoderInputStream.java:81) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:364) [rt.jar:1.7.0_25]
> 	at org.teiid.net.socket.OioOjbectChannelFactory$OioObjectChannel.read(OioOjbectChannelFactory.java:114) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.net.socket.SocketServerInstanceImpl.doHandshake(SocketServerInstanceImpl.java:113) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.net.socket.SocketServerInstanceImpl.connect(SocketServerInstanceImpl.java:94) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.net.socket.SocketServerConnectionFactory.getServerInstance(SocketServerConnectionFactory.java:279) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.net.socket.SocketServerConnection.connect(SocketServerConnection.java:199) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	at org.teiid.net.socket.SocketServerConnection.selectServerInstance(SocketServerConnection.java:125) [teiid-client-7.7.0.Final.jar:7.7.0.Final]
> 	... 10 more
> Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
> 	at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:90) [rt.jar:1.7.0_25]
> 	at sun.security.validator.Validator.getInstance(Validator.java:179) [rt.jar:1.7.0_25]
> 	at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:314) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:173) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:186) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1323) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.Handshaker.process_record(Handshaker.java:804) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:882) [jsse.jar:1.7.0_25]
> 	at sun.security.ssl.AppInputStream.read(AppInputStream.java:102) [jsse.jar:1.7.0_25]
> 	... 24 more
> Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
> 	at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200) [rt.jar:1.7.0_25]
> 	at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120) [rt.jar:1.7.0_25]
> 	at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104) [rt.jar:1.7.0_25]
> 	at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:88) [rt.jar:1.7.0_25]
> 	... 37 more
>   According to the log, it may be caused by the cacerts in jre/lib/security is NULL, however, we've create the symlink to ../../../../../../../etc/pki/java/cacerts.
>   I'm so confused about it, before jboss upgrade, the teiid is normal. So could you follow the issue? have any reason will cause the error?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the teiid-issues mailing list