You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Flavio Junqueira (JIRA)" <ji...@apache.org> on 2011/06/01 13:31:47 UTC

[jira] [Created] (BOOKKEEPER-22) Exception in LedgerCache causes addEntry request to fail

Exception in LedgerCache causes addEntry request to fail
--------------------------------------------------------

                 Key: BOOKKEEPER-22
                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-22
             Project: Bookkeeper
          Issue Type: Bug
            Reporter: Flavio Junqueira
            Priority: Critical


The following exception causes a client to stall:

{noformat}
WARN  - [NIOServerFactory:NIOServerFactory@123] - Exception in server socket loop: /0.0.0.0
java.util.NoSuchElementException
        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
        at java.util.HashMap$EntryIterator.next(HashMap.java:834)
        at java.util.HashMap$EntryIterator.next(HashMap.java:832)
        at org.apache.bookkeeper.bookie.LedgerCache.grabCleanPage(LedgerCache.java:429)
        at org.apache.bookkeeper.bookie.LedgerCache.putEntryOffset(LedgerCache.java:133)
        at org.apache.bookkeeper.bookie.LedgerDescriptor.addEntry(LedgerDescriptor.java:84)
        at org.apache.bookkeeper.bookie.Bookie.addEntry(Bookie.java:477)
        at org.apache.bookkeeper.proto.BookieServer.processPacket(BookieServer.java:108)
        at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.readRequest(NIOServerFactory.java:309)
        at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.doIO(NIOServerFactory.java:207)
        at org.apache.bookkeeper.proto.NIOServerFactory.run(NIOServerFactory.java:118)

{noformat}

The client  remains connected to the bookie, but never receives a response to the addEntry, causing the client pipeline to stall.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (BOOKKEEPER-22) Exception in LedgerCache causes addEntry request to fail

Posted by "Flavio Junqueira (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-22?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Flavio Junqueira updated BOOKKEEPER-22:
---------------------------------------

    Attachment: BOOKKEEPER-22.patch

Includes a test, which fails if we remove the fix in grabCleanPage. The test essentially stresses the ledger page cache mechanism by creating a large number of ledgers.

> Exception in LedgerCache causes addEntry request to fail
> --------------------------------------------------------
>
>                 Key: BOOKKEEPER-22
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-22
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Flavio Junqueira
>            Priority: Blocker
>         Attachments: BOOKKEEPER-22.patch, BOOKKEEPER-22.patch
>
>
> The following exception causes a client to stall:
> {noformat}
> WARN  - [NIOServerFactory:NIOServerFactory@123] - Exception in server socket loop: /0.0.0.0
> java.util.NoSuchElementException
>         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:834)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:832)
>         at org.apache.bookkeeper.bookie.LedgerCache.grabCleanPage(LedgerCache.java:429)
>         at org.apache.bookkeeper.bookie.LedgerCache.putEntryOffset(LedgerCache.java:133)
>         at org.apache.bookkeeper.bookie.LedgerDescriptor.addEntry(LedgerDescriptor.java:84)
>         at org.apache.bookkeeper.bookie.Bookie.addEntry(Bookie.java:477)
>         at org.apache.bookkeeper.proto.BookieServer.processPacket(BookieServer.java:108)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.readRequest(NIOServerFactory.java:309)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.doIO(NIOServerFactory.java:207)
>         at org.apache.bookkeeper.proto.NIOServerFactory.run(NIOServerFactory.java:118)
> {noformat}
> The client  remains connected to the bookie, but never receives a response to the addEntry, causing the client pipeline to stall.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (BOOKKEEPER-22) Exception in LedgerCache causes addEntry request to fail

Posted by "Benjamin Reed (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BOOKKEEPER-22?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13044897#comment-13044897 ] 

Benjamin Reed commented on BOOKKEEPER-22:
-----------------------------------------

+1 looks good!

> Exception in LedgerCache causes addEntry request to fail
> --------------------------------------------------------
>
>                 Key: BOOKKEEPER-22
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-22
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Flavio Junqueira
>            Assignee: Flavio Junqueira
>            Priority: Blocker
>         Attachments: BOOKKEEPER-22.patch, BOOKKEEPER-22.patch
>
>
> The following exception causes a client to stall:
> {noformat}
> WARN  - [NIOServerFactory:NIOServerFactory@123] - Exception in server socket loop: /0.0.0.0
> java.util.NoSuchElementException
>         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:834)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:832)
>         at org.apache.bookkeeper.bookie.LedgerCache.grabCleanPage(LedgerCache.java:429)
>         at org.apache.bookkeeper.bookie.LedgerCache.putEntryOffset(LedgerCache.java:133)
>         at org.apache.bookkeeper.bookie.LedgerDescriptor.addEntry(LedgerDescriptor.java:84)
>         at org.apache.bookkeeper.bookie.Bookie.addEntry(Bookie.java:477)
>         at org.apache.bookkeeper.proto.BookieServer.processPacket(BookieServer.java:108)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.readRequest(NIOServerFactory.java:309)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.doIO(NIOServerFactory.java:207)
>         at org.apache.bookkeeper.proto.NIOServerFactory.run(NIOServerFactory.java:118)
> {noformat}
> The client  remains connected to the bookie, but never receives a response to the addEntry, causing the client pipeline to stall.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (BOOKKEEPER-22) Exception in LedgerCache causes addEntry request to fail

Posted by "Ivan Kelly (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-22?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated BOOKKEEPER-22:
---------------------------------

    Fix Version/s: 3.4.0

> Exception in LedgerCache causes addEntry request to fail
> --------------------------------------------------------
>
>                 Key: BOOKKEEPER-22
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-22
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Flavio Junqueira
>            Assignee: Flavio Junqueira
>            Priority: Blocker
>             Fix For: 3.4.0
>
>         Attachments: BOOKKEEPER-22.patch, BOOKKEEPER-22.patch
>
>
> The following exception causes a client to stall:
> {noformat}
> WARN  - [NIOServerFactory:NIOServerFactory@123] - Exception in server socket loop: /0.0.0.0
> java.util.NoSuchElementException
>         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:834)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:832)
>         at org.apache.bookkeeper.bookie.LedgerCache.grabCleanPage(LedgerCache.java:429)
>         at org.apache.bookkeeper.bookie.LedgerCache.putEntryOffset(LedgerCache.java:133)
>         at org.apache.bookkeeper.bookie.LedgerDescriptor.addEntry(LedgerDescriptor.java:84)
>         at org.apache.bookkeeper.bookie.Bookie.addEntry(Bookie.java:477)
>         at org.apache.bookkeeper.proto.BookieServer.processPacket(BookieServer.java:108)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.readRequest(NIOServerFactory.java:309)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.doIO(NIOServerFactory.java:207)
>         at org.apache.bookkeeper.proto.NIOServerFactory.run(NIOServerFactory.java:118)
> {noformat}
> The client  remains connected to the bookie, but never receives a response to the addEntry, causing the client pipeline to stall.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (BOOKKEEPER-22) Exception in LedgerCache causes addEntry request to fail

Posted by "Flavio Junqueira (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-22?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Flavio Junqueira updated BOOKKEEPER-22:
---------------------------------------

    Attachment: BOOKKEEPER-22.patch

Uploading a preliminary patch that solves this problem, but does not include a test yet.

> Exception in LedgerCache causes addEntry request to fail
> --------------------------------------------------------
>
>                 Key: BOOKKEEPER-22
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-22
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Flavio Junqueira
>            Priority: Critical
>         Attachments: BOOKKEEPER-22.patch
>
>
> The following exception causes a client to stall:
> {noformat}
> WARN  - [NIOServerFactory:NIOServerFactory@123] - Exception in server socket loop: /0.0.0.0
> java.util.NoSuchElementException
>         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:834)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:832)
>         at org.apache.bookkeeper.bookie.LedgerCache.grabCleanPage(LedgerCache.java:429)
>         at org.apache.bookkeeper.bookie.LedgerCache.putEntryOffset(LedgerCache.java:133)
>         at org.apache.bookkeeper.bookie.LedgerDescriptor.addEntry(LedgerDescriptor.java:84)
>         at org.apache.bookkeeper.bookie.Bookie.addEntry(Bookie.java:477)
>         at org.apache.bookkeeper.proto.BookieServer.processPacket(BookieServer.java:108)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.readRequest(NIOServerFactory.java:309)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.doIO(NIOServerFactory.java:207)
>         at org.apache.bookkeeper.proto.NIOServerFactory.run(NIOServerFactory.java:118)
> {noformat}
> The client  remains connected to the bookie, but never receives a response to the addEntry, causing the client pipeline to stall.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (BOOKKEEPER-22) Exception in LedgerCache causes addEntry request to fail

Posted by "Flavio Junqueira (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BOOKKEEPER-22?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Flavio Junqueira updated BOOKKEEPER-22:
---------------------------------------

    Priority: Blocker  (was: Critical)

> Exception in LedgerCache causes addEntry request to fail
> --------------------------------------------------------
>
>                 Key: BOOKKEEPER-22
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-22
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Flavio Junqueira
>            Priority: Blocker
>         Attachments: BOOKKEEPER-22.patch
>
>
> The following exception causes a client to stall:
> {noformat}
> WARN  - [NIOServerFactory:NIOServerFactory@123] - Exception in server socket loop: /0.0.0.0
> java.util.NoSuchElementException
>         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:834)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:832)
>         at org.apache.bookkeeper.bookie.LedgerCache.grabCleanPage(LedgerCache.java:429)
>         at org.apache.bookkeeper.bookie.LedgerCache.putEntryOffset(LedgerCache.java:133)
>         at org.apache.bookkeeper.bookie.LedgerDescriptor.addEntry(LedgerDescriptor.java:84)
>         at org.apache.bookkeeper.bookie.Bookie.addEntry(Bookie.java:477)
>         at org.apache.bookkeeper.proto.BookieServer.processPacket(BookieServer.java:108)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.readRequest(NIOServerFactory.java:309)
>         at org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.doIO(NIOServerFactory.java:207)
>         at org.apache.bookkeeper.proto.NIOServerFactory.run(NIOServerFactory.java:118)
> {noformat}
> The client  remains connected to the bookie, but never receives a response to the addEntry, causing the client pipeline to stall.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira