Included in webrev.03
http://cr.openjdk.java.net/~lmesnik/8244537/webrev.03 
<http://cr.openjdk.java.net/~lmesnik/8244537/webrev.03>

Leonid

> On Jul 28, 2020, at 6:44 PM, serguei.spit...@oracle.com wrote:
> 
> http://cr.openjdk.java.net/~lmesnik/8244537/webrev.01/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequest/setEnabled/setenabled002.java.frames.html
>  
> <http://cr.openjdk.java.net/~lmesnik/8244537/webrev.01/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequest/setEnabled/setenabled002.java.frames.html>
>  371             if (eventRequest1 instanceof StepRequest) {
>  372                 try {
>  373                     log2("......eventRequest1.setEnabled(true);  
> IllegalThreadStateException is expected");
>  374                     eventRequest1.setEnabled(true);
>  375                     testExitCode = FAILED;
>  376                     log3("ERROR:  NO  IllegalThreadStateException for 
> StepRequest");
>  377                 } catch ( IllegalThreadStateException e ) {
>  378                     log2("       IllegalThreadStateException");
>  379                 }
>  380                 try {
>  381                     log2("......eventRequest1.setEnabled(false);  
> IllegalThreadStateException is not expected");
>  382                     eventRequest1.setEnabled(false);
>  383                     log2("       no  IllegalThreadStateException for 
> StepRequest");
>  384                 } catch ( IllegalThreadStateException e ) {
>  385                     testExitCode = FAILED;
>  386                     log3("ERROR:    IllegalThreadStateException");
>  387                 }
>  388             }
> Above is one more case where suspend/resume is needed, I guess.
> 
> Thanks,
> Serguei
> 
> 
> On 7/28/20 17:45, serguei.spit...@oracle.com 
> <mailto:serguei.spit...@oracle.com> wrote:
>> http://cr.openjdk.java.net/~lmesnik/8244537/webrev.01/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequest/setEnabled/setenabled003.java.frames.html
>>  
>> <http://cr.openjdk.java.net/~lmesnik/8244537/webrev.01/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequest/setEnabled/setenabled003.java.frames.html>
>>  288               case 0:
>>  289                      thread1 = (ThreadReference)
>>  290                                
>> debuggeeClass.getValue(debuggeeClass.fieldByName(threadName1));
>>  291 
>>  292                      log2("......setting up StepRequest");
>>  293                      eventRequest1 = eventRManager.createStepRequest
>>  294                                      (thread1, StepRequest.STEP_MIN, 
>> StepRequest.STEP_INTO);
>>  295 
>>  296                      vm.suspend();
>>  ...
>>  360               default:
>>  361                       throw new JDITestRuntimeException("** default 
>> case 2 **");
>>  362             }
>>  363             vm.resume();
>> 
>> Sorry, the fix is not going to work correctly.
>> The first vm.suspend() has to be before the switch statement to work for all 
>> 3 cases.
>> 
>> Thanks,
>> Serguei
>> 
>> 
>> On 7/28/20 16:49, Leonid Mesnik wrote:
>>> I've update to suspend/resume in all cases.
>>> 
>>> new webrev: http://cr.openjdk.java.net/~lmesnik/8244537/webrev.01/ 
>>> <http://cr.openjdk.java.net/~lmesnik/8244537/webrev.01/>
>>> 
>>> Leonid
>>> 
>>>> On Jul 28, 2020, at 2:06 PM, serguei.spit...@oracle.com 
>>>> <mailto:serguei.spit...@oracle.com> wrote:
>>>> 
>>>> I prefer to suspend/resume in all cases, so we avoid all these unexpected 
>>>> failures.
>>>> 
>>>> Thanks,
>>>> Serguei
>>>> 
>>>> 
>>>> On 7/28/20 13:59, Leonid Mesnik wrote:
>>>>> It should be failure anyway if we managed to enable events, so we don't 
>>>>> expect to really enable anything in these cases. 
>>>>> However I agree that adding suspend/resume shouldn't make it worse, just 
>>>>> possible cleaner log (in very rare cases also). If you feel it is need I 
>>>>> will just add suspension for all cases.
>>>>> 
>>>>> Leonid
>>>>> 
>>>>>> On Jul 28, 2020, at 1:54 PM, serguei.spit...@oracle.com 
>>>>>> <mailto:serguei.spit...@oracle.com> wrote:
>>>>>> 
>>>>>> Does it mean, you did not fix cases 0 and 2 because the related failures 
>>>>>> have never been observed?
>>>>>> 
>>>>>> Thanks,
>>>>>> Serguei
>>>>>> 
>>>>>> 
>>>>>> On 7/28/20 13:51, Leonid Mesnik wrote:
>>>>>>> Test should fail in cases 0 and 2 with IllegalThreadStateException if 
>>>>>>> we can enable events. Such failures should be easily identified by 
>>>>>>> reading logs.
>>>>>>> 
>>>>>>> Leonid
>>>>>>> 
>>>>>>> 
>>>>>>>> On Jul 27, 2020, at 10:28 PM, serguei.spit...@oracle.com 
>>>>>>>> <mailto:serguei.spit...@oracle.com> wrote:
>>>>>>>> 
>>>>>>>> Hi Leonid,
>>>>>>>> 
>>>>>>>> The fix looks good in general.
>>>>>>>> You missed to explain that the suspend/resume are added to avoid 
>>>>>>>> actual generation of event that cause this issue.
>>>>>>>> The reason is that these events are not actually required. 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> http://cr.openjdk.java.net/~lmesnik/8244537/webrev.00/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequest/setEnabled/setenabled003.java.frames.html
>>>>>>>>  
>>>>>>>> <http://cr.openjdk.java.net/~lmesnik/8244537/webrev.00/test/hotspot/jtreg/vmTestbase/nsk/jdi/EventRequest/setEnabled/setenabled003.java.frames.html>
>>>>>>>>  316               case 1:
>>>>>>>>  317                      vm.suspend();
>>>>>>>>  ...
>>>>>>>>  336                      vm.resume();
>>>>>>>> 
>>>>>>>> Q: Why is only in case 1 suspend/resume used?
>>>>>>>>    What about cases 0 and 2?
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> Serguei
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On 7/27/20 18:08, Leonid Mesnik wrote:
>>>>>>>>> Hi
>>>>>>>>> 
>>>>>>>>> Could you please review following fix which suspends debugger VM 
>>>>>>>>> while enabling/disabling events. 
>>>>>>>>> 
>>>>>>>>> All changed tests fail intermittently getting unexpected events 
>>>>>>>>> instead of breakpoint used for communication between 
>>>>>>>>> debugger/debuggee VM. The tests request different events and verify 
>>>>>>>>> request's properties but don't process/verify events themselves. Test 
>>>>>>>>> doesn't aware if events are generated or not. The vm suspension 
>>>>>>>>> doesn't affect JDWP native agent and it still should get and verify 
>>>>>>>>> JDWP commands.
>>>>>>>>> 
>>>>>>>>> webrev: http://cr.openjdk.java.net/~lmesnik/8244537/webrev.00/ 
>>>>>>>>> <http://cr.openjdk.java.net/~lmesnik/8244537/webrev.00/>
>>>>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8244537 
>>>>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8244537>
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Leonid
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to