about JDK-8186628

Peter Levart peter.levart at gmail.com
Sat Apr 21 09:51:50 UTC 2018

Hi Peter,

On 04/21/18 10:42, Peter wrote:
> I wrote caching software that decorated any Java collection with soft, 
> weak, timed or strong references, it utilised a background thread to 
> clean references from underlying collections.
> It was non blocking if the underlying collection was, although it 
> hasn't been updated to Java 8.
> Regarding patch comments, I don't mean to sound rude, but I don't 
> think there's such a thing as a harmless data race.
> Regards,
> Peter.

Perhaps harmless is not the right expression, but in this case, I think 
the data race(s) can do no "harm" to the correct / intended execution of 
program logic. That's my current belief, but you can prove me wrong if 
you want ;-) The data race is between CacheEntry.[getKey, getValue] and 
CacheIntry.invalidate that resets both key & value to null. When a 
CacheEntry is published, it is published without data race, with key & 
value being non-null. CacheEntry is private class, used only in 
MemoryCache, so it is never exposed to user code. User code only sees 
the result(s) of reading CacheEntry.[getKey, getValue] (returned from 
Cache.get(key) and from Cache.getCachedEntries()). The former allows 
null returns that logically mean an absence of value while the later 
constructs a map of live entries that are or were present in the cache 
at the time of invocation, filtering out null key(s)/value(s). The 
guarantees of those two methods are enough for correct functioning of 
user code (the SSL implementation), and this is what I called "harmless" 
data race because technically it is a data race.

Regards, Peter

> On 21/04/2018 3:45 AM, Ivan Gerasimov wrote:
>> I'll go ahead with a review of the enhancement request JDK-8202086 
>> shortly on this list.
>> And we'll still need to decide what has to be done in the earlier 
>> releases of JDK.
>> With kind regards,
>> Ivan
>> <https://bugs.openjdk.java.net/browse/JDK-8202086>
>> On 4/20/18 10:06 AM, nezih yigitbasi wrote:
>>> Ivan, thanks for the information. Any ideas about when one of these 
>>> solutions can be released?
>>> Nezih
>>> 2018-04-20 9:22 GMT-07:00 Ivan Gerasimov <ivan.gerasimov at oracle.com 
>>> <mailto:ivan.gerasimov at oracle.com>>:
>>>     Hello Nezih!
>>>     This issue is still being discussed off-list.
>>>     There have been two approaches proposed so far:  1) improve the
>>>     session cache and 2) provide an option to turn the cache off
>>>     completely.
>>>     The former one is good by itself, so I filed an enhancement
>>>     request [1] with a link to proposal made by Peter Levart [2].
>>>     However, as this is an enhancement, it seems unlikely it's going
>>>     to be backported to earlier releases of JDK.
>>>     With kind regards,
>>>     Ivan
>>>     [1] https://bugs.openjdk.java.net/browse/JDK-8202086
>>>     <https://bugs.openjdk.java.net/browse/JDK-8202086>
>>>     [2]
>>> http://mail.openjdk.java.net/pipermail/security-dev/2017-November/016512.html
>>> <http://mail.openjdk.java.net/pipermail/security-dev/2017-November/016512.html>
>>>     On 4/18/18 9:32 PM, nezih yigitbasi wrote:
>>>> Hi,
>>>>     We are hitting the scalability problem of the SSL session cache
>>>>     in production that JDK-8186628 is addressing.
>>>>     I see that JDK-8186628 has not been updated since Nov'17, so I
>>>>     just wanted to get information about what the current plans are
>>>>     regarding that issue.
>>>>     Thanks,
>>>>     Nezih
>>>     --     With kind regards,
>>>     Ivan Gerasimov
>> -- 
>> With kind regards,
>> Ivan Gerasimov

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/security-dev/attachments/20180421/b61a0c76/attachment.html>

More information about the security-dev mailing list