[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290047#comment-13290047
 ] 

Ivan Kelly commented on BOOKKEEPER-287:
---------------------------------------

{quote}
1. In grabCleanPage, there is only a small block that is not synchronized under 
"this". I think that if we synchronize the method, we would be able to get rid 
of that outerLoop jump and I'm thinking that it shouldn't make much of a 
difference with respect to concurrency because most of the code is synchronized 
under "this" anyway. How do you feel about this?
{quote}
A small section in code, but a long running section. It calls flushLedgers() 
which does I/O to disk. synchronizing on this would prevent pages from other 
ledgers being accessed.
                
> NoSuchElementException in LedgerCacheImpl
> -----------------------------------------
>
>                 Key: BOOKKEEPER-287
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-287
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Flavio Junqueira
>            Assignee: Sijie Guo
>            Priority: Blocker
>             Fix For: 4.1.0, 4.2.0
>
>         Attachments: BK-287-test-case.diff, BOOKKEEPER-287.diff
>
>
> 2012-06-05 16:24:29,596 - WARN  [NIOServerFactory-3181:NIOServerFactory@128] 
> - Exception in server socket loop: /0.0.0.0
> java.util.NoSuchElementException
>         at java.util.LinkedList.getFirst(LinkedList.java:109)
>         at 
> org.apache.bookkeeper.bookie.LedgerCacheImpl.grabCleanPage(LedgerCacheImpl.java:478)
>         at 
> org.apache.bookkeeper.bookie.LedgerCacheImpl.grabLedgerEntryPage(LedgerCacheImpl.java:169)
>         at 
> org.apache.bookkeeper.bookie.LedgerCacheImpl.putEntryOffset(LedgerCacheImpl.java:199)
>         at 
> org.apache.bookkeeper.bookie.InterleavedLedgerStorage.addEntry(InterleavedLedgerStorage.java:109)
>         at 
> org.apache.bookkeeper.bookie.LedgerDescriptorImpl.addEntry(LedgerDescriptorImpl.java:81)
>         at 
> org.apache.bookkeeper.bookie.Bookie.addEntryInternal(Bookie.java:656)
>         at org.apache.bookkeeper.bookie.Bookie.addEntry(Bookie.java:691)
>         at 
> org.apache.bookkeeper.proto.BookieServer.processPacket(BookieServer.java:368)
>         at 
> org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.readRequest(NIOServerFactory.java:310)
>         at 
> org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.doIO(NIOServerFactory.java:208)
>         at 
> org.apache.bookkeeper.proto.NIOServerFactory.run(NIOServerFactory.java:123)

--
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

        

Reply via email to