Return-Path: X-Original-To: apmail-hbase-dev-archive@www.apache.org Delivered-To: apmail-hbase-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A7F2029AB for ; Wed, 27 Apr 2011 04:51:44 +0000 (UTC) Received: (qmail 76116 invoked by uid 500); 27 Apr 2011 04:51:43 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 75579 invoked by uid 500); 27 Apr 2011 04:51:42 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 75571 invoked by uid 99); 27 Apr 2011 04:51:41 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 27 Apr 2011 04:51:41 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of yuzhihong@gmail.com designates 209.85.210.41 as permitted sender) Received: from [209.85.210.41] (HELO mail-pz0-f41.google.com) (209.85.210.41) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 27 Apr 2011 04:51:35 +0000 Received: by pzk4 with SMTP id 4so1085486pzk.14 for ; Tue, 26 Apr 2011 21:51:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=pi1Lu364YrqA0YRnvICBh7svcKaFKWTOrl0SB0BVagg=; b=Dhs4UcfuCK8LugYtAFpTcZ5T0dEn5PpWd6ivweEjgDZn/JlZ0ss38++dpx3VraL7JG 0EbkX1e0/kjtwxpfn5k/Sw9RHOsXJ5MF8tztSoEnoE98M4tJfRwt9BpfMJ6tI4CrUsYN 5dZAVAzDDzqCn9g5qgW5V70qtWiWAU9l9w3XQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=SynbkmYK0ePOUS6JNcD5slZnn60I9SAyCuGEEkRenkmpvYnAYmrQ7S/9NnOU+gk+1s 3/bgL9n5ZkAkbwilYrgRyWC6dFtE8qByjhoYM1SinXx21w7qCPT6moLHNRXA+ncN9iX6 wf+R44pgoFbWRoZg9bU1ue0maD/SMWE5e15yg= MIME-Version: 1.0 Received: by 10.68.41.196 with SMTP id h4mr1759972pbl.413.1303879874821; Tue, 26 Apr 2011 21:51:14 -0700 (PDT) Received: by 10.68.52.169 with HTTP; Tue, 26 Apr 2011 21:51:14 -0700 (PDT) In-Reply-To: References: Date: Tue, 26 Apr 2011 21:51:14 -0700 Message-ID: Subject: Re: It seems like a bug for test case//Re: A question about TestAdmin failed. From: Ted Yu To: Gaojinchao Cc: "dev@hbase.apache.org" , Chenjian Content-Type: multipart/alternative; boundary=bcaec52e58b7c4bfb004a1df30fb --bcaec52e58b7c4bfb004a1df30fb Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: quoted-printable Jinchao: Thanks for your hint. I think the sleep call should be replaced with the following code which I copied from HMaster: MasterServices services =3D TEST_UTIL.getMiniHBaseCluster().getMaster()= ; AssignmentManager am =3D services.getAssignmentManager(); for (HRegionInfo regionInfo : regions.keySet()) { try { am.waitForAssignment(regionInfo); } catch (InterruptedException e) { LOG.info("Interrupted waiting for region to be assigned during " + "create table call", e); Thread.currentThread().interrupt(); return; } } I tested the above change on Linux and it worked. Please get 3744-addendum.patch from HBASE-3744. Thanks 2011/4/26 Gaojinchao > Thanks for your reply. > > I know HBASE-3744. I had merged to my version. > > > > Only run TestAdmin is also success. > > But run all test case, it failed . > > It seems like the configure of machine. > > > > I try to sleep 60s before call verifyRoundRobinDistribution. > > > > *=B7=A2=BC=FE=C8=CB:* Ted Yu [mailto:yuzhihong@gmail.com] > *=B7=A2=CB=CD=CA=B1=BC=E4:* 2011=C4=EA4=D4=C227=C8=D5 12:18 > *=CA=D5=BC=FE=C8=CB:* Gaojinchao > *=B3=AD=CB=CD:* dev@hbase.apache.org; Chenjian > *=D6=F7=CC=E2:* Re: It seems like a bug for test case//Re: A question abo= ut > TestAdmin failed. > > > > HBASE-3744 introduced a change in how createTable() works. > By default, sync parameter is false: > public void createTable(HTableDescriptor desc, byte [][] splitKeys) > throws IOException { > createTable(desc, splitKeys, false); > } > because HBaseAdmin.createTableAsync() doesn't pass sync parameter to the > master. > > On a Linux machine, TestAdmin passed. > > 2011/4/26 Gaojinchao > > It seems like that test case TestAdmin has some bug. > > In version 0.90.2. Region can assigned to Region server by this code > // 5. Trigger immediate assignment of the regions in round-robin fashion > List servers =3D serverManager.getOnlineServersList(); > try { > this.assignmentManager.assignUserRegions(Arrays.asList(newRegions), > servers); // It waits for 10 minites. > } catch (InterruptedException ie) { > LOG.error("Caught " + ie + " during round-robin assignment"); > throw new IOException(ie); > } > > But In version 0.90.3. Region can't assigned to region server. (issue > HBASE-3744) > > // 5. Trigger immediate assignment of the regions in round-robin fashion > List servers =3D serverManager.getOnlineServersList(); > this.assignmentManager.bulkAssignUserRegions(newRegions, servers, sync= ); > // It doesn't wait for. > > So function verifyRoundRobinDistribution can't get address and throws > exceptions > List regs =3D server2Regions.get(server); > > public int hashCode() { > int result =3D address.hashCode(); // Region can't be assigned,= So > it seems like throw some exceptions. > result ^=3D stringValue.hashCode(); > return result; > } > > > > -----=D3=CA=BC=FE=D4=AD=BC=FE----- > =B7=A2=BC=FE=C8=CB: Ted Yu [mailto:yuzhihong@gmail.com] > =B7=A2=CB=CD=CA=B1=BC=E4: 2011=C4=EA4=D4=C226=C8=D5 21:36 > =CA=D5=BC=FE=C8=CB: user@hbase.apache.org > =D6=F7=CC=E2: Re: A question about TestAdmin failed. > > Stack made some change in trunk to deal with NPE. > > FYI > > On Tue, Apr 26, 2011 at 5:27 AM, Gaojinchao wrote= : > > > I merge some code to 0.90.2 > > run unit test and find one failed. > > > > how to dig it ? thanks. > > Logs: > > > > > -------------------------------------------------------------------------= ------ > > Test set: org.apache.hadoop.hbase.client.TestAdmin > > > > > -------------------------------------------------------------------------= ------ > > Tests run: 16, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 649.31= 4 > > sec <<< FAILURE! > > testCreateTableWithRegions(org.apache.hadoop.hbase.client.TestAdmin) > Time > > elapsed: 3.475 sec <<< ERROR! > > java.lang.NullPointerException > > at > > org.apache.hadoop.hbase.HServerAddress.hashCode(HServerAddress.java:149= ) > > at java.util.HashMap.get(HashMap.java:300) > > at > > > org.apache.hadoop.hbase.client.TestAdmin.verifyRoundRobinDistribution(Tes= tAdmin.java:309) > > at > > > org.apache.hadoop.hbase.client.TestAdmin.testCreateTableWithRegions(TestA= dmin.java:385) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMeth= od.java:44) > > at > > > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallabl= e.java:15) > > at > > > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod= .java:41) > > at > > > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.= java:20) > > at > > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java= :28) > > at > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.= java:76) > > at > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.= java:50) > > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:5= 2) > > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:4= 2) > > at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > > at > > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java= :28) > > at > > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:3= 1) > > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > > at > > > org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java= :62) > > at > > > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet= (AbstractDirectoryTestSuite.java:140) > > at > > > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Abstra= ctDirectoryTestSuite.java:165) > > at org.apache.maven.surefire.Surefire.run(Surefire.java:107) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > > org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Surefi= reBooter.java:289) > > at > > > org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:= 1005) > > > > > > > --bcaec52e58b7c4bfb004a1df30fb--