[jira] [Commented] (HBASE-9410) Concurrent coprocessor endpoint executions slow down exponentially

2013-09-08 Thread Kirubakaran Pakkirisamy (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13761212#comment-13761212
 ] 

Kirubakaran Pakkirisamy commented on HBASE-9410:


I do not see this issue in 0.95.2

 Concurrent coprocessor endpoint executions slow down exponentially
 --

 Key: HBASE-9410
 URL: https://issues.apache.org/jira/browse/HBASE-9410
 Project: HBase
  Issue Type: Bug
  Components: Coprocessors
Affects Versions: 0.94.11
 Environment: Amazon ec2
Reporter: Kirubakaran Pakkirisamy
 Attachments: jstack1.log, jstack2.log, jstack3.log, jstack.log, 
 SearchEndpoint.java, Search.java, SearchProtocol.java


 Multiple concurrent executions of coprocessor endpoints slow down 
 drastically. It is compounded further when there are more Htable connection 
 setups happening.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9458) Intermittent TestFlushSnapshotFromClient#testTakeSnapshotAfterMerge failure

2013-09-08 Thread Matteo Bertozzi (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13761456#comment-13761456
 ] 

Matteo Bertozzi commented on HBASE-9458:


that is by design.
The online snapshot operation is not guaranteed to succeed every time.
So in case like this where the machine is slow and the compaction of a split 
happen during the snapshot you may get a failure.


 Intermittent TestFlushSnapshotFromClient#testTakeSnapshotAfterMerge failure
 ---

 Key: HBASE-9458
 URL: https://issues.apache.org/jira/browse/HBASE-9458
 Project: HBase
  Issue Type: Test
Reporter: Ted Yu

 From 
 https://builds.apache.org/job/HBase-0.96/20/testReport/org.apache.hadoop.hbase.snapshot/TestFlushSnapshotFromClient/testTakeSnapshotAfterMerge/
  :
 {code}
 org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: 
 org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: Snapshot { 
 ss=snapshotAfterMerge table=test type=FLUSH } had an error.  Procedure 
 snapshotAfterMerge { waiting=[] done=[] }
   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:526)
   at 
 org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:95)
   at 
 org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:79)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:210)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:221)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:125)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:96)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3120)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.snapshot(HBaseAdmin.java:2672)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.snapshot(HBaseAdmin.java:2605)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.snapshot(HBaseAdmin.java:2612)
   at 
 org.apache.hadoop.hbase.snapshot.TestFlushSnapshotFromClient.testTakeSnapshotAfterMerge(TestFlushSnapshotFromClient.java:336)
   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:606)
   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.InvokeMethod.evaluate(InvokeMethod.java:17)
   at 
 org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
 Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException: 
 org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: Snapshot { 
 ss=snapshotAfterMerge table=test type=FLUSH } had an error.  Procedure 
 snapshotAfterMerge { waiting=[] done=[] }
   at 
 org.apache.hadoop.hbase.master.snapshot.SnapshotManager.isSnapshotDone(SnapshotManager.java:365)
   at 
 org.apache.hadoop.hbase.master.HMaster.isSnapshotDone(HMaster.java:2947)
   at 
 org.apache.hadoop.hbase.protobuf.generated.MasterAdminProtos$MasterAdminService$2.callBlockingMethod(MasterAdminProtos.java:32890)
   at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2146)
   at 
 org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1851)
 Caused by: org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException via 
 Failed taking snapshot { ss=snapshotAfterMerge table=test type=FLUSH } due to 
 exception:Missing parent hfile for: 
 30b951996ef34885a2f5d64e4acb2467.6d1ed72bf95759cb606e8a6efdc6908e:org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException:
  Missing parent hfile for: 
 30b951996ef34885a2f5d64e4acb2467.6d1ed72bf95759cb606e8a6efdc6908e
   at 
 org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher.rethrowException(ForeignExceptionDispatcher.java:85)
   at 
 org.apache.hadoop.hbase.master.snapshot.TakeSnapshotHandler.rethrowExceptionIfFailed(TakeSnapshotHandler.java:318)
   at 
 

[jira] [Commented] (HBASE-9328) Table web UI is corrupted sometime

2013-09-08 Thread Jimmy Xiang (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13761458#comment-13761458
 ] 

Jimmy Xiang commented on HBASE-9328:


The compilation error seems not related.  However, why do we miss java 
executable?
{noformat}
[PreCommit-HBASE-Build] $ /bin/bash /tmp/hudson2093491801297215642.sh
asf002.sp2.ygridcore.net
Linux asf002.sp2.ygridcore.net 2.6.32-33-server #71-Ubuntu SMP Wed Jul 20 
17:42:25 UTC 2011 x86_64 GNU/Linux
/tmp/hudson2093491801297215642.sh: line 5: java: command not found
/home/hudson/tools/java/latest1.6
/tmp/hudson2093491801297215642.sh: line 7: 
/home/hudson/tools/java/latest1.6/bin/java: No such file or directory
{noformat}

 Table web UI is corrupted sometime
 --

 Key: HBASE-9328
 URL: https://issues.apache.org/jira/browse/HBASE-9328
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.98.0, 0.95.2, 0.94.11
Reporter: Jimmy Xiang
Assignee: Jean-Marc Spaggiari
  Labels: web-ui
 Attachments: HBASE-9328-v0-trunk.patch, HBASE-9328-v1-trunk.patch, 
 HBASE-9328-v2-0.94.patch, HBASE-9328-v2-trunk.patch, 
 HBASE-9328-v3-trunk.patch, HBASE-9328-v4-trunk.patch, table.png


 The web UI page source is like below:
 {noformat}
 h2Table Attributes/h2
 table class=table table-striped
   tr
   thAttribute Name/th
   thValue/th
   thDescription/th
   /tr
   tr
   tdEnabled/td
   tdtrue/td
   tdIs the table enabled/td
   /tr
   tr
   tdCompaction/td
   td
 phr//p
 {noformat}
 No sure if it is a HBase issue, or a network/browser issue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9458) Intermittent TestFlushSnapshotFromClient#testTakeSnapshotAfterMerge failure

2013-09-08 Thread Ted Yu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13761468#comment-13761468
 ] 

Ted Yu commented on HBASE-9458:
---

How about catching CorruptedSnapshotException from admin.snapshot() call so 
that the test doesn't fail ?

 Intermittent TestFlushSnapshotFromClient#testTakeSnapshotAfterMerge failure
 ---

 Key: HBASE-9458
 URL: https://issues.apache.org/jira/browse/HBASE-9458
 Project: HBase
  Issue Type: Test
Reporter: Ted Yu

 From 
 https://builds.apache.org/job/HBase-0.96/20/testReport/org.apache.hadoop.hbase.snapshot/TestFlushSnapshotFromClient/testTakeSnapshotAfterMerge/
  :
 {code}
 org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: 
 org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: Snapshot { 
 ss=snapshotAfterMerge table=test type=FLUSH } had an error.  Procedure 
 snapshotAfterMerge { waiting=[] done=[] }
   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:526)
   at 
 org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:95)
   at 
 org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:79)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:210)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:221)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:125)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:96)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3120)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.snapshot(HBaseAdmin.java:2672)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.snapshot(HBaseAdmin.java:2605)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.snapshot(HBaseAdmin.java:2612)
   at 
 org.apache.hadoop.hbase.snapshot.TestFlushSnapshotFromClient.testTakeSnapshotAfterMerge(TestFlushSnapshotFromClient.java:336)
   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:606)
   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.InvokeMethod.evaluate(InvokeMethod.java:17)
   at 
 org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
 Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException: 
 org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: Snapshot { 
 ss=snapshotAfterMerge table=test type=FLUSH } had an error.  Procedure 
 snapshotAfterMerge { waiting=[] done=[] }
   at 
 org.apache.hadoop.hbase.master.snapshot.SnapshotManager.isSnapshotDone(SnapshotManager.java:365)
   at 
 org.apache.hadoop.hbase.master.HMaster.isSnapshotDone(HMaster.java:2947)
   at 
 org.apache.hadoop.hbase.protobuf.generated.MasterAdminProtos$MasterAdminService$2.callBlockingMethod(MasterAdminProtos.java:32890)
   at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2146)
   at 
 org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1851)
 Caused by: org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException via 
 Failed taking snapshot { ss=snapshotAfterMerge table=test type=FLUSH } due to 
 exception:Missing parent hfile for: 
 30b951996ef34885a2f5d64e4acb2467.6d1ed72bf95759cb606e8a6efdc6908e:org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException:
  Missing parent hfile for: 
 30b951996ef34885a2f5d64e4acb2467.6d1ed72bf95759cb606e8a6efdc6908e
   at 
 org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher.rethrowException(ForeignExceptionDispatcher.java:85)
   at 
 org.apache.hadoop.hbase.master.snapshot.TakeSnapshotHandler.rethrowExceptionIfFailed(TakeSnapshotHandler.java:318)
   at 
 org.apache.hadoop.hbase.master.snapshot.SnapshotManager.isSnapshotDone(SnapshotManager.java:355)
   ... 4 more
 Caused by: 

[jira] [Commented] (HBASE-9457) Master could fail start if region server with system table is down

2013-09-08 Thread Jimmy Xiang (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13761477#comment-13761477
 ] 

Jimmy Xiang commented on HBASE-9457:


[~toffer], [~saint@gmail.com], is there any special reason we need to 
assign system tables before user tables? In case user tables depend on some 
system tables in the future? I don't see a system table server shutdown 
handler, so I assume user tables don't depend on system table for normal 
operations. At least user region assignment doesn't need system table to be 
available?  If so, can we assign system tables together with user tables? For 
example, the access control table is assigned just like another user table.

 Master could fail start if region server with system table is down
 --

 Key: HBASE-9457
 URL: https://issues.apache.org/jira/browse/HBASE-9457
 Project: HBase
  Issue Type: Bug
  Components: master, Region Assignment
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
Priority: Critical

 In the region server holding the system table is killed while master is 
 starting, master will hang there waiting for system table to be assigned 
 which won't happen.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (HBASE-8572) Enhance delete_snapshot.rb to call snapshot deletion API with regex

2013-09-08 Thread Ted Yu (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-8572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Yu updated HBASE-8572:
--

Fix Version/s: 0.98.0

 Enhance delete_snapshot.rb to call snapshot deletion API with regex
 ---

 Key: HBASE-8572
 URL: https://issues.apache.org/jira/browse/HBASE-8572
 Project: HBase
  Issue Type: Improvement
Reporter: Ted Yu
 Fix For: 0.98.0


 HBASE-8461 added the API to HBaseAdmin which allows user to specify regular 
 expression for deleting snapshots.
 This JIRA would allow delete_snapshot.rb to utilize this functionality.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Created] (HBASE-9462) HBaseAdmin#isTableEnabled() should return false for non-existent table

2013-09-08 Thread Ted Yu (JIRA)
Ted Yu created HBASE-9462:
-

 Summary: HBaseAdmin#isTableEnabled() should return false for 
non-existent table
 Key: HBASE-9462
 URL: https://issues.apache.org/jira/browse/HBASE-9462
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.95.2
Reporter: Ted Yu
 Fix For: 0.96.0


HBaseAdmin#isTableEnabled() returns true for a table which doesn't exist.

We should check table existence.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-9440) Pass blocks of KVs from HFile scanner to the StoreFileScanner and up

2013-09-08 Thread Matt Corgan (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13761539#comment-13761539
 ] 

Matt Corgan commented on HBASE-9440:


In cases where the client wants the majority of cells in the block, you'd 
basically be sending the same amount of data over the wire, but it could save 
the regionserver all the work of decompressing, decoding, iterating, 
reencoding, etc.  All that fine-grained cell handling is is most of the work 
that hbase is doing, and sometimes it's just doing it to rebuild a near replica 
of what was on disk anyway.

 Pass blocks of KVs from HFile scanner to the StoreFileScanner and up
 

 Key: HBASE-9440
 URL: https://issues.apache.org/jira/browse/HBASE-9440
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl

 Currently we read KVs from an HFileScanner one-by-one and pass them up the 
 scanner/heap tree. Many time the ranges of KVs retrieved from 
 StoreFileScanner (by StoreScanners) and HFileScanner (by StoreFileScanner) 
 will be non-overlapping. If chunks of KVs do not overlap we can sort entire 
 chunks just by comparing the start/end key of the chunk. Only if chunks are 
 overlapping do we need to sort KV by KV as we do now.
 I have no patch, but I wanted to float this idea. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (HBASE-8755) A new write thread model for HLog to improve the overall HBase write throughput

2013-09-08 Thread Feng Honghua (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-8755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13761563#comment-13761563
 ] 

Feng Honghua commented on HBASE-8755:
-

Thanks [~stack]. Looking forward to your test result on hdfs

 A new write thread model for HLog to improve the overall HBase write 
 throughput
 ---

 Key: HBASE-8755
 URL: https://issues.apache.org/jira/browse/HBASE-8755
 Project: HBase
  Issue Type: Improvement
  Components: Performance, wal
Reporter: Feng Honghua
Assignee: stack
Priority: Critical
 Fix For: 0.96.1

 Attachments: 8755trunkV2.txt, HBASE-8755-0.94-V0.patch, 
 HBASE-8755-0.94-V1.patch, HBASE-8755-trunk-V0.patch, HBASE-8755-trunk-V1.patch


 In current write model, each write handler thread (executing put()) will 
 individually go through a full 'append (hlog local buffer) = HLog writer 
 append (write to hdfs) = HLog writer sync (sync hdfs)' cycle for each write, 
 which incurs heavy race condition on updateLock and flushLock.
 The only optimization where checking if current syncTillHere  txid in 
 expectation for other thread help write/sync its own txid to hdfs and 
 omitting the write/sync actually help much less than expectation.
 Three of my colleagues(Ye Hangjun / Wu Zesheng / Zhang Peng) at Xiaomi 
 proposed a new write thread model for writing hdfs sequence file and the 
 prototype implementation shows a 4X improvement for throughput (from 17000 to 
 7+). 
 I apply this new write thread model in HLog and the performance test in our 
 test cluster shows about 3X throughput improvement (from 12150 to 31520 for 1 
 RS, from 22000 to 7 for 5 RS), the 1 RS write throughput (1K row-size) 
 even beats the one of BigTable (Precolator published in 2011 says Bigtable's 
 write throughput then is 31002). I can provide the detailed performance test 
 results if anyone is interested.
 The change for new write thread model is as below:
  1 All put handler threads append the edits to HLog's local pending buffer; 
 (it notifies AsyncWriter thread that there is new edits in local buffer)
  2 All put handler threads wait in HLog.syncer() function for underlying 
 threads to finish the sync that contains its txid;
  3 An single AsyncWriter thread is responsible for retrieve all the buffered 
 edits in HLog's local pending buffer and write to the hdfs 
 (hlog.writer.append); (it notifies AsyncFlusher thread that there is new 
 writes to hdfs that needs a sync)
  4 An single AsyncFlusher thread is responsible for issuing a sync to hdfs 
 to persist the writes by AsyncWriter; (it notifies the AsyncNotifier thread 
 that sync watermark increases)
  5 An single AsyncNotifier thread is responsible for notifying all pending 
 put handler threads which are waiting in the HLog.syncer() function
  6 No LogSyncer thread any more (since there is always 
 AsyncWriter/AsyncFlusher threads do the same job it does)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Reopened] (HBASE-8930) Filter evaluates KVs outside requested columns

2013-09-08 Thread Lars Hofhansl (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-8930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lars Hofhansl reopened HBASE-8930:
--


It turns out that this is likely cause for frequently failing tests in jenkins.
I will roll this back for now.

[~apurtell], [~vasu.mariy...@gmail.com]


 Filter evaluates KVs outside requested columns
 --

 Key: HBASE-8930
 URL: https://issues.apache.org/jira/browse/HBASE-8930
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 0.94.7
Reporter: Federico Gaule
Assignee: Vasu Mariyala
Priority: Critical
  Labels: filters, hbase, keyvalue
 Fix For: 0.98.0, 0.94.12, 0.96.1

 Attachments: 0.94-HBASE-8930.patch, 0.94-HBASE-8930-rev1.patch, 
 0.95-HBASE-8930.patch, 0.95-HBASE-8930-rev1.patch, 
 0.96-HBASE-8930-rev2.patch, 8930-0.94.txt, HBASE-8930.patch, 
 HBASE-8930-rev1.patch, HBASE-8930-rev2.patch, HBASE-8930-rev3.patch, 
 HBASE-8930-rev4.patch, HBASE-8930-rev5.patch


 1- Fill row with some columns
 2- Get row with some columns less than universe - Use filter to print kvs
 3- Filter prints not requested columns
 Filter (AllwaysNextColFilter) always return ReturnCode.INCLUDE_AND_NEXT_COL 
 and prints KV's qualifier
 SUFFIX_0 = 0
 SUFFIX_1 = 1
 SUFFIX_4 = 4
 SUFFIX_6 = 6
 P= Persisted
 R= Requested
 E= Evaluated
 X= Returned
 | 5580 | 5581 | 5584 | 5586 | 5590 | 5591 | 5594 | 5596 | 5600 | 5601 | 5604 
 | 5606 |... 
 |  |  P   |   P  |  |  |  P   |   P  |  |  |  P   |   P  
 |  |...
 |  |  R   |   R  |   R  |  |  R   |   R  |   R  |  |  |  
 |  |...
 |  |  E   |   E  |  |  |  E   |   E  |  |  |  
 {color:red}E{color}   |  |  |...
 |  |  X   |   X  |  |  |  X   |   X  |  |  |  |  
 |  |
 {code:title=ExtraColumnTest.java|borderStyle=solid}
 @Test
 public void testFilter() throws Exception {
 Configuration config = HBaseConfiguration.create();
 config.set(hbase.zookeeper.quorum, myZK);
 HTable hTable = new HTable(config, testTable);
 byte[] cf = Bytes.toBytes(cf);
 byte[] row = Bytes.toBytes(row);
 byte[] col1 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 558, (byte) SUFFIX_1));
 byte[] col2 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 559, (byte) SUFFIX_1));
 byte[] col3 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 560, (byte) SUFFIX_1));
 byte[] col4 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 561, (byte) SUFFIX_1));
 byte[] col5 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 562, (byte) SUFFIX_1));
 byte[] col6 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 563, (byte) SUFFIX_1));
 byte[] col1g = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 558, (byte) SUFFIX_6));
 byte[] col2g = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 559, (byte) SUFFIX_6));
 byte[] col1v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 558, (byte) SUFFIX_4));
 byte[] col2v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 559, (byte) SUFFIX_4));
 byte[] col3v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 560, (byte) SUFFIX_4));
 byte[] col4v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 561, (byte) SUFFIX_4));
 byte[] col5v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 562, (byte) SUFFIX_4));
 byte[] col6v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 563, (byte) SUFFIX_4));
 // === INSERTION =//
 Put put = new Put(row);
 put.add(cf, col1, Bytes.toBytes((short) 1));
 put.add(cf, col2, Bytes.toBytes((short) 1));
 put.add(cf, col3, Bytes.toBytes((short) 3));
 put.add(cf, col4, Bytes.toBytes((short) 3));
 put.add(cf, col5, Bytes.toBytes((short) 3));
 put.add(cf, col6, Bytes.toBytes((short) 3));
 hTable.put(put);
 put = new Put(row);
 put.add(cf, col1v, Bytes.toBytes((short) 10));
 put.add(cf, col2v, Bytes.toBytes((short) 10));
 put.add(cf, col3v, Bytes.toBytes((short) 10));
 put.add(cf, col4v, Bytes.toBytes((short) 10));
 put.add(cf, col5v, Bytes.toBytes((short) 10));
 put.add(cf, col6v, Bytes.toBytes((short) 10));
 hTable.put(put);
 hTable.flushCommits();
 //==READING=//
 Filter allwaysNextColFilter = new AllwaysNextColFilter();
 Get get = new 

[jira] [Commented] (HBASE-8930) Filter evaluates KVs outside requested columns

2013-09-08 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-8930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13761616#comment-13761616
 ] 

Lars Hofhansl commented on HBASE-8930:
--

For the record, the errors we've seen:
{code}
Stacktrace

java.lang.AssertionError: Column family prefix used twice: 
cf.cf.bt.Data.fsReadnumops
at 
org.apache.hadoop.hbase.regionserver.metrics.SchemaMetrics.validateMetricChanges(SchemaMetrics.java:885)
at 
org.apache.hadoop.hbase.io.hfile.TestScannerSelectionUsingTTL.testScannerSelection(TestScannerSelectionUsingTTL.java:159)
{code}
{code}
Error Message

Column family prefix used twice: cf.cf.bt.Data.fsReadnumops

Stacktrace

java.lang.AssertionError: Column family prefix used twice: 
cf.cf.bt.Data.fsReadnumops
at 
org.apache.hadoop.hbase.regionserver.metrics.SchemaMetrics.validateMetricChanges(SchemaMetrics.java:885)
at 
org.apache.hadoop.hbase.io.hfile.TestScannerSelectionUsingKeyRange.testScannerSelection(TestScannerSelectionUsingKeyRange.java:125)
{code}

I do not immediately see how this change could have caused this, though.

 Filter evaluates KVs outside requested columns
 --

 Key: HBASE-8930
 URL: https://issues.apache.org/jira/browse/HBASE-8930
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 0.94.7
Reporter: Federico Gaule
Assignee: Vasu Mariyala
Priority: Critical
  Labels: filters, hbase, keyvalue
 Fix For: 0.98.0, 0.94.12, 0.96.1

 Attachments: 0.94-HBASE-8930.patch, 0.94-HBASE-8930-rev1.patch, 
 0.95-HBASE-8930.patch, 0.95-HBASE-8930-rev1.patch, 
 0.96-HBASE-8930-rev2.patch, 8930-0.94.txt, HBASE-8930.patch, 
 HBASE-8930-rev1.patch, HBASE-8930-rev2.patch, HBASE-8930-rev3.patch, 
 HBASE-8930-rev4.patch, HBASE-8930-rev5.patch


 1- Fill row with some columns
 2- Get row with some columns less than universe - Use filter to print kvs
 3- Filter prints not requested columns
 Filter (AllwaysNextColFilter) always return ReturnCode.INCLUDE_AND_NEXT_COL 
 and prints KV's qualifier
 SUFFIX_0 = 0
 SUFFIX_1 = 1
 SUFFIX_4 = 4
 SUFFIX_6 = 6
 P= Persisted
 R= Requested
 E= Evaluated
 X= Returned
 | 5580 | 5581 | 5584 | 5586 | 5590 | 5591 | 5594 | 5596 | 5600 | 5601 | 5604 
 | 5606 |... 
 |  |  P   |   P  |  |  |  P   |   P  |  |  |  P   |   P  
 |  |...
 |  |  R   |   R  |   R  |  |  R   |   R  |   R  |  |  |  
 |  |...
 |  |  E   |   E  |  |  |  E   |   E  |  |  |  
 {color:red}E{color}   |  |  |...
 |  |  X   |   X  |  |  |  X   |   X  |  |  |  |  
 |  |
 {code:title=ExtraColumnTest.java|borderStyle=solid}
 @Test
 public void testFilter() throws Exception {
 Configuration config = HBaseConfiguration.create();
 config.set(hbase.zookeeper.quorum, myZK);
 HTable hTable = new HTable(config, testTable);
 byte[] cf = Bytes.toBytes(cf);
 byte[] row = Bytes.toBytes(row);
 byte[] col1 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 558, (byte) SUFFIX_1));
 byte[] col2 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 559, (byte) SUFFIX_1));
 byte[] col3 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 560, (byte) SUFFIX_1));
 byte[] col4 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 561, (byte) SUFFIX_1));
 byte[] col5 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 562, (byte) SUFFIX_1));
 byte[] col6 = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 563, (byte) SUFFIX_1));
 byte[] col1g = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 558, (byte) SUFFIX_6));
 byte[] col2g = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 559, (byte) SUFFIX_6));
 byte[] col1v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 558, (byte) SUFFIX_4));
 byte[] col2v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 559, (byte) SUFFIX_4));
 byte[] col3v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 560, (byte) SUFFIX_4));
 byte[] col4v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 561, (byte) SUFFIX_4));
 byte[] col5v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 562, (byte) SUFFIX_4));
 byte[] col6v = new QualifierConverter().objectToByteArray(new 
 Qualifier((short) 563, (byte) SUFFIX_4));
 // === INSERTION =//
 Put put = new Put(row);
 put.add(cf, col1, Bytes.toBytes((short) 1));
 put.add(cf, col2, 

[jira] [Commented] (HBASE-9458) Intermittent TestFlushSnapshotFromClient#testTakeSnapshotAfterMerge failure

2013-09-08 Thread Matteo Bertozzi (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13761635#comment-13761635
 ] 

Matteo Bertozzi commented on HBASE-9458:


{quote}How about catching CorruptedSnapshotException from admin.snapshot() call 
so that the test doesn't fail?{quote}
Yes, you can add a snapshot() method in SnapshotTestingUtil that wraps 
admin.snapshot() with a while and a catch CorruptedException but then you don't 
have much control on how many times it fails (which should be low) and what is 
the cause.
but feel free to do it if you want the tests always passing and you don't 
consider this failure something that you want to look at every time.

 Intermittent TestFlushSnapshotFromClient#testTakeSnapshotAfterMerge failure
 ---

 Key: HBASE-9458
 URL: https://issues.apache.org/jira/browse/HBASE-9458
 Project: HBase
  Issue Type: Test
Reporter: Ted Yu

 From 
 https://builds.apache.org/job/HBase-0.96/20/testReport/org.apache.hadoop.hbase.snapshot/TestFlushSnapshotFromClient/testTakeSnapshotAfterMerge/
  :
 {code}
 org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: 
 org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: Snapshot { 
 ss=snapshotAfterMerge table=test type=FLUSH } had an error.  Procedure 
 snapshotAfterMerge { waiting=[] done=[] }
   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:526)
   at 
 org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:95)
   at 
 org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:79)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:210)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:221)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:125)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:96)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3120)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.snapshot(HBaseAdmin.java:2672)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.snapshot(HBaseAdmin.java:2605)
   at 
 org.apache.hadoop.hbase.client.HBaseAdmin.snapshot(HBaseAdmin.java:2612)
   at 
 org.apache.hadoop.hbase.snapshot.TestFlushSnapshotFromClient.testTakeSnapshotAfterMerge(TestFlushSnapshotFromClient.java:336)
   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:606)
   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.InvokeMethod.evaluate(InvokeMethod.java:17)
   at 
 org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
 Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException: 
 org.apache.hadoop.hbase.snapshot.HBaseSnapshotException: Snapshot { 
 ss=snapshotAfterMerge table=test type=FLUSH } had an error.  Procedure 
 snapshotAfterMerge { waiting=[] done=[] }
   at 
 org.apache.hadoop.hbase.master.snapshot.SnapshotManager.isSnapshotDone(SnapshotManager.java:365)
   at 
 org.apache.hadoop.hbase.master.HMaster.isSnapshotDone(HMaster.java:2947)
   at 
 org.apache.hadoop.hbase.protobuf.generated.MasterAdminProtos$MasterAdminService$2.callBlockingMethod(MasterAdminProtos.java:32890)
   at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2146)
   at 
 org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1851)
 Caused by: org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException via 
 Failed taking snapshot { ss=snapshotAfterMerge table=test type=FLUSH } due to 
 exception:Missing parent hfile for: 
 30b951996ef34885a2f5d64e4acb2467.6d1ed72bf95759cb606e8a6efdc6908e:org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException:
  Missing parent hfile for: 
 30b951996ef34885a2f5d64e4acb2467.6d1ed72bf95759cb606e8a6efdc6908e
   at