? Success

User tests: Successful: Unsuccessful:

avatar zero-24
zero-24
21 Jun 2017

Summary of Changes

If you update from a older version to 3.7.x we redirect you to the login screen. In some cases input is not defined. So we need to check that until we support that updates.

Testing Instructions

try to update from a old version using this package.
patched_Joomla_3.7.2-Stable-Update_Package.zip

Expected result

No errors

Actual result

Notice: Undefined property: LoginController::$input in JRoot/administrator/components/com_login/controller.php on line 36

Fatal error: Call to a member function set() on null in JRoot/administrator/components/com_login/controller.php on line 36

Documentation Changes Required

None.

avatar zero-24 zero-24 - open - 21 Jun 2017
avatar zero-24 zero-24 - change - 21 Jun 2017
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 21 Jun 2017
Category Administration com_login
avatar wilsonge
wilsonge - comment - 21 Jun 2017

By older version presumably this is only from Joomla 2.5? Otherwise I don't understand given $this->input is in the controller since Joomla 3.0.0

avatar zero-24
zero-24 - comment - 21 Jun 2017

Sounds like that. The problem is that we now force to relogin and in that state it could be possible working on the old lib files.

avatar mbabker
mbabker - comment - 21 Jun 2017

If we can confirm this as a 2.5 to 3.x upgrade issue, it's a valid bug fix. If this is an issue on a 3.x to 3.latest upgrade, there is another bug and this is just masking it.

avatar mbabker
mbabker - comment - 21 Jun 2017

Class member properties should be able to be relied on to be set, if they aren't being set correctly there is something really awkward happening. In the case of a 2.5 to 3.x upgrade, that problem is probably related to the autoloader and the JControllerLegacy class being read out of libraries/cms versus libraries/legacy (which would happen if during the upgrade you have to hit the supplemental login screen, at that point the deleted files step will not have been triggered) and this is an appropriate bypass. In general though, any place where we have to do what equates to a $this->foo = $this->foo ?: JFactory::getFoo(); call then we're hitting problems that need to be clearly documented.

avatar joomla-cms-bot joomla-cms-bot - change - 22 Jun 2017
Title
[3.x]Fix issue where input is not defined on update time
[3.x] Fix issue where input is not defined on update time
avatar franz-wohlkoenig franz-wohlkoenig - change - 22 Jun 2017
Title
[3.x]Fix issue where input is not defined on update time
[3.x] Fix issue where input is not defined on update time
avatar joomla-cms-bot joomla-cms-bot - edited - 22 Jun 2017
avatar zero-24
zero-24 - comment - 13 Aug 2017

If we can confirm this as a 2.5 to 3.x upgrade issue, it's a valid bug fix. If this is an issue on a 3.x to 3.latest upgrade, there is another bug and this is just masking it.

IMO the problem is that this kind of issue depend on server setup and how fast your server are. So this is nothing we can reproduce by a simple test. IMO based on the error report this is a valid problem with a known fix.

avatar mbabker
mbabker - comment - 13 Aug 2017

To me this is still blindly patching issues without understanding root cause. If a class member property is set in a class' constructor, a class method should NEVER have to check that the property is actually set (otherwise it defeats the purpose of doing it in the constructor to begin with).

So while the fix may be valid, I don't feel comfortable merging something like this just because it might fix some issue that some people might be having but we have no idea what or why.

avatar zero-24
zero-24 - comment - 13 Aug 2017

but we have no idea what or why.

The why is simple. ;) Your filesystem was not fast egnoth to replace the files and load the new class. So the property was not set and can't be used.

In this special case we are just inbetween the update and the cleanup task which remove the old files is not run yet. So this would explain the issue.

avatar mbabker
mbabker - comment - 13 Aug 2017

On what upgrade path though? The property has existed since 3.0.0 and it was somewhere around 3.5 or 3.6 where we started deleting files in the restore.php file. So it has nothing to do with the system being fast enough to delete stuff, it is a very explicit upgrade path that triggers the issue and THAT is what needs to be clarified here.

If it is a 3.x to 3.x upgrade, there is another bug that needs to be addressed, this is only hiding another issue. The only upgrade path this change might affect is a 2.5 to 3.x upgrade.

avatar zero-24 zero-24 - change - 13 Aug 2017
Status Pending Closed
Closed_Date 0000-00-00 00:00:00 2017-08-13 16:21:33
Closed_By zero-24
avatar zero-24 zero-24 - close - 13 Aug 2017

Add a Comment

Login with GitHub to post a comment