hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Irfan Mohammed <irfan...@gmail.com>
Subject new API method HTable.incrementColumnValue hangs
Date Mon, 15 Jun 2009 12:55:08 GMT
using the hbase from the trunk on ubuntu 9.04

irfan@damascus:~$ hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Version: 0.20.0-dev, r784503, Sun Jun 14 15:36:01 EDT 2009

Whenever I use the new API call [HTable.incrementColumnValue], the process hangs. If I kill
the process and later try to access the table records anywhere including "hbase shell" etc.,
even that process hangs. 

1. "stop-hbase.sh" hangs as well and I have to kill the hbase processes
2. restart the hbase using "start-hbase.sh"
3. hbase shell> count 't1' ---> throws an error that the table if offline
4. so had to enable 't1' and then work with the table.

Thread [main] (Suspended)	
	Object.wait(long) line: not available [native method] [local variables unavailable]	
	HBaseClient$Call(Object).wait() line: 485 [local variables unavailable]	
	HBaseClient.call(Writable, InetSocketAddress, UserGroupInformation) line: 712	
	HBaseRPC$Invoker.invoke(Object, Method, Object[]) line: 321	
	$Proxy1.incrementColumnValue(byte[], byte[], byte[], byte[], long) line: not available	
	HTable$6.call() line: 504	
	HTable$6.call() line: 500	
	HConnectionManager$TableServers.getRegionServerWithRetries(ServerCallable<T>) line:
920	
	HTable.incrementColumnValue(byte[], byte[], byte[], long) line: 499	
	LoadQueryTest.testUsingIncrement() line: 130	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]

	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 597	
	LoadQueryTest(TestCase).runTest() line: 168	
	LoadQueryTest(TestCase).runBare() line: 134	
	TestResult$1.protect() line: 110	
	TestResult.runProtected(Test, Protectable) line: 128	
	TestResult.run(TestCase) line: 113	
	LoadQueryTest(TestCase).run(TestResult) line: 124	
	TestSuite.runTest(Test, TestResult) line: 232	
	TestSuite.run(TestResult) line: 227	
	JUnit38ClassRunner.run(RunNotifier) line: 81	
	JUnit4TestAdapter.run(TestResult) line: 36	
	TestSuite.runTest(Test, TestResult) line: 232	
	TestSuite.run(TestResult) line: 227	
	AllTests(JUnit38ClassRunner).run(RunNotifier) line: 81	
	JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) line: 45	
	TestExecution.run(ITestReference[]) line: 38	
	RemoteTestRunner.runTests(String[], String, TestExecution) line: 460	
	RemoteTestRunner.runTests(TestExecution) line: 673	
	RemoteTestRunner.run() line: 386	
	RemoteTestRunner.main(String[]) line: 196	

My code is as follows ...

    public void testUsingIncrement() throws Exception {
        String tableName = "t1";
        
        HBaseConfiguration config = getConfiguration();
        
        createTable(config, tableName);

        // This instantiates an HTable object that connects you to the "myTable"
        // table.
        HTable table = new HTable(config, tableName);
        
        long siteId = 1234;
        long publisherId = 5678;
        Date eventTime = DATE_INPUT_FORMAT.parse("2009-06-15 13:08:54");
        
        long[] metrics = new long[] { 10, 22, 32 };
        
        byte[] rowKey = Bytes.toBytes(siteId + "_" + ROW_KEY_FORMAT.format(eventTime));
        byte[] family = Bytes.toBytes(FAMILY_PUBLISHER);
        byte[] qualifier = Bytes.toBytes(publisherId);
        
        for (int i1 = 0, n1 = metrics.length; n1 > 0; i1++, n1--) {
            table.incrementColumnValue(rowKey, family, qualifier, metrics[i1]); /// <<<<
hangs here all the time ...
        }
        
        table.close();

        // queryMetrics(table, siteId, publisherId, eventTime);
    }

Is there anything I am doing incorrectly?

Thanks for the help.
Irfan

Mime
View raw message