[
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