-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Browser tests: reduce timeout for instantiation to reasonable value #1706
base: master
Are you sure you want to change the base?
Browser tests: reduce timeout for instantiation to reasonable value #1706
Conversation
Test Results 501 files - 1 501 suites - 1 10m 43s ⏱️ - 5m 9s For more details on these failures, see this check. Results for commit 9313572. ± Comparison against base commit cc07c36. This pull request removes 37 tests.
♻️ This comment has been updated with latest results. |
a5eacf0
to
228c11e
Compare
228c11e
to
8cf3573
Compare
Builds sporadically show timeouts, e.g.:
Might be related to eclipse-platform/eclipse.platform.ui#2734 |
8cf3573
to
194a8a0
Compare
8afbe01
to
b74ebd7
Compare
b74ebd7
to
eda5bd4
Compare
I rebased on @HeikoKlare according to your comment (#1752 (comment)) this PR might need to be postponed until #1752 is merged, correct? |
This PR should actually not need any other PR at all. The failing tests indicate that there is a bug in either the browser implementation or the test setup that are not aware of yet, so something we need to find out independent from any other PR (as I already mentioned in #1677 (comment)). |
eda5bd4
to
7a661ab
Compare
What I mean is that "if we merge this PR after the ones that are already open then it is to be expected that there are no/less test failures due to timeouts" . But I see that you want to use this PR as a basis to check if the other PRs actually help (reduce/get rid of the test failures because of timeouts and freezes). So, shall we merge this one then? |
As we know, that's not the case. We still need to find the issue for the browser instantiation in tests taking so long. All the fixes we currently make regarding timeouts are only supposed to avoid that the actual errors (which we may not know yet) do not lead to a blocking UI. They do not properly solve the underlying issue.
I am not sure if people will be happy about that. Most Windows builds will fail with test failures then. So I wouldn't do that but rather find out the reasons for the failure first. |
fd49490
to
47582ad
Compare
0222db7
to
57b8f65
Compare
Note: the thread dump written after 60 seconds of test execution time show that the usually the main thread is stuck in
One might think that there is some wake message, but the actual issue is that the OS message triggering the WebView instantiation callback did actually not arrive. When adding an explicit timed, repeated awakening, the display still goes into sleep repeatedly since no message arrived from the OS so far. In addition, adding debug output in the loop waiting for the OS message shows that the loop is spinned quite often. Further finding: Once might also think that there is some message scheduled asynchronously on the display, which is not processed by the So the underlying issue is that the OS does not call the WebView instantiation callback for a long time (> 60 seconds). It is also interesting that usually after 65 seconds the callback is finally executed. |
f6bb7be
to
c785da1
Compare
I've also been looking at it and all I came up with is:
Regarding point nr. 1, I used this commit to log the request and the callback and I saw this output: 1st delay: 65.237.957.400 ns
**2nd delay: 65.262.087.700 ns **
A quick internet search revealed that Instantiating Edge can be slow, but what I still don't get is:
@HeikoKlare let's discuss how to proceed with this PR in today's daily. |
c785da1
to
8c91436
Compare
FYI there is a 2nd commit in this PR, one is from #1797 |
Yes, that was intended for testing purposes. We still see issues with WebView intialization sometimes taking long, so this is not ready for being merged anyway. I thus changed it back to "draft". |
9bd1044
to
6843b3e
Compare
The timeout for browser instantiation in the browser tests has been increased to avoid flaky tests. However, browser instantiation taking that long is an indicator for something being wrong with the instantiation. There is no reason why instantiation may take that long during test execution but the same issue should never arise in productive use, thus such a case should be captured by tests and, if necessary, be fixed productively. In order to do so, this change reduces the test timeout value again to a more reasonable value. Since the first Edge browser instantiation takes rather long at least in the GitHub actions test environment, that instantiation is isolated in an execution before the test class. Related to eclipse-platform#1676
6843b3e
to
9313572
Compare
The timeout for browser instantiation in the browser tests has been increased to avoid flaky tests (via #1677). However, browser instantiation taking more than 10 seconds (the previous timeout value) is an indicator for something being wrong with the instantiation. There is no reason why instantiation may take that long during test execution but the same issue should never arise in productive use. Thus, such a case should be captured by tests and, if necessary, be fixed productively.
In order to do so, this change reduces the test timeout value again to a more reasonable value.
Related to #1676
Also see #1677 (comment)