dlg99 opened a new issue #1400: createLedger() may fail if called immediatly 
after bookie startup
URL: https://github.com/apache/bookkeeper/issues/1400
 
 
   **BUG REPORT**
   
   
[testLedgerCreateAfterBookieStartup.txt](https://github.com/apache/bookkeeper/files/1992491/testLedgerCreateAfterBookieStartup.txt)
   
   Caught this as a flapper in a separate (new) test suite.
   createLedger() may fail with 
"org.apache.bookkeeper.client.BKException$BKNotEnoughBookiesException: Not 
enough non-faulty bookies available" if executed immediately after bookie 
restart.
   
   It does not seem to be a production risk as the test uses single bookie and 
simple sleep(100ms) after bookie startup takes care of this problem.
   OTOH I tried this test on internal (older) branch and the test passes so 
clearly there is a regression somewhere. 
   
   Narrowed down it reproduces like this (also patch attached):
   
   ```java
       @Test
       public void testLedgerCreateAfterBookieStartup() throws Exception {
           // only one bookie started initially
   
           for (int n = 0; n < 30; n++) {
               int bkId = 0;
               BookieServer bks = bs.get(bkId);
               bks.shutdown();
               bks = new BookieServer(bsConfs.get(bkId));
               bks.start();
               bs.set(bkId, bks);
   
               // all passes with this sleep:
               //Thread.sleep(100);
   
               // Create ledgers
               LedgerHandle[] lhs = new LedgerHandle[10];
               for (int i = 0; i < 10; i++) {
                   LOG.info("Iteration {}, creating ledger", n);
                   lhs[i] = bkc.createLedger(1, 1, BookKeeper.DigestType.CRC32, 
"z".getBytes());
                   LOG.info("Iteration {}, created ledger ID: {}", n, 
lhs[i].getId());
                   lhs[i].addEntry("zzz".getBytes());
               }
           }
       }
   ```
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to