You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by "Mickael Olivier (JIRA)" <ji...@apache.org> on 2014/08/28 16:54:08 UTC
[jira] [Created] (FLUME-2452) Unit test TestAvroSink.java failed
with IBM JDK 1.7
Mickael Olivier created FLUME-2452:
--------------------------------------
Summary: Unit test TestAvroSink.java failed with IBM JDK 1.7
Key: FLUME-2452
URL: https://issues.apache.org/jira/browse/FLUME-2452
Project: Flume
Issue Type: Bug
Components: Sinks+Sources, Test
Affects Versions: v1.5.0.1
Environment: RHEL 6.5 PPC64 & x86_64
IBM JDK 1.7.0
Reporter: Mickael Olivier
Priority: Minor
Running org.apache.flume.sink.TestAvroSink
Tests run: 15, Failures: 0, Errors: 9, Skipped: 0, Time elapsed: 41.619 sec <<< FAILURE!
testSslProcessWithTrustStore(org.apache.flume.sink.TestAvroSink) Time elapsed: 31 sec <<< ERROR!
org.apache.flume.EventDeliveryException: Failed to send events
at org.apache.flume.sink.AbstractRpcSink.process(AbstractRpcSink.java:392)
at org.apache.flume.sink.TestAvroSink.testSslProcessWithTrustStore(TestAvroSink.java:431)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:619)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:619)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: org.apache.flume.FlumeException: NettyAvroRpcClient { host: localhost, port: 41414 }: Unexpected exception
at org.apache.flume.api.NettyAvroRpcClient.connect(NettyAvroRpcClient.java:184)
at org.apache.flume.api.NettyAvroRpcClient.connect(NettyAvroRpcClient.java:118)
at org.apache.flume.api.NettyAvroRpcClient.configure(NettyAvroRpcClient.java:624)
at org.apache.flume.api.RpcClientFactory.getInstance(RpcClientFactory.java:88)
at org.apache.flume.sink.AvroSink.initializeRpcClient(AvroSink.java:127)
at org.apache.flume.sink.AbstractRpcSink.createConnection(AbstractRpcSink.java:211)
at org.apache.flume.sink.AbstractRpcSink.verifyConnection(AbstractRpcSink.java:272)
at org.apache.flume.sink.AbstractRpcSink.process(AbstractRpcSink.java:349)
... 30 more
Caused by: java.lang.RuntimeException: Cannot create SSL channel
at org.apache.flume.api.NettyAvroRpcClient$SSLCompressionChannelFactory.newChannel(NettyAvroRpcClient.java:747)
at org.apache.flume.api.NettyAvroRpcClient$SSLCompressionChannelFactory.newChannel(NettyAvroRpcClient.java:663)
at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:212)
at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:182)
at org.apache.avro.ipc.NettyTransceiver.getChannel(NettyTransceiver.java:253)
at org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:203)
at org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:152)
at org.apache.flume.api.NettyAvroRpcClient.connect(NettyAvroRpcClient.java:164)
... 37 more
Caused by: java.security.NoSuchAlgorithmException: SunX509 TrustManagerFactory not available
at sun.security.jca.GetInstance.getInstance(GetInstance.java:171)
at javax.net.ssl.TrustManagerFactory.getInstance(TrustManagerFactory.java:6)
at org.apache.flume.api.NettyAvroRpcClient$SSLCompressionChannelFactory.newChannel(NettyAvroRpcClient.java:727)
... 44 more
In file ./flume-ng-sdk/src/main/java/org/apache/flum/api/NettyAvroRpcClient.java, the TrustManagerFactory is de facto SunX509
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
I think there should be a change, like the one present in the ./flume-ng-core/src/test/java/org/apache/flume/sink/TestAvroSink.java file :
private String getAlgorithm()
{
String algorithm = Security.getProperty(
"ssl.KeyManagerFactory.algorithm");
if (algorithm == null) {
algorithm = "SunX509";
}
return algorithm;
}
Even though it gets rid of the error "SunX509 TrustManagerFactory not available" when applied, I then get another error in place of it :
Caused by: org.apache.flume.EventDeliveryException: NettyAvroRpcClient { host: localhost, port: 41414 }: Failed to send batch
at org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:312)
at org.apache.flume.sink.AbstractRpcSink.process(AbstractRpcSink.java:376)
... 30 more
Caused by: org.apache.flume.EventDeliveryException: NettyAvroRpcClient { host: localhost, port: 41414 }: Exception thrown from remote handler
at org.apache.flume.api.NettyAvroRpcClient.waitForStatusOK(NettyAvroRpcClient.java:394)
at org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:371)
at org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:300)
... 31 more
Caused by: java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at org.apache.avro.ipc.CallFuture.get(CallFuture.java:128)
at org.apache.flume.api.NettyAvroRpcClient.waitForStatusOK(NettyAvroRpcClient.java:386)
... 33 more
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at com.ibm.jsse2.ab.y(ab.java:364)
at com.ibm.jsse2.nc.b(nc.java:461)
at com.ibm.jsse2.nc.a(nc.java:283)
at com.ibm.jsse2.nc.unwrap(nc.java:333)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:26)
at org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1118)
at org.jboss.netty.handler.ssl.SslHandler.decode(SslHandler.java:814)
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:422)
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:84)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:471)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:332)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:853)
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at com.ibm.jsse2.j.a(j.java:4)
at com.ibm.jsse2.nc.a(nc.java:524)
at com.ibm.jsse2.ab.a(ab.java:166)
at com.ibm.jsse2.ab.a(ab.java:534)
at com.ibm.jsse2.bb.a(bb.java:587)
at com.ibm.jsse2.bb.a(bb.java:472)
at com.ibm.jsse2.ab.r(ab.java:489)
at com.ibm.jsse2.ab$1.a(ab$1.java:3)
at com.ibm.jsse2.ab$1.run(ab$1.java:1)
at java.security.AccessController.doPrivileged(AccessController.java:366)
at com.ibm.jsse2.ab$c_.run(ab$c_.java:11)
at org.jboss.netty.handler.ssl.SslHandler$2.run(SslHandler.java:1258)
at org.jboss.netty.handler.ssl.ImmediateExecutor.execute(ImmediateExecutor.java:31)
at org.jboss.netty.handler.ssl.SslHandler.runDelegatedTasks(SslHandler.java:1255)
at org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1140)
... 12 more
Caused by: com.ibm.jsse2.util.j: Certificate expired
at com.ibm.jsse2.util.i.b(i.java:175)
at com.ibm.jsse2.util.g.a(g.java:10)
at com.ibm.jsse2.yc.a(yc.java:141)
at com.ibm.jsse2.yc.a(yc.java:124)
at com.ibm.jsse2.yc.checkServerTrusted(yc.java:43)
at com.ibm.jsse2.bb.a(bb.java:231)
... 22 more
I do not understand this "certificate expired" exception.
To add, others tests from TestAvroSink are failing because they try to bind to the same port this test was bind on, leading to
"Failed to bind to: 127.0.0.1:41414" message
--
This message was sent by Atlassian JIRA
(v6.2#6252)