[
https://issues.apache.org/jira/browse/HBASE-2461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stack updated HBASE-2461:
-------------------------
Attachment: 2461-v8.txt
Includes minor fix where we weren't returning if failure doing rollback.
I looked at adding test failing a split on a running cluster but the
contortions are too extreme -- CompactSplitThread is created in
HRS#reinitialize() -- and then our split is run inside in CST#split so we'd
need to put in place first our own CST and then, CST has to be subclassable or
amenable to injection. Currently it is not. So, I could mess w/ making what
we load for CST configurable but then what about the other threads, LogRoller,
the Worker thread, etc., why not make them configurable while I'm at it.
...but then I shouldn't even be doing this. There are containers that will
stitch it all together for us and that can be easily changed at test time to
run an alternative. See http://www.picocontainer.org/ or spring
And the RS and Master are about to change w/ master rewrite.
I'm going to pass on trying to test split failure on running cluster till at
least after master rewrite goes in.
> Split doesn't handle IOExceptions when creating new region reference files
> --------------------------------------------------------------------------
>
> Key: HBASE-2461
> URL: https://issues.apache.org/jira/browse/HBASE-2461
> Project: HBase
> Issue Type: Bug
> Components: regionserver
> Reporter: Todd Lipcon
> Assignee: stack
> Priority: Blocker
> Fix For: 0.90.0
>
> Attachments: 2461-v2.txt, 2461-v3.txt, 2461-v4.txt, 2461-v6.txt,
> 2461-v7.txt, 2461-v8.txt, 2461.txt, ugly_but_might_work.txt
>
>
> I was testing an HDFS patch which had a bug in it, so it happened to throw an
> NPE during a split with the following trace:
> 2010-04-16 19:18:20,727 ERROR
> org.apache.hadoop.hbase.regionserver.CompactSplitThread: Compaction failed
> for region TestTable,-1945465867<1271449232310>,1271453785648
> java.lang.NullPointerException
> at
> org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.enqueueCurrentPacket(DFSClient.java:3124)
> at
> org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.flushInternal(DFSClient.java:3220)
> at
> org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.closeInternal(DFSClient.java:3306)
> at
> org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.close(DFSClient.java:3255)
> at
> org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:61)
> at
> org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:86)
> at org.apache.hadoop.fs.FileSystem.createNewFile(FileSystem.java:560)
> at org.apache.hadoop.hbase.util.FSUtils.create(FSUtils.java:95)
> at org.apache.hadoop.hbase.io.Reference.write(Reference.java:129)
> at
> org.apache.hadoop.hbase.regionserver.StoreFile.split(StoreFile.java:498)
> at
> org.apache.hadoop.hbase.regionserver.HRegion.splitRegion(HRegion.java:682)
> at
> org.apache.hadoop.hbase.regionserver.CompactSplitThread.split(CompactSplitThread.java:162)
> at
> org.apache.hadoop.hbase.regionserver.CompactSplitThread.run(CompactSplitThread.java:95)
> After that, my region was gone, any further writes to it would fail.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.