Skip to content
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

8.12.0 set a custom theme => page loading hangs with blinking progress indicator #12151

Closed
dex-ds opened this issue Nov 19, 2020 · 8 comments · Fixed by #12178
Closed

8.12.0 set a custom theme => page loading hangs with blinking progress indicator #12151

dex-ds opened this issue Nov 19, 2020 · 8 comments · Fixed by #12178
Labels

Comments

@dex-ds
Copy link

dex-ds commented Nov 19, 2020

  • Vaadin Framework version 8.12.0 (with compatibility)
  • current Browser versions of Edge, Vivaldi, Firefox, Chrome, Safari
  • setTheme programmatically in UI
  • the custom themes are derived from ValoTheme
  • empty cache and hard reload on browsers (mostly CTRL-F5), page loading hangs with blinking progress indicator
  • button actions etc. are unresponsive
  • after a normal reload (preservedOnRefresh needs to be true) the page is loading successfully

8.11.3 and previous version work properly

@TatuLund
Copy link
Contributor

There has been a change in 8.12.0 what comes to programmatic theme change, as there was documented bug in earlier versions, see #11954 The symptoms documented are very similar to yours, with the difference that PreserveOnRefresh was not used in that scenario.

The fix is https://github.com/vaadin/framework/pull/12043/files

@Ansku
Copy link
Member

Ansku commented Dec 7, 2020

I managed to reproduce something like this once on my first try with both Chrome and Firefox, but after normal reload (without @PreserveOnRefresh, all other conditions match except I'm running the test on current master, which contains a few more changes on top of 8.12.0) it started working again, and after that I haven't been able to get the problem to happen again on either browser, so I'm not entirely certain that was actually the same issue that you reported. If the problem is still present for you in 8.12.1 (released last week), could you attach a simple test UI that reproduces the error state, so that I can give it a closer look? I'm also interested in what kinds of errors or warnings you might have in your browser console when the application gets stuck.

@dex-ds
Copy link
Author

dex-ds commented Dec 9, 2020

Sorry for the delay, I'am very busy these days in projects.
The issue still exists in 8.12.1 However, it has become better because you can reproduce it less.
When the problem occurs, the following warning is displayed in the Browser Console:

Wed Dec 09 20:10:42 GMT+100 2020 com.vaadin.client.communication.MessageHandler
WARNING: Dropping the response of a request before a resync request.

@Ansku
Copy link
Member

Ansku commented Dec 10, 2020

Thank you! I'm sadly still unable to reproduce the issue, so can't really dig in deeper for now, but that's a good starting point.

TatuLund added a commit that referenced this issue Jan 5, 2021
#12043 changed resync message sending to be deferred to queue. Now also the setting of the semaphor in message handler needs to be deferred to its right place. Otherwise there is possibility for a timing glitch. I.e. MessageHandler is set to resync handling mode before message is actually send.

Fixes: #12151
@TatuLund TatuLund added the BFP label Jan 5, 2021
@TatuLund
Copy link
Contributor

TatuLund commented Jan 5, 2021

I managed to reproduce this locally. It requires the combination of @PreserveOnRefresh and @Push(transport = Transport.WEBSOCKET_XHR). Also I tested the patch locally and it indeed seems to fix the issue.

TatuLund added a commit that referenced this issue Jan 5, 2021
@gnkuzmin
Copy link

gnkuzmin commented Jan 6, 2021

It seems I have the same problem with page-reloading ("page loading hangs with blinking progress") with Vaadin 8.12.1
but without @PreserveOnRefresh (with @Push and without @Push).
But this works with Vaadin 8.11.1.
How often this happens apparently depends on the connection speed.
Unexpectedly, "browser cache dieable" makes it better.
With @theme (without setTheme)
there is no problem.

Ansku pushed a commit that referenced this issue Jan 7, 2021
…12178)

#12043 changed resync message sending to be deferred to queue. Now also the setting of the semaphor in message handler needs to be deferred to its right place. Otherwise there is possibility for a timing glitch. I.e. MessageHandler is set to resync handling mode before message is actually send.

Fixes: #12151
Ansku pushed a commit that referenced this issue Jan 22, 2021
…12178)

#12043 changed resync message sending to be deferred to queue. Now also the setting of the semaphor in message handler needs to be deferred to its right place. Otherwise there is possibility for a timing glitch. I.e. MessageHandler is set to resync handling mode before message is actually send.

Fixes: #12151
Ansku added a commit that referenced this issue Jan 22, 2021
…12178) (#12184)

#12043 changed resync message sending to be deferred to queue. Now also the setting of the semaphor in message handler needs to be deferred to its right place. Otherwise there is possibility for a timing glitch. I.e. MessageHandler is set to resync handling mode before message is actually send.

Fixes: #12151

Authored-by: Tatu Lund <[email protected]>
@dex-ds
Copy link
Author

dex-ds commented Feb 23, 2021

I confirm the issue is fixed.
8.12.3 tested with all standard browsers on 10 dedicated custom environments.

@Ansku
Copy link
Member

Ansku commented Feb 23, 2021

Great to hear, thank you for testing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants