hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hadoop QA (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12359) MulticastPublisher should specify IPv4/v6 protocol family when creating multicast channel
Date Mon, 03 Nov 2014 05:19:33 GMT

    [ https://issues.apache.org/jira/browse/HBASE-12359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14194253#comment-14194253
] 

Hadoop QA commented on HBASE-12359:
-----------------------------------

{color:red}-1 overall{color}.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12678869/hbase-12359-master.patch
  against trunk revision .
  ATTACHMENT ID: 12678869

    {color:green}+1 @author{color}.  The patch does not contain any @author tags.

    {color:red}-1 tests included{color}.  The patch doesn't appear to include any new or modified
tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    {color:green}+1 javac{color}.  The applied patch does not increase the total number of
javac compiler warnings.

    {color:green}+1 javac{color}.  The applied patch does not increase the total number of
javac compiler warnings.

    {color:green}+1 javadoc{color}.  The javadoc tool did not generate any warning messages.

                {color:red}-1 checkstyle{color}.  The applied patch generated 3783 checkstyle
errors (more than the trunk's current 3781 errors).

    {color:green}+1 findbugs{color}.  The patch does not introduce any new Findbugs (version
2.0.3) warnings.

    {color:green}+1 release audit{color}.  The applied patch does not increase the total number
of release audit warnings.

    {color:green}+1 lineLengths{color}.  The patch does not introduce lines longer than 100

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

    {color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-rest.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/newPatchFindbugsWarningshbase-annotations.html
Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//artifact/patchprocess/checkstyle-aggregate.html

                Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/11559//console

This message is automatically generated.

> MulticastPublisher should specify IPv4/v6 protocol family when creating multicast channel
> -----------------------------------------------------------------------------------------
>
>                 Key: HBASE-12359
>                 URL: https://issues.apache.org/jira/browse/HBASE-12359
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 2.0.0
>            Reporter: Qiang Tian
>            Assignee: Qiang Tian
>            Priority: Minor
>         Attachments: hbase-12359-master.patch
>
>
> see http://osdir.com/ml/general/2014-10/msg56689.html
> {code}
> 014-10-28 12:21:47,337 ERROR [main] hbase.MiniHBaseCluster(230): Error starting cluster
> java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster
>        at org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:145)
>        at org.apache.hadoop.hbase.LocalHBaseCluster.addMaster(LocalHBaseCluster.java:215)
>        at org.apache.hadoop.hbase.LocalHBaseCluster.<init>(LocalHBaseCluster.java:153)
>        at org.apache.hadoop.hbase.MiniHBaseCluster.init(MiniHBaseCluster.java:215)
>        at org.apache.hadoop.hbase.MiniHBaseCluster.<init>(MiniHBaseCluster.java:94)
>        at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniHBaseCluster(HBaseTestingUtility.java:914)
>        at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:877)
>        at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:794)
>        at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:765)
>        at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:752)
>        at org.apache.hadoop.hbase.client.TestHCM.setUpBeforeClass(TestHCM.java:138)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:601)
>        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
>        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
>        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
>        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
>        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: java.lang.IllegalArgumentException: IPv6 socket cannot join IPv4 multicast
group
>        at sun.nio.ch.DatagramChannelImpl.innerJoin(DatagramChannelImpl.java:779)
>        at sun.nio.ch.DatagramChannelImpl.join(DatagramChannelImpl.java:865)
>        at io.netty.channel.socket.nio.NioDatagramChannel.joinGroup(NioDatagramChannel.java:394)
>        at org.apache.hadoop.hbase.master.ClusterStatusPublisher$MulticastPublisher.connect(ClusterStatusPublisher.java:273)
>        at org.apache.hadoop.hbase.master.ClusterStatusPublisher.<init>(ClusterStatusPublisher.java:121)
>        at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:307)
>        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>        at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
>        at org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:142)
>        ... 26 more
> {code}
> the exception comes from below JDK code:
> {code}
>  765           if (group instanceof Inet4Address) {
>  766               if (family == StandardProtocolFamily.INET6 && !Net.canIPv6SocketJoinIPv4Group())
>  767                   throw new IllegalArgumentException("IPv6 socket cannot join IPv4
multicast group");
> {code}
> according to document(http://docs.oracle.com/javase/7/docs/api/java/nio/channels/MulticastChannel.html)
> {quote}
> The multicast implementation is intended to map directly to the native multicasting facility.
Consequently, the following items should be considered when developing an application that
receives IP multicast datagrams:
>     The creation of the channel should specify the ProtocolFamily that corresponds to
the address type of the multicast groups that the channel will join. There is no guarantee
that a channel to a socket in one protocol family can join and receive multicast datagrams
when the address of the multicast group corresponds to another protocol family. For example,
it is implementation specific if a channel to an IPv6 socket can join an IPv4 multicast group
and receive multicast datagrams sent to the group. 
> {quote}
> if not specifying family, the ProtocolFamily of the channel's socket is platform (and
possibly configuration) dependent and therefore unspecified
> the publisher code:
> {code}
>     @Override
>     public void connect(Configuration conf) throws IOException {
> ...
>       Bootstrap b = new Bootstrap();
>       b.group(group)
>           .channel(NioDatagramChannel.class)
>           .option(ChannelOption.SO_REUSEADDR, true)
>           .handler(new ClusterStatusEncoder(isa));
> {code}
> looks should use this netty constructor
> {code}
>     public NioDatagramChannel(InternetProtocolFamily ipFamily) {
>         this(newSocket(DEFAULT_SELECTOR_PROVIDER, ipFamily));
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message