I doubt this has anything todo specifically with CentOS etc.  I am not privy to 
your setup up but the steps to reproduce are easy.

1.  Get a linux distro such as CentOS.   Put it say, in a VM such as Vmware 
Fusion on Mac.
2.  Install Java
3.  Try to start a mini cluster (will fail)

The bottom line is there is an uncaught null pointer exception in the Testing 
Utility.  Is this considered to be of little priority?

> Here is Linux OS:

> Linux a.net 2.6.32-220.23.1.el6.YAHOO.20120713.x86_64 #1 SMP Fri Jul 13 
> 11:40:51 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux

Ted, what linux distribution is that?





On Jul 15, 2013, at 9:49 AM, Ted Yu <yuzhih...@gmail.com> wrote:

> I would be busy today so expect delay in future response.
> 
> bq. Recall that this is not an issue on Mac OSX for some odd reason
> 
> I didn't reproduce the issue you mentioned on either OSX or Linux.
> 
> Maybe people who use CentOS for ci can comment on this matter.
> 
> Cheers
> 
> On Mon, Jul 15, 2013 at 8:01 AM, David Williams <mobiusinvers...@gmail.com> 
> wrote:
> Hi Ted,
> 
> So, what would you recommend in terms of getting a working 
> HbaseTestingUtility or just unit testing in general?   It's pretty much a 
> prerequisite for me to be able to introduce HBase into production.  We have a 
> strict continuous integration process and I need to be able to build software 
> for use with our Hbase cluster in our CI environment including running all 
> tests.  Our CI environment does not have its own test cluster and the chances 
> of that becoming the case are slim.  Besides the relative convenience of the 
> testing utility is great.  
> 
> > check out http://svn.apache.org/repos/asf/hadoop/common/branches/branch-1
> 
> I don't know anything about the hadoop source, this branch, or what is needed 
> to run their JUnit tests.  This is pretty much a non starter for me.
> 
> > On my Mac, I got:
> > [junit] Running org.apache.hadoop.tools.distcp2.mapred.TestCopyCommitter
> > [junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 12.283 sec
> 
> Recall that this is not an issue on Mac OSX for some odd reason, only on 
> CentOS and Linux VM's such as in use by travis-ci.  You can see the failed 
> build output here:
> 
> https://travis-ci.org/mobiusinversion/hbase
> 
> Recall also that I opened a travis-ci ticket and the travis support was able 
> to reproduce success on Mac OSX and failure on Linux.
> 
> https://github.com/travis-ci/travis-ci/issues/1240
> 
> I started a bounty on SO:
> 
> http://stackoverflow.com/questions/17625938/hbase-minidfscluster-java-fails-in-certain-environments
> 
> 
> St.Ack - what do you think the relative priority of this issue might be?  
> 
> 
> 
> 
> 
> 
> 
> On Jul 14, 2013, at 10:47 AM, Ted Yu wrote:
> 
>> Here is one way of figuring out whether hdfs experiences the same issue is 
>> the following:
>> 
>> check out http://svn.apache.org/repos/asf/hadoop/common/branches/branch-1
>> use the command to find out which tests create MiniDFSCluster: find . -name 
>> '*.java' -exec grep 'new MiniDFSCluster(' {} \; -print
>> run one of the tests: ant test-core -Dtestcase=TestCopyCommitter
>> 
>> See if there is similar exception.
>> 
>> On my Mac, I got:
>> 
>>     [junit] Running org.apache.hadoop.tools.distcp2.mapred.TestCopyCommitter
>>     [junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 12.283 sec
>> 
>> On Sun, Jul 14, 2013 at 9:58 AM, David Williams <mobiusinvers...@gmail.com> 
>> wrote:
>> Hi Ted,
>> 
>> I'd be interested to know more about an hdfs issue.  I was go to look 
>> further into the line of reasoning you mentioned about the call to 
>> getAddress. 
>> 
>> MiniDFSCluster.java, line 426:
>> String ipAddr = dn.getSelfAddr().getAddress().getHostAddress();
>> 
>> So that one of getSelfAddr or getAddress returned NULL.   Is there something 
>> new about hdfs or are the two related?
>> 
>> 
>> 
>> 
>> 
>> On Jul 13, 2013, at 9:41 PM, Ted Yu wrote:
>> 
>>> Most likely this is an hdfs issue.
>>> 
>>> On Sat, Jul 13, 2013 at 4:08 PM, David Williams <mobiusinvers...@gmail.com> 
>>> wrote:
>>> Hi Ted,
>>> 
>>> I updated the dependencies and ran the tests again, and on my Mac OSX they 
>>> pass and on CentOS I get the same error:
>>> 
>>> 
>>> $ lein test
>>> Retrieving org/apache/hbase/hbase/0.94.9/hbase-0.94.9.pom from central
>>> Retrieving org/apache/hbase/hbase/0.94.9/hbase-0.94.9.jar from central
>>> Retrieving org/apache/hbase/hbase/0.94.9/hbase-0.94.9-tests.jar from central
>>> 
>>> lein test hbase.config-test
>>> 
>>> lein test hbase.table-test
>>> Starting DataNode 0 with dfs.data.dir: 
>>> /home/dwilliams/Desktop/Repos/hbase/target/test-data/1140edc6-7242-40cd-8ed8-05847fb14949/dfscluster_1e40ce89-1986-450b-ba6d-983caa9aeb78/dfs/data/data1,/home/dwilliams/Desktop/Repos/hbase/target/test-data/1140edc6-7242-40cd-8ed8-05847fb14949/dfscluster_1e40ce89-1986-450b-ba6d-983caa9aeb78/dfs/data/data2
>>> 
>>> lein test :only hbase.table-test/create-table
>>> 
>>> 
>>> ERROR in (create-table) (MiniDFSCluster.java:426)
>>> Uncaught exception, not in assertion.
>>> expected: nil
>>>   actual: java.lang.NullPointerException: null
>>>  at org.apache.hadoop.hdfs.MiniDFSCluster.startDataNodes 
>>> (MiniDFSCluster.java:426)
>>>     org.apache.hadoop.hdfs.MiniDFSCluster.<init> (MiniDFSCluster.java:284)
>>>     org.apache.hadoop.hbase.HBaseTestingUtility.startMiniDFSCluster 
>>> (HBaseTestingUtility.java:451)
>>>     org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster 
>>> (HBaseTestingUtility.java:619)
>>>     org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster 
>>> (HBaseTestingUtility.java:575)
>>>     org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster 
>>> (HBaseTestingUtility.java:562)
>>>     hbase.table_test$test_config.doInvoke (table_test.clj:10)
>>>     clojure.lang.RestFn.invoke (RestFn.java:397)
>>>     hbase.table_test/fn (table_test.clj:19)
>>> 
>>> On Jul 13, 2013, at 1:11 PM, Ted Yu <yuzhih...@gmail.com> wrote:
>>> 
>>>> Do you mind trying the following change to see if the problem persists for 
>>>> latest 0.94 release ?
>>>> 
>>>> Thanks
>>>> 
>>>> diff --git a/project.clj b/project.clj
>>>> index 2554784..0d8be0e 100644
>>>> --- a/project.clj
>>>> +++ b/project.clj
>>>> @@ -5,8 +5,8 @@
>>>>         :dependencies [
>>>>                 [org.clojure/clojure "1.5.1"]
>>>>                 [org.apache.hadoop/hadoop-core "1.2.0"]
>>>> -               [org.apache.hbase/hbase "0.94.6.1"]
>>>> +               [org.apache.hbase/hbase "0.94.9"]
>>>>                 [org.apache.hadoop/hadoop-test "1.2.0"]
>>>> -               [org.apache.hbase/hbase "0.94.6.1" :classifier "tests"]]
>>>> +               [org.apache.hbase/hbase "0.94.9" :classifier "tests"]]
>>>>         :plugins [[lein-marginalia "0.7.1"]])
>>>> 
>>>> 
>>>> On Fri, Jul 12, 2013 at 10:22 PM, David Williams 
>>>> <mobiusinvers...@gmail.com> wrote:
>>>> Hi Ted,
>>>> 
>>>> In terms of versions, here are the jars I'm using, which come from Maven 
>>>> Central.
>>>> 
>>>> org.apache.hadoop/hadoop-core "1.2.0"
>>>> 
>>>> 
>>>> 
>>>> 
>>>> org.apache.hbase/hbase "0.94.6.1"
>>>> org.apache.hadoop/hadoop-test "1.2.0"
>>>> 
>>>> 
>>>> 
>>>> 
>>>> org.apache.hbase/hbase "0.94.6.1" :classifier "tests"
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> The flag ':classifier "tests"' above is a specific instruction to to the 
>>>> Leiningen 2.0 to use the pomegranate library to handle Sonatype Aether and 
>>>> dynamic runtime modification of the classpath, which in this case is 
>>>> needed to import org.apache.hadoop.hbase HBaseTestingUtility.
>>>> 
>>>> https://github.com/cemerick/pomegranate
>>>> 
>>>> 
>>>> I just checked on address resolution, on my Mac OSX where the 
>>>> TestingUtility passes:
>>>> 
>>>> user=> (import 'java.net.InetSocketAddress)
>>>> java.net.InetSocketAddress
>>>> user=> (def x (InetSocketAddress. 8000))
>>>> #'user/x
>>>> user=> (.getAddress x)
>>>> #<Inet4Address 0.0.0.0/0.0.0.0>
>>>> user=>
>>>> 
>>>> Then I check on a CentOS vm, the unit tests still fail but the address 
>>>> resolution also worked in the repl and produced the same output as above.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Jul 12, 2013, at 9:30 PM, Ted Yu wrote:
>>>> 
>>>>> I installed lein on Mac and Linux.
>>>>> 
>>>>> I tried 'lein test' on both platforms and the test passed on both:
>>>>> 
>>>>> lein test hbase.table-test
>>>>> Starting DataNode 0 with dfs.data.dir: 
>>>>> /homes/hortonzy/mobius/target/test-data/246828b9-1be9-4949-9bbc-b215b378fb67/dfscluster_9ed0bd88-d309-4fed-9823-3bbf86973ae4/dfs/data/data1,/homes/hortonzy/mobius/target/test-data/246828b9-1be9-4949-9bbc-b215b378fb67/dfscluster_9ed0bd88-d309-4fed-9823-3bbf86973ae4/dfs/data/data2
>>>>> Cluster is active
>>>>> 
>>>>> Ran 11 tests containing 14 assertions.
>>>>> 0 failures, 0 errors.
>>>>> 
>>>>> Here is Linux OS:
>>>>> 
>>>>> Linux a.net 2.6.32-220.23.1.el6.YAHOO.20120713.x86_64 #1 SMP Fri Jul 13 
>>>>> 11:40:51 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux
>>>>> 
>>>>> Looking at MiniDFSCluster.java, line 426:
>>>>> 
>>>>>       String ipAddr = dn.getSelfAddr().getAddress().getHostAddress();
>>>>> 
>>>>> It seems dn.getSelfAddr().getAddress() returned null.
>>>>> 
>>>>> According to:
>>>>> http://docs.oracle.com/javase/7/docs/api/java/net/InetSocketAddress.html#getAddress()
>>>>> 
>>>>> This would mean address resolution problem.
>>>>> 
>>>>> Can you check ?
>>>>> 
>>>>> Cheers
>>>>> 
>>>>> On Fri, Jul 12, 2013 at 7:37 PM, David Williams 
>>>>> <mobiusinvers...@gmail.com> wrote:
>>>>> Hi all,
>>>>> 
>>>>> I am having an issue starting the a mini cluster for the 
>>>>> HBaseTestingUtility.  In short I can on Mac OSX, but cannot on Linux.   
>>>>> But the error is cryptic and I don't know what to do next.
>>>>> 
>>>>> I submitted a ticket with full details on StackOverflow,
>>>>> 
>>>>> http://stackoverflow.com/questions/17625938/hbase-minidfscluster-java-fails-in-certain-environments
>>>>> 
>>>>> But when I call .startMiniCluster  on an instance of HBaseTestingUtility 
>>>>> , on Linux (CentOS x86_64), I receive this error:
>>>>> 
>>>>> 
>>>>> 
>>>>> ERROR in (create-table) (MiniDFSCluster.java:426)
>>>>> Uncaught exception, not in assertion.
>>>>> expected: nil
>>>>>   actual: java.lang.NullPointerException: null
>>>>>  at org.apache.hadoop.hdfs.MiniDFSCluster.startDataNodes 
>>>>> (MiniDFSCluster.java:426)
>>>>>     org.apache.hadoop.hdfs.MiniDFSCluster.<init> (MiniDFSCluster.java:284)
>>>>>     org.apache.hadoop.hbase.HBaseTestingUtility.startMiniDFSCluster 
>>>>> (HBaseTestingUtility.java:444)
>>>>>     org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster 
>>>>> (HBaseTestingUtility.java:612)
>>>>>     org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster 
>>>>> (HBaseTestingUtility.java:568)
>>>>>     org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster 
>>>>> (HBaseTestingUtility.java:555)
>>>>> 
>>>>> I would appreciate help in finding out whats going on and how to set up 
>>>>> my ENV to use the HBaseTestingUtility.
>>>>> 
>>>>> Thanks
>>>>> David
>>>>>  
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 

Reply via email to