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

Updatefehler von 6.7.3 auf 6.8.8 (redaxo 5.13.0-beta2) #324

Closed
olien opened this issue Nov 16, 2021 · 6 comments
Closed

Updatefehler von 6.7.3 auf 6.8.8 (redaxo 5.13.0-beta2) #324

olien opened this issue Nov 16, 2021 · 6 comments

Comments

@olien
Copy link
Member

olien commented Nov 16, 2021

image

@tyrant88
Copy link
Member

Ja, da bringt 5.13 ein Problem, da muss ich mal mit @gharlan schnacken...

@tyrant88
Copy link
Member

rex_exception thrown with message "Calling getPath on rex_null_package is not allowed"

Stacktrace:
#9 rex_exception in D:\weblocal\redaxo\redaxo\src\core\lib\packages\null.php:50
#8 rex_null_package:getPath in D:\weblocal\redaxo\redaxo\src\addons.new.search_it\update.php:10
#7 include in D:\weblocal\redaxo\redaxo\src\core\lib\packages\package.php:285
#6 rex_package:includeFile in D:\weblocal\redaxo\redaxo\src\addons\install\lib\package\package_update.php:63
#5 rex_install_package_update:doAction in D:\weblocal\redaxo\redaxo\src\addons\install\lib\package\package_download.php:44
#4 rex_install_package_download:run in D:\weblocal\redaxo\redaxo\src\addons\install\lib\api\api_package_update.php:21
#3 rex_api_install_package_update:execute in D:\weblocal\redaxo\redaxo\src\core\lib\api_function.php:180
#2 rex_api_function:handleCall in D:\weblocal\redaxo\redaxo\src\core\backend.php:234
#1 require in D:\weblocal\redaxo\redaxo\src\core\boot.php:143
#0 require in D:\weblocal\redaxo\redaxo\index.php:9

@gharlan
Copy link
Member

gharlan commented Nov 16, 2021

Der Fehler kommt also aus dieser Zeile:

if ( is_dir($addon->getPlugin('reindex')->getPath()) ) {

Wenn das Plugin bereits nicht mehr existiert, ruft man dort getPath auf zu einer Instanz von rex_null_package (ein nicht existierendes Package).
Da hatte REDAXO bisher null geliefert.
Eigentlich sollte man aber bei einem nicht existierenden Package gar nicht mit den Pfaden hantieren. Vor allem wenn man nicht weiß, ob ein package oder null-package vorliegt, ist es tendenziell problematisch mit getPath zu arbeite (man denke an sowas wie $package->getPath().'/foo', wo man dann plötzlich im Root /foo landen würde).

Bei dir ist die Zeile eigentlich aber so unproblematisch. Bin daher am überlegen, ob ich die Änderung in 5.13 rückgängig mache. Eigentlich ist die Exception aus obigen Grund mir aber sehr recht dort.
Mit PHP 8.1 wird die Zeile auch bei der bisherigen Variante eine Deprecated-Meldung erzeugen: https://3v4l.org/DWVo2
Daher wirst du die Zeile sowieso anpassen müssen. Daher wäre es ok, wenn wir die Exception drin lassen und du die Zeile anpasst?
Vorschlag:

if ($addon->pluginExists('reindex')) {
    rex_dir::delete(...);

@tyrant88
Copy link
Member

tyrant88 commented Nov 16, 2021

Kein Problem.

Ich bin beim Selbst-Debuggen nicht vorwärts gekommen, weil bei mir der stacktrace (grafischer Teil) so aussah:..
Zwischenablage-1

Edit:
Klar logisch, die Datei ist ja wieder weg... Deshalb sah der include-Aufruf auch korrekt aus... und da stand die update.php... dann hätte ich dort in die Zeile schauen können...
[Selbstgespräch Ende]

@tyrant88
Copy link
Member

Neues release --> bitte testen @olien

@olien
Copy link
Member Author

olien commented Nov 16, 2021

Klappt. Danke!

@olien olien closed this as completed Nov 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants