U4-11021 - No login form when trying to authorise 7.9 upgrade

Created by Richard Thompson 27 Feb 2018, 15:47:43 Updated by Jacob Midtgaard-Olesen 23 Apr 2018, 13:54:05

Tags: Unscheduled Regression

I've updated a 7.8.1 site to 7.9 using Nuget. When I ran the site it takes me to the login screen to authorise the upgrade but there is no login form.

When I check the console in Chrome I see the following error:

Uncaught TypeError: Cannot read property 'cacheBuster' of null

This error comes from the DependencyHandler.axd.

I've tried clearing out /App_Data/TEMP/ClientDependency and bumping the client dependency version. I've also go the Chrome developer tools set to clear the cache and have hard refreshed.

Comments

Sebastiaan Janssen 27 Feb 2018, 16:11:41

Hmmm, try setting debug="true" in your web.config and see if that helps. I'll dive into the code later to see what is going on.


Lennard Fonteijn 27 Feb 2018, 21:18:47

I had this too on Cloud today, causing a deploy to fail. Simply turning debug mode in Web.config on, reloading, then off again gives ClientDependency the kick it needs.


Shannon Deminick 27 Feb 2018, 22:29:28

The problem is that we are now properly cache busting everything and clearing out the angular template cache (which we did before but now it's done in a more robust way). However, during upgrades, the 'cacheBuster' value is not available because we don't output this value when the app is in an upgrade state :(

I'll push a PR for this asap.


Shannon Deminick 27 Feb 2018, 22:37:41

PR: https://github.com/umbraco/Umbraco-CMS/pull/2484

Previously (and I'm not entirely sure why), we didn't output the application part of the Server Variables when in an upgrade mode, however we had specific checks in the BareMinimumServerVariables (which are the ones output when running the upgrader) to ensure that application.cacheBuster was in the result but since the application part was null, this value wasn't output.

The fix is:

  • Remove the check for the _applicationContext.IsConfigured and output the application state during upgrades
  • Change the hash of the cache buster value to also include the IsConfigured state - This means that the cache buster value will change before and after the upgrade which is what we want

To test:

  • Open the solution and change the web.config umbracoConfigurationStatus to be 7.8.0 instead of 7.9.0 (which will force the installer to run) and change to compilation debug="false"
  • Run the website, the installer will run and redirect to the login page and everything will just work, also check the dev tools to make sure no JS errors occur


Richard Thompson 28 Feb 2018, 09:24:27

For what it's worth I can confirm that using debug="true" the login screen appears.


Priority: Major

Type: Bug

State: Fixed

Assignee:

Difficulty: Normal

Category:

Backwards Compatible: True

Fix Submitted:

Affected versions: 7.9.0

Due in version: 7.9.1

Sprint: Sprint 79

Story Points: 1

Cycle: 8