Passing null to parameter #3 ($subject) of type array|string is deprecated

  • Affected Version
    WoltLab Suite 5.5
    Affected App
    WoltLab Suite Core

    Nach Installation des Viecode-Shops:


    Requested URL
    GET /acp/index.php
    Referrer
    Error Message
    str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated
    Type
    wcf\system\exception\ErrorException
    File (Line)
    /wsc/lib/system/WCF.class.php (341)
    Template Context
    } ?> </ul> </li> ====> <?php if ($this->v['__wcf']->session->getPermission('admin.configuration.package.canUpdatePackage') && $this->v['__wcf']->getAvailableUpdates()) { ?> <li> <a href="<?php $this->tagStack[] = ['link', ['controller' => 'PackageUpdate']]; $this->pluginObjects['wcf\system\template\plugin\LinkBlockTemplatePlugin']->init($this->tagStack[count($this->tagStack) - 1][1], $this); while ($this->pluginObjects['wcf\system\template\plugin\LinkBlockTemplatePlugin']->next($this)) { ob_start(); ?><?php echo $this->pluginObjects['wcf\system\template\plugin\LinkBlockTemplatePlugin']->execute($this->tagStack[count($this->tagStack) - 1][1], ob_get_clean(), $this); } array_pop($this->tagStack);?>" class="jsTooltip" title="Aktualisierungen"><span class="icon icon32 fa-refresh"></span> <span class="badge badgeUpdate"><?=wcf\util\StringUtil::formatNumeric($this->v['__wcf']->getAvailableUpdates());?></span></a> </li>
    Stacktrace
    1. [internal function] (?): wcf\system\WCF::handleError(…)
    2. /wsc/lib/data/package/Package.class.php (435): str_replace(…)
    3. /wsc/lib/data/package/Package.class.php (417): wcf\data\package\Package::formatVersionForCompare(…)
    4. /wsc/lib/system/package/PackageUpdateDispatcher.class.php (767): wcf\data\package\Package::compareVersion(…)
    5. /wsc/lib/system/cache/builder/PackageUpdateCacheBuilder.class.php (22): wcf\system\package\PackageUpdateDispatcher->getAvailableUpdates(…)
    6. /wsc/lib/system/cache/builder/AbstractCacheBuilder.class.php (42): wcf\system\cache\builder\PackageUpdateCacheBuilder->rebuild(…)
    7. /wsc/lib/system/WCF.class.php (1120): wcf\system\cache\builder\AbstractCacheBuilder->getData(…)
    8. /wsc/acp/templates/compiled/0_wcf_1_index.php (469): wcf\system\WCF->getAvailableUpdates(…)
    9. /wsc/lib/system/template/TemplateEngine.class.php (350): include(…)
    10. /wsc/lib/page/AbstractPage.class.php (390): wcf\system\template\TemplateEngine->display(…)
    11. /wsc/lib/acp/page/IndexPage.class.php (221): wcf\page\AbstractPage->show(…)
    12. /wsc/lib/page/AbstractPage.class.php (135): wcf\acp\page\IndexPage->show(…)
    13. /wsc/lib/system/request/Request.class.php (90): wcf\page\AbstractPage->__run(…)
    14. /wsc/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    15. /wsc/acp/index.php (11): wcf\system\request\RequestHandler->handle(…)
  • Der Fehler selbst ist vermutlich ein Duplikat von diesem


    Könnt ihr besser beurteilen. Ich hatte nur bedenken, dass das evtl. nicht weiter verfolgt wird, weil es dort ja um die Kombination 5.4 + 8.1 geht und nicht wie hier, um 5.5, die ja im Gegensatz zu 5.4 vollständig PHP 8.1 kompatibel ist, bzw. sein soll.

    • Official Post

    Hallo,

    Ich hatte nur bedenken, dass das evtl. nicht weiter verfolgt wird, weil es dort ja um die Kombination 5.4 + 8.1 geht und nicht wie hier, um 5.5, die ja im Gegensatz zu 5.4 vollständig PHP 8.1 kompatibel ist.

    nein, das Thema haben wir ergebnisoffen beurteilt. Wir wissen ja grundsätzlich auch, welche Probleme mit PHP 8.1 uns bekannt (und gefixt sind). Ich habe auch schon eine Vermutung für die Ursache, aber noch keine Zeit, mich im Detail damit zu beschäftigen. Wenn es aber (wie du sagst) die Seite komplett brickt, dann schaue ich mal, ob ich es kurzfristig reproduziert bekomme. Kannst du mir (gerne per Ticket) zukommen lassen, welche Paketserver bei dir eingerichtet sind und ob diese jeweils Zugangsdaten hinterlegt haben?

  • Nachtrag: Die Deaktivierung über die DB (und anschließendes Neustarten von Redis) brachte keine Änderung. Die Seite bleibt tot.


    Kannst du mir (gerne per Ticket) zukommen lassen, welche Paketserver bei dir eingerichtet sind und ob diese jeweils Zugangsdaten hinterlegt haben?


    Nur https://www.viecode.com/update/5.5/ (mit Zugangsdaten).


    Paketserver eingerichtet -> Authentifizierungscode hinterlegt -> Shop installiert -> Ende.

  • Hallo,

    Redis persistiert per Default auf Disk, möglicherweise hat es beim Neustart den alten Cache geladen. Probiere: FLUSHALL auf der CLI, wenn du sonst keine wichtigen Daten in Redis speicherst.


    Hatte ich bereits getan:


    Code
    docker exec -it 0f176716a16f redis-cli FLUSHALL


    Das Problem wird vom Paket com.viecode.api.sandbox verursacht. Der "fehlerhafte" Datensatz kommt jedoch von http://store.woltlab.com/5.5/. Das Problem ist, dass ich auf dem offiziellen Server keinen Zugriff auf den Shop, bzw. das Paket habe.


    Es wird also immer dann auftreten, wenn man Plugins von Drittentwicklern über inoffizielle Paketserver bezieht, auf die man auf den offiziellen Servern keinen Zugriff hat (ggf. auch umgekehrt, das haben wir nicht getestet).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!