curator-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Blum <dragonsi...@gmail.com>
Subject Re: PathChildrenCache creates the node if not present
Date Thu, 21 Jul 2016 22:13:12 GMT
I don't know if "bug" is the right word, but "super surprising design
decision" for sure, which is likely to have caused bugs elsewhere.
Basically, someone would need to go through and audit all the callers of
the 1-arg constructor and determine the intent.

On Thu, Jul 21, 2016 at 5:39 PM, Jordan Zimmerman <
jordan@jordanzimmerman.com> wrote:

> OK with me. Just make sure that setExecutor(ExecutorService
> executorService) works correctly. But, I’m concerned there’s a bug
> in CloseableExecutorService. I’d like to see it fixed if there is one.
>
> -Jordan
>
> On Jul 21, 2016, at 4:38 PM, Scott Blum <dragonsinth@gmail.com> wrote:
>
> In that case, I have no idea why TreeCache would use
> CloseableExecutorService at all, it's a pointless (and in fact,
> destructive) wrapper at this point.  How about I just eliminate it?
>
> On Thu, Jul 21, 2016 at 5:31 PM, Jordan Zimmerman <
> jordan@jordanzimmerman.com> wrote:
>
>> I forget now who wrote CloseableExecutorService. As I recall, the desire
>> was to be able to have an object that looks like an ExecutorService but
>> could handle an externally managed ExecutorService or an internally managed
>> one. This way, the code could always treat it as internally managed - being
>> able to call shutdownNow, etc. - but if it was provided by a client it
>> would only close threads actually used by the instnace.
>>
>> -Jordan
>>
>>
>> On Jul 21, 2016, at 4:28 PM, Scott Blum <dragonsinth@gmail.com> wrote:
>>
>> Looks like a real bug... for some reason, the single-arg constructor
>> for CloseableExecutorService defaults to NOT actually shutting down the
>> underlying executor.  This makes absolutely no sense to me, but it's the
>> source of the bug... most of the code paths to construct a TreeCache use
>> the 1-arg constructor.  Only one of them uses the 2-arg constructor with
>> the right setting.
>>
>> I have to admit, the design of CloseableExecutorService is kind of
>> WTF-inducing for me...
>>
>> On Thu, Jul 21, 2016 at 5:18 PM, Jordan Zimmerman <
>> jordan@jordanzimmerman.com> wrote:
>>
>>> Please open an issue in Jira if this is a real bug.
>>>
>>> > On Jul 21, 2016, at 4:16 PM, Scott Blum <dragonsinth@gmail.com> wrote:
>>> >
>>> > Okay, now I can repro it; the difference was you adding the loop to
>>> wait for the thread to start up.
>>>
>>>
>>
>>
>
>

Mime
View raw message