[ https://issues.apache.org/jira/browse/HBASE-10859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13951098#comment-13951098 ]
Devaraj Das commented on HBASE-10859: ------------------------------------- The patch looks good to me. [~ndimiduk], on the topic of in-memory vs disk, we probably could abstract away some functionality from HFileLink to something like InMemoryFileLink. Have HFileLink extend InMemoryFileLink and implement the "real" file-link stuff... > HStore.openStoreFiles() should pass the StoreFileInfo object to > createStoreFileAndReader() > ------------------------------------------------------------------------------------------ > > Key: HBASE-10859 > URL: https://issues.apache.org/jira/browse/HBASE-10859 > Project: HBase > Issue Type: Sub-task > Reporter: Enis Soztutar > Assignee: Enis Soztutar > Fix For: hbase-10070 > > Attachments: hbase-10859_v1.patch > > > We sometimes see the following stack trace on test logs (TestReplicasClient), > but this is not test-specific: > {code} > 2014-03-26 21:44:18,662 ERROR [RS_OPEN_REGION-c64-s12:35852-2] > handler.OpenRegionHandler(481): Failed open of > region=TestReplicasClient,,1395895445056_0001.5f8b8db27e36d2dde781193d92a05730., > starting to roll back the global memstore size. > java.io.IOException: java.io.IOException: java.io.FileNotFoundException: File > does not exist: > hdfs://localhost:56276/user/jenkins/hbase/data/default/TestReplicasClient/856934fb87781c9030975706b66137a5/info/589000f197b048e0897e1d81dd7e3a90 > at > org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionStores(HRegion.java:739) > at > org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:646) > at org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:617) > at > org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:4447) > at > org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:4417) > at > org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:4389) > at > org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:4345) > at > org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:4296) > at > org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:465) > at > org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:139) > at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:722) > Caused by: java.io.IOException: java.io.FileNotFoundException: File does not > exist: > hdfs://localhost:56276/user/jenkins/hbase/data/default/TestReplicasClient/856934fb87781c9030975706b66137a5/info/589000f197b048e0897e1d81dd7e3a90 > at > org.apache.hadoop.hbase.regionserver.HStore.openStoreFiles(HStore.java:531) > at > org.apache.hadoop.hbase.regionserver.HStore.loadStoreFiles(HStore.java:486) > at org.apache.hadoop.hbase.regionserver.HStore.<init>(HStore.java:254) > at > org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:3357) > at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:710) > at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:707) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > ... 3 more > Caused by: java.io.FileNotFoundException: File does not exist: > hdfs://localhost:56276/user/jenkins/hbase/data/default/TestReplicasClient/856934fb87781c9030975706b66137a5/info/589000f197b048e0897e1d81dd7e3a90 > at > org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1128) > at > org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1120) > at > org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) > at > org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1120) > at > org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:397) > at > org.apache.hadoop.hbase.regionserver.StoreFileInfo.<init>(StoreFileInfo.java:95) > at > org.apache.hadoop.hbase.regionserver.HStore.createStoreFileAndReader(HStore.java:600) > at org.apache.hadoop.hbase.regionserver.HStore.access$000(HStore.java:121) > at org.apache.hadoop.hbase.regionserver.HStore$1.call(HStore.java:506) > at org.apache.hadoop.hbase.regionserver.HStore$1.call(HStore.java:503) > ... 8 more > {code} > The region fails to open for the region replica, because at this time, the > primary region is performing a compaction. The file is moved to the archive > directory in between listing of store files and opening those store files > from the secondary. > The secondary region should able to deal with this through usage of > StoreFileInfo and HFile, but since we are reconstructing the StoreFileInfo > object twice between HStore.openStoreFiles() and createStoreFileAndReader() > we are getting this exception. -- This message was sent by Atlassian JIRA (v6.2#6252)