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

Ivan Kelly commented on BOOKKEEPER-654:
---------------------------------------

{quote}I could see PerChanelBookieClient is holding the outstanding requests 
and I'm just thinking to re-use to do cancelling?{quote}
These will not catch the case of a asyncClose request or a createLedger. Add 
completions and read completions are done for requests to an individual bookie. 
They are conceptually quite far from the actual client callbacks. Completion of 
these callbacks invoke code inside the bookkeeper client. Code that may have 
access to the OrderedSafeExecutor. So special handling needs to be put there to 
avoid this, so that it doesn't try to add to the executor to cancel the 
callback.

{quote}
It would be good if we could avoid the increase of callback chains
{quote}
Of course, it would be better if you can do this without the extra objects. I'm 
not sure it can be done cleanly though. Really we should never be passing the 
client callback past the client class (BookKeeper/LedgerHandle) at all. We 
should have a callback thread in the client, that all client callbacks run in, 
and the client internals should submit to this thread when the calls are 
finished. This is an even bigger change though, and there's no chance we're 
doing that before 4.2.2.
                
> Bookkeeper client operations are allowed even after its closure, bk#close()
> ---------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-654
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-654
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-client
>    Affects Versions: 4.2.0
>            Reporter: Rakesh R
>            Assignee: Rakesh R
>             Fix For: 4.2.2, 4.3.0
>
>         Attachments: 
> 0001-BOOKKEEPER-654-Bookkeeper-client-operations-are-allo.patch, 
> 0001-BOOKKEEPER-654-testcase-to-understand-more.patch, 
> 0002-BOOKKEEPER-654.patch, 0003-BOOKKEEPER-654.patch, 
> 0004-BOOKKEEPER-654.patch, 0005-BOOKKEEPER-654.patch
>
>
> User can perform below operations with the closed bookkeeper client, which 
> was instantiated with external zkclient.
> - open a closed ledger 
> - create a new ledger 
> Also, ledgerhandle operations like fencing/add/write are infinitely hanging.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to