You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@netbeans.apache.org by Łukasz Bownik <lu...@gmail.com> on 2022/05/12 22:04:16 UTC
can wait 1 second?
Hi.
I stated to clean and extend test cases for org.openide.util.Task class.
In the test case I found the canWait1s() method
https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
which is used in
https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L74
to skip the test with the message
"Skipping
testWaitWithTimeOutReturnsAfterTimeOutWhenTheTaskIsNotComputedAtAll, as the
computer is not able to wait 1s!"
does anybody know what is the history of this? does it concern currently
supported platforms?
--
Łukasz Bownik
Re: can wait 1 second?
Posted by Michael Bien <mb...@gmail.com>.
https://github.com/apache/netbeans#full-history
On 13.05.22 01:28, Łukasz Bownik wrote:
> Where is the mercurial repo?
>
> On Thu, May 12, 2022, 4:26 PM Michael Bien <mb...@gmail.com> wrote:
>
> but maybe that is exactly the reason why this was added, to
> automatically skip timing related tests under high load situations
> as attempt to make tests appear more reliable.
>
> who knows. I wish there would be a comment so that less archeology
> is required. there might be a commit in the mercurial repo which
> explains more.
>
> -mbien
>
> On 13.05.22 01:14, Michael Bien wrote:
>> now -> no
>>
>> On 13.05.22 01:12, Michael Bien wrote:
>>> i don't think the assumption in that method is correct btw:
>>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
>>>
>>> sleep does not make any guarantees that it wakes up right after
>>> the timeout. It only attempts to sleep for at least the timeout
>>> - assuming now RT kernels are in use.
>>>
>>> if (delta < 900 || delta > 1100) {
>>>
>>> this is going to fail for various load related reasons, even
>>> without having CPU bugs. delta < 900 makes somewhat sense to
>>> test for desync issue I suppose.
>>>
>>> -mbien
>>>
>>>
>>> On 13.05.22 01:06, Łukasz Bownik wrote:
>>>> I will create a separate test calling only this method.
>>>>
>>>> On Thu, May 12, 2022, 3:21 PM Michael Bien <mb...@gmail.com>
>>>> wrote:
>>>>
>>>> Hi Lukasz,
>>>>
>>>> I don't know why its there but if i can make a guess:
>>>> early multi core CPUs had often timing desyncs between
>>>> cores (likely
>>>> between sockets too). This was somewhat of a problem for
>>>> realtime
>>>> applications like game engines since the time could appear
>>>> to run backwards.
>>>>
>>>> once travis is working again, you could change the skipping
>>>> logic to
>>>> fail() and see if it fails somewhere.
>>>>
>>>> if it doesn't for a while, we could remove the code with more
>>>> confidence, unless someone thinks we should keep it.
>>>>
>>>> best regards,
>>>> michael
>>>>
>>>> On 13.05.22 00:04, Łukasz Bownik wrote:
>>>> > Hi.
>>>> >
>>>> > I stated to clean and extend test cases for
>>>> org.openide.util.Task class.
>>>> > In the test case I found the canWait1s() method
>>>> >
>>>> >
>>>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
>>>> >
>>>> > which is used in
>>>> >
>>>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L74
>>>> >
>>>> > to skip the test with the message
>>>> > "Skipping
>>>> >
>>>> testWaitWithTimeOutReturnsAfterTimeOutWhenTheTaskIsNotComputedAtAll,
>>>> as the
>>>> > computer is not able to wait 1s!"
>>>> >
>>>> > does anybody know what is the history of this? does it
>>>> concern currently
>>>> > supported platforms?
>>>> >
>>>>
>>>
>>
>
Re: can wait 1 second?
Posted by Łukasz Bownik <lu...@gmail.com>.
Where is the mercurial repo?
On Thu, May 12, 2022, 4:26 PM Michael Bien <mb...@gmail.com> wrote:
> but maybe that is exactly the reason why this was added, to automatically
> skip timing related tests under high load situations as attempt to make
> tests appear more reliable.
>
> who knows. I wish there would be a comment so that less archeology is
> required. there might be a commit in the mercurial repo which explains more.
>
> -mbien
>
> On 13.05.22 01:14, Michael Bien wrote:
>
> now -> no
>
> On 13.05.22 01:12, Michael Bien wrote:
>
> i don't think the assumption in that method is correct btw:
>
> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
>
> sleep does not make any guarantees that it wakes up right after the
> timeout. It only attempts to sleep for at least the timeout - assuming now
> RT kernels are in use.
>
> if (delta < 900 || delta > 1100) {
>
> this is going to fail for various load related reasons, even without
> having CPU bugs. delta < 900 makes somewhat sense to test for desync
> issue I suppose.
>
> -mbien
>
>
> On 13.05.22 01:06, Łukasz Bownik wrote:
>
> I will create a separate test calling only this method.
>
> On Thu, May 12, 2022, 3:21 PM Michael Bien <mb...@gmail.com> wrote:
>
>> Hi Lukasz,
>>
>> I don't know why its there but if i can make a guess:
>> early multi core CPUs had often timing desyncs between cores (likely
>> between sockets too). This was somewhat of a problem for realtime
>> applications like game engines since the time could appear to run
>> backwards.
>>
>> once travis is working again, you could change the skipping logic to
>> fail() and see if it fails somewhere.
>>
>> if it doesn't for a while, we could remove the code with more
>> confidence, unless someone thinks we should keep it.
>>
>> best regards,
>> michael
>>
>> On 13.05.22 00:04, Łukasz Bownik wrote:
>> > Hi.
>> >
>> > I stated to clean and extend test cases for org.openide.util.Task class.
>> > In the test case I found the canWait1s() method
>> >
>> >
>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
>> >
>> > which is used in
>> >
>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L74
>> >
>> > to skip the test with the message
>> > "Skipping
>> > testWaitWithTimeOutReturnsAfterTimeOutWhenTheTaskIsNotComputedAtAll, as
>> the
>> > computer is not able to wait 1s!"
>> >
>> > does anybody know what is the history of this? does it concern currently
>> > supported platforms?
>> >
>>
>>
>
>
>
Re: can wait 1 second?
Posted by Michael Bien <mb...@gmail.com>.
but maybe that is exactly the reason why this was added, to
automatically skip timing related tests under high load situations as
attempt to make tests appear more reliable.
who knows. I wish there would be a comment so that less archeology is
required. there might be a commit in the mercurial repo which explains more.
-mbien
On 13.05.22 01:14, Michael Bien wrote:
> now -> no
>
> On 13.05.22 01:12, Michael Bien wrote:
>> i don't think the assumption in that method is correct btw:
>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
>>
>> sleep does not make any guarantees that it wakes up right after the
>> timeout. It only attempts to sleep for at least the timeout -
>> assuming now RT kernels are in use.
>>
>> if (delta < 900 || delta > 1100) {
>>
>> this is going to fail for various load related reasons, even without
>> having CPU bugs. delta < 900 makes somewhat sense to test for desync
>> issue I suppose.
>>
>> -mbien
>>
>>
>> On 13.05.22 01:06, Łukasz Bownik wrote:
>>> I will create a separate test calling only this method.
>>>
>>> On Thu, May 12, 2022, 3:21 PM Michael Bien <mb...@gmail.com> wrote:
>>>
>>> Hi Lukasz,
>>>
>>> I don't know why its there but if i can make a guess:
>>> early multi core CPUs had often timing desyncs between cores
>>> (likely
>>> between sockets too). This was somewhat of a problem for realtime
>>> applications like game engines since the time could appear to
>>> run backwards.
>>>
>>> once travis is working again, you could change the skipping
>>> logic to
>>> fail() and see if it fails somewhere.
>>>
>>> if it doesn't for a while, we could remove the code with more
>>> confidence, unless someone thinks we should keep it.
>>>
>>> best regards,
>>> michael
>>>
>>> On 13.05.22 00:04, Łukasz Bownik wrote:
>>> > Hi.
>>> >
>>> > I stated to clean and extend test cases for
>>> org.openide.util.Task class.
>>> > In the test case I found the canWait1s() method
>>> >
>>> >
>>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
>>> >
>>> > which is used in
>>> >
>>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L74
>>> >
>>> > to skip the test with the message
>>> > "Skipping
>>> >
>>> testWaitWithTimeOutReturnsAfterTimeOutWhenTheTaskIsNotComputedAtAll,
>>> as the
>>> > computer is not able to wait 1s!"
>>> >
>>> > does anybody know what is the history of this? does it concern
>>> currently
>>> > supported platforms?
>>> >
>>>
>>
>
Re: can wait 1 second?
Posted by Michael Bien <mb...@gmail.com>.
now -> no
On 13.05.22 01:12, Michael Bien wrote:
> i don't think the assumption in that method is correct btw:
> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
>
> sleep does not make any guarantees that it wakes up right after the
> timeout. It only attempts to sleep for at least the timeout - assuming
> now RT kernels are in use.
>
> if (delta < 900 || delta > 1100) {
>
> this is going to fail for various load related reasons, even without
> having CPU bugs. delta < 900 makes somewhat sense to test for desync
> issue I suppose.
>
> -mbien
>
>
> On 13.05.22 01:06, Łukasz Bownik wrote:
>> I will create a separate test calling only this method.
>>
>> On Thu, May 12, 2022, 3:21 PM Michael Bien <mb...@gmail.com> wrote:
>>
>> Hi Lukasz,
>>
>> I don't know why its there but if i can make a guess:
>> early multi core CPUs had often timing desyncs between cores (likely
>> between sockets too). This was somewhat of a problem for realtime
>> applications like game engines since the time could appear to run
>> backwards.
>>
>> once travis is working again, you could change the skipping logic to
>> fail() and see if it fails somewhere.
>>
>> if it doesn't for a while, we could remove the code with more
>> confidence, unless someone thinks we should keep it.
>>
>> best regards,
>> michael
>>
>> On 13.05.22 00:04, Łukasz Bownik wrote:
>> > Hi.
>> >
>> > I stated to clean and extend test cases for
>> org.openide.util.Task class.
>> > In the test case I found the canWait1s() method
>> >
>> >
>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
>> >
>> > which is used in
>> >
>> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L74
>> >
>> > to skip the test with the message
>> > "Skipping
>> >
>> testWaitWithTimeOutReturnsAfterTimeOutWhenTheTaskIsNotComputedAtAll,
>> as the
>> > computer is not able to wait 1s!"
>> >
>> > does anybody know what is the history of this? does it concern
>> currently
>> > supported platforms?
>> >
>>
>
Re: can wait 1 second?
Posted by Michael Bien <mb...@gmail.com>.
i don't think the assumption in that method is correct btw:
https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
sleep does not make any guarantees that it wakes up right after the
timeout. It only attempts to sleep for at least the timeout - assuming
now RT kernels are in use.
if (delta < 900 || delta > 1100) {
this is going to fail for various load related reasons, even without
having CPU bugs. delta < 900 makes somewhat sense to test for desync
issue I suppose.
-mbien
On 13.05.22 01:06, Łukasz Bownik wrote:
> I will create a separate test calling only this method.
>
> On Thu, May 12, 2022, 3:21 PM Michael Bien <mb...@gmail.com> wrote:
>
> Hi Lukasz,
>
> I don't know why its there but if i can make a guess:
> early multi core CPUs had often timing desyncs between cores (likely
> between sockets too). This was somewhat of a problem for realtime
> applications like game engines since the time could appear to run
> backwards.
>
> once travis is working again, you could change the skipping logic to
> fail() and see if it fails somewhere.
>
> if it doesn't for a while, we could remove the code with more
> confidence, unless someone thinks we should keep it.
>
> best regards,
> michael
>
> On 13.05.22 00:04, Łukasz Bownik wrote:
> > Hi.
> >
> > I stated to clean and extend test cases for
> org.openide.util.Task class.
> > In the test case I found the canWait1s() method
> >
> >
> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
> >
> > which is used in
> >
> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L74
> >
> > to skip the test with the message
> > "Skipping
> >
> testWaitWithTimeOutReturnsAfterTimeOutWhenTheTaskIsNotComputedAtAll,
> as the
> > computer is not able to wait 1s!"
> >
> > does anybody know what is the history of this? does it concern
> currently
> > supported platforms?
> >
>
Re: can wait 1 second?
Posted by Łukasz Bownik <lu...@gmail.com>.
I will create a separate test calling only this method.
On Thu, May 12, 2022, 3:21 PM Michael Bien <mb...@gmail.com> wrote:
> Hi Lukasz,
>
> I don't know why its there but if i can make a guess:
> early multi core CPUs had often timing desyncs between cores (likely
> between sockets too). This was somewhat of a problem for realtime
> applications like game engines since the time could appear to run
> backwards.
>
> once travis is working again, you could change the skipping logic to
> fail() and see if it fails somewhere.
>
> if it doesn't for a while, we could remove the code with more
> confidence, unless someone thinks we should keep it.
>
> best regards,
> michael
>
> On 13.05.22 00:04, Łukasz Bownik wrote:
> > Hi.
> >
> > I stated to clean and extend test cases for org.openide.util.Task class.
> > In the test case I found the canWait1s() method
> >
> >
> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
> >
> > which is used in
> >
> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L74
> >
> > to skip the test with the message
> > "Skipping
> > testWaitWithTimeOutReturnsAfterTimeOutWhenTheTaskIsNotComputedAtAll, as
> the
> > computer is not able to wait 1s!"
> >
> > does anybody know what is the history of this? does it concern currently
> > supported platforms?
> >
>
>
Re: can wait 1 second?
Posted by Michael Bien <mb...@gmail.com>.
Hi Lukasz,
I don't know why its there but if i can make a guess:
early multi core CPUs had often timing desyncs between cores (likely
between sockets too). This was somewhat of a problem for realtime
applications like game engines since the time could appear to run backwards.
once travis is working again, you could change the skipping logic to
fail() and see if it fails somewhere.
if it doesn't for a while, we could remove the code with more
confidence, unless someone thinks we should keep it.
best regards,
michael
On 13.05.22 00:04, Łukasz Bownik wrote:
> Hi.
>
> I stated to clean and extend test cases for org.openide.util.Task class.
> In the test case I found the canWait1s() method
>
> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L171
>
> which is used in
> https://github.com/apache/netbeans/blob/f117b5568a12b59e085be02076bc2df1be489258/platform/openide.util/test/unit/src/org/openide/util/TaskTest.java#L74
>
> to skip the test with the message
> "Skipping
> testWaitWithTimeOutReturnsAfterTimeOutWhenTheTaskIsNotComputedAtAll, as the
> computer is not able to wait 1s!"
>
> does anybody know what is the history of this? does it concern currently
> supported platforms?
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists