Hi Stuart,

On St 8. květen 2013, 01:50:22 CEST, Stuart Marks wrote:
> Hi Jaroslav,
>
> Great to see this shell test get rewritten!
>
> Looks like you're avoiding multiple JVM processes as well, by loading
> the different versions of the classes into different classloaders. It
> looks like a bit of trouble, but probably less than the amount of
> trouble caused by the shell script.
>
> I have a couple minor points.
>
> The timeout value of one second seems quite low. Under normal
> operation, spawning a couple threads and should proceed very quickly.
> However, our testing environment is quite hostile, and things that
> seem like they ought to proceed quickly often take considerably longer
> than one might think. Since you're counting notifications, and in
> normal operation they all come in, we don't wait for the actual
> timeout unless there's a failure. So it might make sense to raise the
> timeout to 10 or perhaps 30 seconds.

I've adjusted the timeout for 30 seconds. Hopefully, it will be enough.

>
> On the other hand, I have a question about whether counting the number
> of notifications is correct. Would it be possible for there to be a
> bug where an extra notification is sent? If so, this might mean that
> the test would exit prematurely, indicating success?

It would be a severe error in the notification system implementation.
However, I've added a check for duplicated notifications (each
notification carries its sequence number) which makes the test fail in
case of duplication. But I don't expect it to happen.

The updated webrev is at
http://cr.openjdk.java.net/~jbachorik/8005472/webrev.09


-JB-

>
> s'marks
>
> On 5/6/13 2:04 AM, Jaroslav Bachorik wrote:
>> On Pá 3. květen 2013, 16:16:53 CEST, Daniel Fuchs wrote:
>>> Hi Jaroslav,
>>>
>>> In Client.java - you could consider replacing the AtomicLong
>>> with a CountDownLatch.
>>>
>>> This would allow you to remove the various Thread.sleep() in the
>>> code (in particular the one at the end).
>>>
>>> You could use CountDownLatch.await(long timeout, TimeUnit unit) to
>>> avoid waiting for ever in case of bugs, and the advantage is that
>>> the test would be able to exit as soon as the count down latch
>>> reaches 0, without having to wait for an arbitrary timeout.
>>
>> Great, thanks for the pointer! I've changed the test to use the
>> CountDownLatch.
>>
>> http://cr.openjdk.java.net/~jbachorik/8005472/webrev.08/
>>
>> -JB-
>>
>>>
>>> Very nice to see a shell test go away :-)
>>>
>>> -- daniel
>>>
>>>
>>> On 5/3/13 3:41 PM, Jaroslav Bachorik wrote:
>>>> Please re-review the updated webrev
>>>> http://cr.openjdk.java.net/~jbachorik/8005472/webrev.06
>>>>
>>>> I've replaced the shell script with the plain java test. The javac API
>>>> is used to compile the the auxiliary classes as was recommended. This
>>>> allowed to simplify the test.
>>>>
>>>> The test does not check for a certain string in the standard output
>>>> anymore - it turns out that it is possible to count the number of all
>>>> the received JMX notifications (even though some notifications can be
>>>> lost, we receive a special notification with the number of the lost
>>>> regular notifications). It is then possible to match the actual number
>>>> of processed notifications (received + lost) against the expected
>>>> number
>>>> - different numbers mean that the notification processing thread had
>>>> been interrupted unexpectedly.
>>>>
>>>> Thanks,
>>>>
>>>> -JB-
>>>>
>>>> On 8.2.2013 17:37, Chris Hegarty wrote:
>>>>>
>>>>>> Jon Gibbons suggested invoking the compiler API directly from java
>>>>>> instead of writing a shell script. Doing this seems fairly simple,
>>>>>> and I
>>>>>> think it would be advantageous to keep things entirely in Java. I
>>>>>> may
>>>>>> attempt to rewrite the defaultSVID test using the compiler API.
>>>>>
>>>>> Here's a test that does just that.
>>>>>
>>>>> http://hg.openjdk.java.net/jdk8/tl/jdk/file/2de8c6c2d652/test/sun/misc/JarIndex/metaInfFilenames/Basic.java
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> -Chris.
>>>>
>>>
>>
>>

Reply via email to