When then navigating through the backend, all is ok. Frontend works, too. The error message never appears again.
No error shown after first login to backend after update from 3.10 to 4.0.
Error shown after first login to backend after update from 3.10 to 4.0, see steps to reproduce.
PHP 7.3, MySQL 8, Linux
The aministrator/logs/joomla_update.php
shows that all SQL changes have been applied, compared to the update sql files. So it is not caused by any SQL error like it was reported with issue #28385 and solved with PR #28391 .
The changes from PR #28399 are implemented too, and the PHP warning logged in the PHP log which was present before PR #28399 was merged does not appear anymore. But the error shown in the screenshot above is the same as the one handled with PR #28399.
Labels |
Added:
?
|
Labels |
Added:
J4 Issue
|
Build | staging | ⇒ | 4.0-dev |
Priority | Medium | ⇒ | Urgent |
Do you have a stack trace? Where this error is coming from?
No idea. I have full error log to file on in my PHP settings, but there is no error logged in the log file.
But normally this error comes when trying to read XML files but the file is not there.
what happens when you enable the debug plugin? Any more info displayed than?
@zero-24 Thanks for kicking my ass to the debugger ;-)
Call stack
--
# | Function | Location
1 | () | JROOT/libraries/src/Installer/Adapter/PluginAdapter.php:424
2 | Joomla\CMS\Installer\Adapter\PluginAdapter->setupUninstall() | JROOT/libraries/src/Installer/InstallerAdapter.php:1180
3 | Joomla\CMS\Installer\InstallerAdapter->uninstall() | JROOT/libraries/src/Installer/Installer.php:764
4 | Joomla\CMS\Installer\Installer->uninstall() | JROOT/administrator/components/com_admin/script.php:412
5 | JoomlaInstallerScript->uninstallRepeatableFieldsPlugin() | JROOT/administrator/components/com_admin/script.php:96
6 | JoomlaInstallerScript->update() | JROOT/administrator/components/com_joomlaupdate/src/Model/UpdateModel.php:866
7 | Joomla\Component\Joomlaupdate\Administrator\Model\UpdateModel->finaliseUpgrade() | JROOT/administrator/components/com_joomlaupdate/src/Controller/UpdateController.php:180
8 | Joomla\Component\Joomlaupdate\Administrator\Controller\UpdateController->finalise() | JROOT/libraries/src/MVC/Controller/BaseController.php:728
9 | Joomla\CMS\MVC\Controller\BaseController->execute() | JROOT/libraries/src/Dispatcher/ComponentDispatcher.php:146
10 | Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch() | JROOT/libraries/src/Component/ComponentHelper.php:384
11 | Joomla\CMS\Component\ComponentHelper::renderComponent() | JROOT/libraries/src/Application/AdministratorApplication.php:131
12 | Joomla\CMS\Application\AdministratorApplication->dispatch() | JROOT/libraries/src/Application/AdministratorApplication.php:174
13 | Joomla\CMS\Application\AdministratorApplication->doExecute() | JROOT/libraries/src/Application/CMSApplication.php:231
14 | Joomla\CMS\Application\CMSApplication->execute() | JROOT/administrator/includes/app.php:63
15 | require_once() | JROOT/administrator/index.php:36
It seems it fails when uninstalling the repeatable fields plugin.
hmm seams to be something broken in the uninstall of the plugin uninstallRepeatableFieldsPlugin.
Yep, am checking, but haven't found the mistake yet ;-)
The $this->group = (string) $this->getManifest()->attributes()->group;
in the PluginAdapter fails. It seems it doesn't find any manifest file.
Or it doesn't have a group
attribute.
Maybe order of processing in function uninstallRepeatableFieldsPlugin()
in file script.php
is wrong? To me it seems to be ok. Or maybe we should do the $db->transactionCommit();
there before we run the installer to uninstall the plugin, and not after like it is now?
https://github.com/joomla/joomla-cms/blob/staging/plugins/fields/repeatable/repeatable.xml#L2
hmm the xml looks good to me maybe the path used is not the correct one?
Is that function running before or after the plugin was removed from the filesystem? It doesn’t matter if the manifest looks right or not, if it’s not there then you’re SOL.
It's related to this https://github.com/joomla/joomla-cms/blob/4.0-dev/administrator/components/com_joomlaupdate/restore_finalisation.php#L75
I forgot at the end of restore.php we trash all the files :( That's before we call the usual script methods. Which is unfortunate. Not really sure how best to work around that.
Alternatively, we could change the function uninstallRepeatableFieldsPlugin in script.php so it doesn't uninstall the plugin anymore using the extensions installer but is deleting database stuff like e.g. the record in the extensions table itself.
@wilsonge Could we exclude the files and folders of that plugin from the delete files routine and the delete folders (and also from the script to generate those lists)? Shouldn't the uninstallation of the plugin remove that stuff already?
Yes I think that's the correct thing to do
Have just tested with a patched update zip and it works.
Patch was change in script.php as shown here: 4.0-dev...richard67:4.0-dev-test-issue-28432
Custom URL for testing: https://test5.richard-fath.de/next_major_list_issue-28432.xml.
looks good to me.
Make the PR its fine
You mean I shall make? Ok, will do so.
Status | New | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2020-03-22 17:18:26 |
Closed_By | ⇒ | richard67 |
Labels |
Removed:
?
|
Ping @wilsonge .