[jira] [Commented] (HBASE-4562) When split doing offlineParentInMeta occurs error,it'll cause data loss
[ https://issues.apache.org/jira/browse/HBASE-4562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13124742#comment-13124742 ] Ted Yu commented on HBASE-4562: --- Please run patch for 0.92 or TRUNK (hopefully both) through unit tests. Thanks When split doing offlineParentInMeta occurs error,it'll cause data loss --- Key: HBASE-4562 URL: https://issues.apache.org/jira/browse/HBASE-4562 Project: HBase Issue Type: Bug Components: regionserver Affects Versions: 0.90.4 Reporter: bluedavy Priority: Blocker Fix For: 0.90.5 Attachments: HBASE-4562-test.report.txt, HBASE-4562.patch, HBASE-4562for0.92.patch, HBASE-4562fortrunk.patch Follow below steps to replay the problem: 1. change the SplitTransaction.java as below,just like mock the timeout error. {code:title=SplitTransaction.java|borderStyle=solid} if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} 2. update the regionserver code,restart; 3. create a table put some data to the table; 4. split the table; 5. kill the regionserver hosted the table; 6. wait some time after master ServerShutdownHandler.process execute,then scan the table,u'll find the data wrote before lost. We can fix the bug just use the patch. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-4562) When split doing offlineParentInMeta occurs error,it'll cause data loss
[ https://issues.apache.org/jira/browse/HBASE-4562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13123977#comment-13123977 ] bluedavy commented on HBASE-4562: - @Ted Yu OK, I attached the patch again,and also provide the test suite results. When split doing offlineParentInMeta occurs error,it'll cause data loss --- Key: HBASE-4562 URL: https://issues.apache.org/jira/browse/HBASE-4562 Project: HBase Issue Type: Bug Components: regionserver Affects Versions: 0.90.4 Reporter: bluedavy Priority: Blocker Fix For: 0.90.5 Attachments: HBASE-4562-test.report.txt, HBASE-4562.patch Follow below steps to replay the problem: 1. change the SplitTransaction.java as below,just like mock the timeout error. {code:title=SplitTransaction.java|borderStyle=solid} if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} 2. update the regionserver code,restart; 3. create a table put some data to the table; 4. split the table; 5. kill the regionserver hosted the table; 6. wait some time after master ServerShutdownHandler.process execute,then scan the table,u'll find the data wrote before lost. We can fix the bug just use below code: {code:title=SplitTransaction.java|borderStyle=solid} this.journal.add(JournalEntry.PONR); if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} {code:title=CompactSplitThread.java|borderStyle=solid} if (st.rollback(this.server, this.server)) { LOG.info(Successful rollback of failed split of + parent.getRegionNameAsString()); } else { this.server.abort(Abort; we got an error after point-of-no-return); } {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-4562) When split doing offlineParentInMeta occurs error,it'll cause data loss
[ https://issues.apache.org/jira/browse/HBASE-4562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13123993#comment-13123993 ] ramkrishna.s.vasudevan commented on HBASE-4562: --- Is it possible to write a testcase with the scenario you have told in the description? Minor comment: {code} +} +else { + this.server.abort(Abort; we got an error after point-of-no-return); +} {code} +} else { + this.server.abort(Abort; we got an error after point-of-no-return); +} else block should begin in the same line where if block ends. When split doing offlineParentInMeta occurs error,it'll cause data loss --- Key: HBASE-4562 URL: https://issues.apache.org/jira/browse/HBASE-4562 Project: HBase Issue Type: Bug Components: regionserver Affects Versions: 0.90.4 Reporter: bluedavy Priority: Blocker Fix For: 0.90.5 Attachments: HBASE-4562-test.report.txt, HBASE-4562.patch Follow below steps to replay the problem: 1. change the SplitTransaction.java as below,just like mock the timeout error. {code:title=SplitTransaction.java|borderStyle=solid} if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} 2. update the regionserver code,restart; 3. create a table put some data to the table; 4. split the table; 5. kill the regionserver hosted the table; 6. wait some time after master ServerShutdownHandler.process execute,then scan the table,u'll find the data wrote before lost. We can fix the bug just use below code: {code:title=SplitTransaction.java|borderStyle=solid} this.journal.add(JournalEntry.PONR); if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} {code:title=CompactSplitThread.java|borderStyle=solid} if (st.rollback(this.server, this.server)) { LOG.info(Successful rollback of failed split of + parent.getRegionNameAsString()); } else { this.server.abort(Abort; we got an error after point-of-no-return); } {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-4562) When split doing offlineParentInMeta occurs error,it'll cause data loss
[ https://issues.apache.org/jira/browse/HBASE-4562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13124242#comment-13124242 ] Ted Yu commented on HBASE-4562: --- Apache Jenkins build for 0.90 has 678 tests. The attached test report had fewer test cases. Also, patch for 0.92/TRUNK is needed since the fix would go to those places as well. When split doing offlineParentInMeta occurs error,it'll cause data loss --- Key: HBASE-4562 URL: https://issues.apache.org/jira/browse/HBASE-4562 Project: HBase Issue Type: Bug Components: regionserver Affects Versions: 0.90.4 Reporter: bluedavy Priority: Blocker Fix For: 0.90.5 Attachments: HBASE-4562-test.report.txt, HBASE-4562.patch Follow below steps to replay the problem: 1. change the SplitTransaction.java as below,just like mock the timeout error. {code:title=SplitTransaction.java|borderStyle=solid} if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} 2. update the regionserver code,restart; 3. create a table put some data to the table; 4. split the table; 5. kill the regionserver hosted the table; 6. wait some time after master ServerShutdownHandler.process execute,then scan the table,u'll find the data wrote before lost. We can fix the bug just use below code: {code:title=SplitTransaction.java|borderStyle=solid} this.journal.add(JournalEntry.PONR); if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} {code:title=CompactSplitThread.java|borderStyle=solid} if (st.rollback(this.server, this.server)) { LOG.info(Successful rollback of failed split of + parent.getRegionNameAsString()); } else { this.server.abort(Abort; we got an error after point-of-no-return); } {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-4562) When split doing offlineParentInMeta occurs error,it'll cause data loss
[ https://issues.apache.org/jira/browse/HBASE-4562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13124638#comment-13124638 ] bluedavy commented on HBASE-4562: - @Ted Yu I'll check the tests... Also I'll attach the patch for 0.92 TRUNK. When split doing offlineParentInMeta occurs error,it'll cause data loss --- Key: HBASE-4562 URL: https://issues.apache.org/jira/browse/HBASE-4562 Project: HBase Issue Type: Bug Components: regionserver Affects Versions: 0.90.4 Reporter: bluedavy Priority: Blocker Fix For: 0.90.5 Attachments: HBASE-4562-test.report.txt, HBASE-4562.patch Follow below steps to replay the problem: 1. change the SplitTransaction.java as below,just like mock the timeout error. {code:title=SplitTransaction.java|borderStyle=solid} if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} 2. update the regionserver code,restart; 3. create a table put some data to the table; 4. split the table; 5. kill the regionserver hosted the table; 6. wait some time after master ServerShutdownHandler.process execute,then scan the table,u'll find the data wrote before lost. We can fix the bug just use below code: {code:title=SplitTransaction.java|borderStyle=solid} this.journal.add(JournalEntry.PONR); if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} {code:title=CompactSplitThread.java|borderStyle=solid} if (st.rollback(this.server, this.server)) { LOG.info(Successful rollback of failed split of + parent.getRegionNameAsString()); } else { this.server.abort(Abort; we got an error after point-of-no-return); } {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-4562) When split doing offlineParentInMeta occurs error,it'll cause data loss
[ https://issues.apache.org/jira/browse/HBASE-4562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13124715#comment-13124715 ] bluedavy commented on HBASE-4562: - @Ted Yu I count all tests in src/test,I'm sure all test are ran... When split doing offlineParentInMeta occurs error,it'll cause data loss --- Key: HBASE-4562 URL: https://issues.apache.org/jira/browse/HBASE-4562 Project: HBase Issue Type: Bug Components: regionserver Affects Versions: 0.90.4 Reporter: bluedavy Priority: Blocker Fix For: 0.90.5 Attachments: HBASE-4562-test.report.txt, HBASE-4562.patch Follow below steps to replay the problem: 1. change the SplitTransaction.java as below,just like mock the timeout error. {code:title=SplitTransaction.java|borderStyle=solid} if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} 2. update the regionserver code,restart; 3. create a table put some data to the table; 4. split the table; 5. kill the regionserver hosted the table; 6. wait some time after master ServerShutdownHandler.process execute,then scan the table,u'll find the data wrote before lost. We can fix the bug just use below code: {code:title=SplitTransaction.java|borderStyle=solid} this.journal.add(JournalEntry.PONR); if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} {code:title=CompactSplitThread.java|borderStyle=solid} if (st.rollback(this.server, this.server)) { LOG.info(Successful rollback of failed split of + parent.getRegionNameAsString()); } else { this.server.abort(Abort; we got an error after point-of-no-return); } {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-4562) When split doing offlineParentInMeta occurs error,it'll cause data loss
[ https://issues.apache.org/jira/browse/HBASE-4562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13123881#comment-13123881 ] Ted Yu commented on HBASE-4562: --- Normally one patch should fix one problem. {code} +} catch(IOException e){ + throw e; {code} I saw the above code twice in the patch. Can you explain why it is needed ? Please also run test suite and tell us the results. When split doing offlineParentInMeta occurs error,it'll cause data loss --- Key: HBASE-4562 URL: https://issues.apache.org/jira/browse/HBASE-4562 Project: HBase Issue Type: Bug Components: regionserver Affects Versions: 0.90.4 Reporter: bluedavy Priority: Blocker Fix For: 0.90.5 Attachments: HBASE-45624563.patch Follow below steps to replay the problem: 1. change the SplitTransaction.java as below,just like mock the timeout error. {code:title=SplitTransaction.java|borderStyle=solid} if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} 2. update the regionserver code,restart; 3. create a table put some data to the table; 4. split the table; 5. kill the regionserver hosted the table; 6. wait some time after master ServerShutdownHandler.process execute,then scan the table,u'll find the data wrote before lost. We can fix the bug just use below code: {code:title=SplitTransaction.java|borderStyle=solid} this.journal.add(JournalEntry.PONR); if (!testing) { MetaEditor.offlineParentInMeta(server.getCatalogTracker(), this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo()); throw new IOException(some unexpected error in split); } {code} {code:title=CompactSplitThread.java|borderStyle=solid} if (st.rollback(this.server, this.server)) { LOG.info(Successful rollback of failed split of + parent.getRegionNameAsString()); } else { this.server.abort(Abort; we got an error after point-of-no-return); } {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira