[
https://issues.apache.org/jira/browse/BOOKKEEPER-999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15932780#comment-15932780
]
ASF GitHub Bot commented on BOOKKEEPER-999:
-------------------------------------------
Github user revans2 commented on the issue:
https://github.com/apache/bookkeeper/pull/105
Sorry I took so long to respond. This kind of fell off my radar for a bit.
@eolivelli and @jiazhai
I am fine with deprecating that constructor but it is not going to be a
simple change. I don't like deprecating an API and continuing to use it
internally. This constructor is used in a lot of places, 28 by by my count,
and some of them are not going to be simple to replace.
There is no public replacement API, except
```
public BookKeeper(ClientConfiguration conf, ZooKeeper zk,
ClientSocketChannelFactory channelFactory)
```
which is not used at all, and looks like it too was intended to be an
internal API that should be deprecated. So if I do deprecate it I think I
would rather do it on a separate JIRA/pull request.
> BookKeeper client can leak threads
> ----------------------------------
>
> Key: BOOKKEEPER-999
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-999
> Project: Bookkeeper
> Issue Type: Bug
> Components: bookkeeper-client
> Affects Versions: 4.4.0
> Reporter: Robert Joseph Evans
> Assignee: Robert Joseph Evans
>
> The client constructor
> {{BookKeeper(ClientConfiguration conf, ZooKeeper zk)}}
> in 4.4 and above will create a new NioClientSocketChannelFactory but does not
> set the ownership of that factory to true so threads are leaked.
> This showed up as a failure in BookieRecoveryTest on MacOS where it has a
> hard coded limit of about 2000 threads in a single process, and this test was
> going beyond that.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)