Return-Path: Delivered-To: apmail-hadoop-hbase-dev-archive@locus.apache.org Received: (qmail 36563 invoked from network); 14 Jul 2008 20:22:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Jul 2008 20:22:54 -0000 Received: (qmail 52644 invoked by uid 500); 14 Jul 2008 20:22:53 -0000 Delivered-To: apmail-hadoop-hbase-dev-archive@hadoop.apache.org Received: (qmail 52615 invoked by uid 500); 14 Jul 2008 20:22:52 -0000 Mailing-List: contact hbase-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hbase-dev@hadoop.apache.org Delivered-To: mailing list hbase-dev@hadoop.apache.org Received: (qmail 52487 invoked by uid 99); 14 Jul 2008 20:22:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Jul 2008 13:22:52 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Jul 2008 20:22:08 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id C9FD3234C173 for ; Mon, 14 Jul 2008 13:22:31 -0700 (PDT) Message-ID: <977028330.1216066951826.JavaMail.jira@brutus> Date: Mon, 14 Jul 2008 13:22:31 -0700 (PDT) From: "Izaak Rubin (JIRA)" To: hbase-dev@hadoop.apache.org Subject: [jira] Updated: (HBASE-739) HBaseAdmin.createTable() using old HTableDescription doesn't work In-Reply-To: <1995212754.1215725311738.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HBASE-739?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Izaak Rubin updated HBASE-739: ------------------------------ Attachment: hbase-739_v2.patch I think I've really fixed it this time. I added a default constructor to UnmodifyableHTableDescriptor, which I should have done in the last patch (this all goes in the same vein of making UnmodifyableHTableDescriptor serializable). I found that Eclipse really confused the testing process - I had definitely run the test with and without the default constructor, sometimes succeeding and sometimes failing. Running the test on the command-line was much more useful and straightforward, and I'd recommend doing that instead (at least for this test). Here's how you can run just that test on the command-line: Add the following to your build.xml: {code} {code} Start HBase, make sure TestHbase739.java is added, "mytable" exists, etc, and then enter: {code} ant clean jar compile-test runtest -Dtest=TestHbase739 {code} Without the attached patch, hbase-739_v2.patch, this should fail (it might say "Build Successful", but check the actual junit output). After adding the attached patch, this should succeed (at least it did for me, when doing this process on a fresh copy of HBase). Let me know if this is still generating errors. > HBaseAdmin.createTable() using old HTableDescription doesn't work > ----------------------------------------------------------------- > > Key: HBASE-739 > URL: https://issues.apache.org/jira/browse/HBASE-739 > Project: Hadoop HBase > Issue Type: Bug > Components: client > Affects Versions: 0.2.0 > Reporter: Sebastien Rainville > Assignee: Izaak Rubin > Priority: Minor > Attachments: hbase-739.patch, hbase-739_v2.patch, master.log, TEST-org.apache.hadoop.hbase.TestTruncateIsaak.txt, TestHbase739.java, TestTruncate2.java > > > The following test case (see below) illustrate what used to work in branch 0.1 and that doesn't anymore. testTruncateInTrunk() shows how I got it to work again. I get this error now when trying the old code but using trunk: > java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at com.openplaces.test.fixture.FixtureLoader.truncateHbaseTable(FixtureLoader.java:105) > at com.openplaces.test.fixture.FixtureLoader.loadHbaseFixtures(FixtureLoader.java:63) > at com.openplaces.test.fixture.TestCaseWithFixtures.hbaseFixtures(TestCaseWithFixtures.java:34) > at com.openplaces.test.isolated.TestSearchSRFIEF.setUp(TestSearchSRFIEF.java:37) > at junit.framework.TestCase.runBare(TestCase.java:125) > at junit.framework.TestResult$1.protect(TestResult.java:106) > at junit.framework.TestResult.runProtected(TestResult.java:124) > at junit.framework.TestResult.run(TestResult.java:109) > at junit.framework.TestCase.run(TestCase.java:118) > at junit.framework.TestSuite.runTest(TestSuite.java:208) > at junit.framework.TestSuite.run(TestSuite.java:203) > at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) > at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) > Caused by: java.net.SocketTimeoutException: timed out waiting for rpc response > at org.apache.hadoop.ipc.Client.call(Client.java:559) > at org.apache.hadoop.hbase.ipc.HbaseRPC$Invoker.invoke(HbaseRPC.java:211) > at $Proxy5.createTable(Unknown Source) > at org.apache.hadoop.hbase.client.HBaseAdmin.createTableAsync(HBaseAdmin.java:184) > at org.apache.hadoop.hbase.client.HBaseAdmin.createTable(HBaseAdmin.java:144) > at com.openplaces.util.hbaserecord.connectionadapters.HbaseAdapter.truncateTable(HbaseAdapter.java:502) > at com.openplaces.util.hbaserecord.Base$Singleton.truncate(Base.java:609) > ... 21 more > import java.io.IOException; > import java.util.Collection; > import org.apache.hadoop.hbase.HBaseConfiguration; > import org.apache.hadoop.hbase.HColumnDescriptor; > import org.apache.hadoop.hbase.HTableDescriptor; > import org.apache.hadoop.hbase.client.HBaseAdmin; > import org.apache.hadoop.hbase.client.HTable; > import junit.framework.TestCase; > @SuppressWarnings("deprecation") > public class TestTruncate extends TestCase { > public void testTruncateInBranch_0_1() throws IOException{ > HTable table = new HTable("mytable"); > HBaseAdmin admin = new HBaseAdmin(new HBaseConfiguration()); > HTableDescriptor tableDesc = table.getMetadata(); > admin.deleteTable(table.getTableName()); > admin.createTable(tableDesc); > } > public void testTruncateInTrunk() throws IOException{ > HTable table = new HTable("mytable"); > HBaseAdmin admin = new HBaseAdmin(new HBaseConfiguration()); > Collection families = table.getMetadata().getFamilies(); > > HTableDescriptor tableDesc = new HTableDescriptor(table.getTableName()); > for(HColumnDescriptor family : families){ > tableDesc.addFamily(family); > } > admin.deleteTable(table.getTableName()); > admin.createTable(tableDesc); > } > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.