[PATCH] 6822627: NPE at ReferenceTypeImpl.constantPool
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Wed Jul 20 09:56:10 UTC 2016
On 7/20/16 02:53, Egor Ushakov wrote:
>
> Yes, all correct, thanks!
>
Ok, thanks.
Serguei
>
> On 20.07.2016 12:34, serguei.spitsyn at oracle.com wrote:
>> 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
> --
> 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/f7de0344/attachment.html>
More information about the serviceability-dev
mailing list