U4-11164 - U7.10 Blank screen after Login

Created by Arjan Woldring 29 Mar 2018, 10:33:38 Updated by Jacob Midtgaard-Olesen 07 May 2018, 08:17:27

Tags: Unscheduled PR

Relates to: U4-11044

My setup: 7.10 (nuget) SQLCE

The problem is when logging in I see a blank/white screen. It stays blank for about 30 seconds and then the begin screen from umbraco is showing. OR when I resize the window a bit. Somehow the loading of the assets is stalling for some reason and it seems that the other assets are loading after GetRemainingTimeoutSeconds is called.

Update: This happens if you change the backoffice language to another language then United States. I tried Dutch and German. Standard US is doing fine it seems. Might this be a problem with the moment.js locales?

See forum: https://our.umbraco.org/forum/using-umbraco-and-getting-started/91354-u710-blank-screen-after-login

Comments

Arjan Woldring 29 Mar 2018, 10:52:21

Best way to reproduce (it does not happen all the time):

Change backoffice to Dutch Logout. Chrome Delete cookies Chrome Delete cache and force reload Keep Chrome Developer console open Login.


Georgs Bormanis 30 Mar 2018, 09:04:11

I just tried to login on a completely new project and I can reproduce this without changing the language: https://cl.ly/2q42260W3M1o

It works when you load the page again though..


Stephan 30 Mar 2018, 09:15:46

Is this with any browser or with a specific browser?


Dave Woestenborghs 30 Mar 2018, 09:20:07

I think i found the cause..PR is coming


Stephan 30 Mar 2018, 09:20:23

Never mind, reproduced in Chrome - happens as soon as we need to load a new moment.js locale file (hence why it happens when switching languages)


Dave Woestenborghs 30 Mar 2018, 09:24:59

I created a PR : https://github.com/umbraco/Umbraco-CMS/pull/2554


Stephan 30 Mar 2018, 09:36:47

brillant


Stephan 30 Mar 2018, 09:41:22

though the PR totally makes sense, I'm wondering... by my tests, a locale is fetched (say, fr.js) and then everything seems to hang 'till the next request (usually, getting the user timeout) is issued. so it's not the loading of the locale per se that's slow, usually it's retrieved quite fast. it's more that the loading of the locale then seems to hang the loading of anything else. I'm not angular expert enough to figure out whether that's adressed by the PR?


Dave Woestenborghs 30 Mar 2018, 09:54:48

Do you mean it still hangs after with the PR code ? Because it works on my machine :-)

In the original code the promise was deferred using $q.defer

But using $q.all this seems useless to me because you are waiting for all promises to be resolved.

Dave


Arjan Woldring 30 Mar 2018, 10:19:41

I just merged in the changes in my project and it's working perfectly fine. Tested many times with disable caching in chrome and force reload couple times. There were 2 issues. Blank screen after login and blank screen on refresh page when you are logged in. Both issues I can't reproduce anymore.

For me this seems a good fix. Awesome job guys :)


Stephan 30 Mar 2018, 10:39:48

The PR totally works - it's just me wondering - but yup will merge.


Arjan Woldring 30 Mar 2018, 12:42:28

@dawoe @zpqrtbnk Probably not related, but not sure, so letting you know just in case. I had another 'loading' problem with document types. So I created a new issue. This is the one: http://issues.umbraco.org/issue/U4-11167


Shannon Deminick 03 Apr 2018, 01:31:31

I pushed an update for this after merging @dawoe 's PR, see https://github.com/umbraco/Umbraco-CMS/pull/2554#issuecomment-378094595 but a problem still remains!

The underlying problem is that there's an issue with the assets service and scopes and doing an angular $apply. This is because there is no $scope being passed in to the assetsService.load therefore no angular $apply is taking place, so it seems like it hangs. But if you mouse move or mouse click, it will force an angular $apply and things will continue.

As it turns out there is a ton of places where a scope object is not being passed into the assetsService.load* methods which is required if the UI is going to update. I'm quite surprised that there's not a lot more back office issues that seem like things are hanging. I've pushed another update https://github.com/umbraco/Umbraco-CMS/commit/e77ebc0c1c772136b32681dd219b594b39a30a66 which ensures that the correct scope object is being passed to these methods and also fixes the assetsService directly to use $rootScope when an explicit scope is not passed which should have been implemented in the first place.


Shannon Deminick 03 Apr 2018, 01:35:38

For testing:

  • Login as a user
  • Change their culture to something like Spanish
  • Log out
  • Log back in, the back office should load immediately with the correct culture and no errors in the dev tools console
  • Do the above again a few times with different cultures


Warren Buckley 03 Apr 2018, 08:34:31

Tested in the patch-v7 branch all is good & merged patch-v7 into dev-v7 @Shandem


Warren Buckley 03 Apr 2018, 08:42:17

Commit made by '''Warren''' on ''2018-04-03T09:38:50+01:00'' https://github.com/umbraco/Umbraco-CMS/commit/05604880e0e2eecf690065815eb7841c652641bb

Merge branch 'patch-v7' into dev-v8

  • Merging up into V8 the 7.10 regression with assetsService locale stuff #U4-11164


Priority: Show-stopper

Type: Bug

State: Fixed

Assignee:

Difficulty: Normal

Category:

Backwards Compatible: True

Fix Submitted: Pull request

Affected versions: 7.10.0

Due in version: 7.10.1

Sprint: Sprint 81

Story Points: 1

Cycle: 9