[PATCH] 6822627: NPE at ReferenceTypeImpl.constantPool
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Wed Jul 20 09:34:19 UTC 2016
Egor,
If I understand correctly, you do not have an openJdk user ID and an
author status.
Please, see the link:
http://openjdk.java.net/census
So that, I'll commit your fix with the comment:
Contributed-by: egor.ushakov at jetbrains.com
and push it to the jdk9/hs.
I hope, somebody will correct me if it is not right.
Please, let me know if it works for you.
Thanks,
Serguei
On 7/20/16 02:10, Egor Ushakov wrote:
>
> Serguei, thanks for the review!
>
> Please sponsor the fix, I do not know how to proceed.
>
> Thanks!
>
> Egor
>
>
> On 20.07.2016 10:36, serguei.spitsyn at oracle.com wrote:
>> Hi Egor,
>>
>> Thank you for providing the test!
>>
>> A couple of nits to the test:
>>
>> 56 if (!Arrays.equals(cpbytes, cpbytes2)) {
>> 57 failure("Consequent constantPool results vary, first was : " + cpbytes + ", now: " + cpbytes2);
>> 58 };
>> Last semicolon is not need.
>> 74 if (!testFailed) {
>> 75 println("ConstantPoolInfoGC: passed");
>> 76 } else {
>> 77 throw new Exception("ConstantPoolInfoGC: failed");
>> 78 }
>> I'd suggest to rearrange the statement above to something like this:
>> 74 if (testFailed) {
>> 75 throw new Exception("ConstantPoolInfoGC: failed");
>> 76 }
>> 77 println("ConstantPoolInfoGC: passed");
>>
>> But I leave it up to you. No need to see another webrev. I
>> can sponsor your fix, if needed. Thanks, Serguei On 7/19/16 00:07,
>> Egor Ushakov wrote:
>>>
>>> Hi Serguei,
>>>
>>> here's a new webrev with a test included:
>>> http://cr.openjdk.java.net/~avu/JDK-6822627/webrev.01/
>>>
>>> Egor
>>>
>>> On 15.07.2016 12:22, serguei.spitsyn at oracle.com wrote:
>>>> Hi Egor, The fix looks good modulo the synchronization issue. Do
>>>> you have a jtreg unit test reproducing this failure mode? We have a
>>>> rule to provide a test coverage for the fixes. Thanks, Serguei On
>>>> 7/15/16 00:03, Egor Ushakov wrote:
>>>>>
>>>>> Thanks for your comments!
>>>>>
>>>>> I totally agree that the code there requires major refactoring. In
>>>>> the fix I tried not to make it worse and fix the NPE.
>>>>>
>>>>> On 14.07.2016 20:06, Martin Buchholz wrote:
>>>>>> The lack of volatile or synchronization, plus the use of multiple
>>>>>> mutable fields, suggests that a deeper fix is necessary to be
>>>>>> truly correct. For comparison, much of the similar code
>>>>>> implementing reflection has been changed to use volatile. But
>>>>>> that's a big job, for the serviceability team.
>>>>>> On Thu, Jul 14, 2016 at 2:33 AM, Egor Ushakov
>>>>>> <egor.ushakov at jetbrains.com <mailto:egor.ushakov at jetbrains.com>>
>>>>>> wrote:
>>>>>>
>>>>>> Hi, I'm a developer from IDEA debugger (we have company OCA).
>>>>>> We've increased usage of ReferenceTypeImpl.constantPool and
>>>>>> now facing JDK-6822627 more often. Please review and sponsor
>>>>>> the fix. The problem was that constantPoolBytesRef
>>>>>> SoftReference value coud be GCed and there was no check for
>>>>>> that. I've added it to the check inside getConstantPoolInfo
>>>>>> to request the bytes again in this case. BUGURL:
>>>>>> https://bugs.openjdk.java.net/browse/JDK-6822627 WEBREV:
>>>>>> http://cr.openjdk.java.net/~avu/JDK-6822627/webrev.00/
>>>>>> <http://cr.openjdk.java.net/%7Eavu/JDK-6822627/webrev.00/>
>>>>>> Thanks!-- Egor Ushakov Software Developer JetBrains
>>>>>> http://www.jetbrains.com The Drive to Develop
>>>>>>
>>>>> --
>>>>> Egor Ushakov
>>>>> Software Developer
>>>>> JetBrains
>>>>> http://www.jetbrains.com
>>>>> The Drive to Develop
>>> --
>>> Egor Ushakov
>>> Software Developer
>>> JetBrains
>>> http://www.jetbrains.com
>>> The Drive to Develop
> --
> Egor Ushakov
> Software Developer
> JetBrains
> http://www.jetbrains.com
> The Drive to Develop
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20160720/9458b7d3/attachment.html>
More information about the serviceability-dev
mailing list