Admin-ui ist kaputt in (Docker) stable und testing

Moin,

wie ich ja an anderer Stelle schon festgehalten habe, ist mir in einer bestehenden “stable” Installation das Bearbeiten eines Gerätes via admin-ui nicht mehr möglich. Jetzt habe ich festgestellt, dass es auch bei einer frischen Installation nicht funktioniert, egal ob stable or testing.

Reproduzierbar ist es wie folgt:

  1. Container aus Docker Image anlegen (docker run --rm -ti -p 8080:80 homegear/homegear:stable bzw. docker run --rm -ti -p 8080:80 homegear/homegear:testing)
  2. Im Admin UI unter http://127.0.0.1:8080/admin/ einloggen
  3. Einstellungen → System aufrufen (http://127.0.0.1:8080/admin/settings/system)

Ergebnis: Internal Server Error mit Meldung in homegear-scriptengine.err (identisch bei stable und testing):

2022-01-17T16:22:23+01:00 [critical] Uncaught Error: array_values(): Argument #1 ($array) must be of type array, null given
2022-01-17T16:22:23+01:00 [critical] Uncaught PHP Exception TypeError: “array_values(): Argument #1 ($array) must be of type array, null given” at /var/lib/homegear/admin-ui/src/Utils/Utils.php line 242

Problem bekannt, Lösung bekannt?

ich beobachte das gleiche Verhalten:

homegear -v
Homegear version 0.7.50-3478
Copyright (c) 2013-2020 Homegear GmbH

Required library versions:
  - libhomegear-base: 0.7.50-3478
  - libhomegear-node: 0.1.8-60
  - libhomegear-ipc:  0.1.2-46

Included open source software:
  - Node.js (license: MIT License, homepage: nodejs.org)
  - PHP (license: PHP License, homepage: www.php.net):
      This product includes PHP software, freely available from <http://www.php.net/software/>
      Copyright (c) 1999-2020 The PHP Group. All rights reserved.
2 Likes

Und? Interessiert das niemanden? Kann jemand es nicht nachvollziehen und falls ja, welche relevanten Abweichungen könnte es zwischen dem eigenen System und meinem geben?

es wär interessant zu sehen ob es auch ohne docker, also nativ reproduzierbar ist

Der guten Ordnung halber: Im “nightly” ist es auch kaputt, UI version 0.2.0-1321-dev

Hallo zusammen,

es interessiert schon jmd., naemlich mich. Ich war nur die letzten Wochen mit anderen Dingen busy, deswegen konnte ich hier nichts aktualisieren.

Das Problem tritt generell nur in Docker-Installationen auf, die “normalen” Installationen sollten funktionieren (tun sie jedenfalls auf meinem Test-System).

Den 500er unter “Einstellungen” → “System” konnte ich finden und beheben. Den anderen Fehler beim Bearbeiten eines Devices kann ich nicht reproduzieren … ich hab allerdings auch nur virtuelle Devices zur Verfuegung, da ich nur IP-based Devices (CCU, Sonos …) grad hier zum Testen hab.

Wenn mir jmd. seine db.sql schickt, teste ich das natuerlich gerne.

– Micha

1 Like

Okay, danke für das Feedback. Meine .db schicke ich Dir gerne, wenn ich an einem PC sitze.

Ich überlege gerade, worin die Problematik mit Docker liegen könnte, es werden auch hier ja die .deb Pakete verwendet. Kann natürlich die Kombination mit dem Host-Kernel sein.

Eine aktuelle “Debugging-Sitzung” mit @Micha hat übrigens ergeben, dass in meinem Setup ein Leeren des Verzeichnis /var/lib/homegear/tmp/admin-ui/cache/ die Bearbeitung von Geräteeigenschaften wieder ermöglicht hat.

3 Likes

Hallo zusammen,

den anderen 500er hatte ich ja gestern schon gefixed. Habe ich eben gepushed, sollte dann im kommenden nightly auch behoben sein.

– Micha

1 Like

Guten Morgen,
ich habe heute auf nightly gewechselt und das tmp geleert. Schaut wirklich deutlich besser aus!
Einstellungen → System erzeugt allerdings noch immer den 500er.

Grüsse

Hi @KaiHawaii,

dann wird da noch nicht die neue Version der UI dabei gewesen sein … das dauert immer ein paar Tage.

– Micha

1 Like

Wird die Änderung denn auch für stable zur Verfügung gestellt?

Mahlzeit, also im Nightly Docker Image funktioniert jetzt alles!
Ich bin Happy!

1 Like

Ich darf die Frage nochmal stellen, die Systemmeldungen in meiner „stable“ Installation füllen sich nämlich mit „array“ Meldungen, die sich nicht löschen lassen.

Hi @m0wlheld,
auch für die Nightly gibt es bis jetzt noch keinen Fix!
Das Problem liegt daran, dass @Micha es nicht nachstellen kann.
Eine Problematik die mir bestens bekannt ist und es schwer macht, das Problem zu analysieren und Bugfixes bereitzustellen. :frowning:
VG Carsten

Moin! Bei mir in meiner nightly Installation get die Admin-auch nicht mehr. Ich habe gerade einmal in einem frischen Debian 11 und einem Ubuntu 22.04 LXC Container jeweils eine Installation durchgeführt, bei beiden kommt folgendes:

03/20/24 09:18:29.424 Script engine (/var/lib/homegear/www/rpc/admin/index.php): PHP Fatal error:  Uncaught Symfony\Component\DependencyInjection\Exception\RuntimeException: Cannot autowire service "App\EventSubscriber\CheckServiceSubscriber": argument "$defaultLocale" of method "__construct()" has no type-hint, you should configure its value explicitly. in /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php:54
Stack trace:
#0 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php(82): Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue(Object(Symfony\Component\DependencyInjection\Definition), true)
#1 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php(32): Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->processValue(Array, true)
#2 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php(46): Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue(Array, true)
#3 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/Compiler.php(94): Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->process(Object(Symfony\Component\DependencyInjection\ContainerBuilder))
#4 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/ContainerBuilder.php(762): Symfony\Component\DependencyInjection\Compiler\Compiler->compile(Object(Symfony\Component\DependencyInjection\ContainerBuilder))
#5 /var/lib/homegear/admin-ui/vendor/symfony/http-kernel/Kernel.php(599): Symfony\Component\DependencyInjection\ContainerBuilder->compile()
#6 /var/lib/homegear/admin-ui/vendor/symfony/http-kernel/Kernel.php(136): Symfony\Component\HttpKernel\Kernel->initializeContainer()
#7 /var/lib/homegear/admin-ui/vendor/symfony/http-kernel/Kernel.php(196): Symfony\Component\HttpKernel\Kernel->boot()
#8 /var/lib/homegear/admin-ui/public/index.php(85): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#9 {main}
  thrown in /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php on line 54
03/20/24 09:18:29.626 Script engine (/var/lib/homegear/www/rpc/admin/index.php): PHP Fatal error:  Uncaught Symfony\Component\DependencyInjection\Exception\RuntimeException: Cannot autowire service "App\EventSubscriber\CheckServiceSubscriber": argument "$defaultLocale" of method "__construct()" has no type-hint, you should configure its value explicitly. in /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php:54
Stack trace:
#0 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php(82): Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue(Object(Symfony\Component\DependencyInjection\Definition), true)
#1 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php(32): Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->processValue(Array, true)
#2 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php(46): Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue(Array, true)
#3 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/Compiler.php(94): Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->process(Object(Symfony\Component\DependencyInjection\ContainerBuilder))
#4 /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/ContainerBuilder.php(762): Symfony\Component\DependencyInjection\Compiler\Compiler->compile(Object(Symfony\Component\DependencyInjection\ContainerBuilder))
#5 /var/lib/homegear/admin-ui/vendor/symfony/http-kernel/Kernel.php(599): Symfony\Component\DependencyInjection\ContainerBuilder->compile()
#6 /var/lib/homegear/admin-ui/vendor/symfony/http-kernel/Kernel.php(136): Symfony\Component\HttpKernel\Kernel->initializeContainer()
#7 /var/lib/homegear/admin-ui/vendor/symfony/http-kernel/Kernel.php(196): Symfony\Component\HttpKernel\Kernel->boot()
#8 /var/lib/homegear/admin-ui/public/index.php(85): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#9 {main}
  thrown in /var/lib/homegear/admin-ui/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php on line 54

Beim Aufruf der URL werde ich nach /admin/changepwd umgeletet, dann kommt im Browser ein Error 500. Fehlt da eventuell einfach noch irgendwo ein Paket?

MfG Volker
@Micha

Zusatzinfo: auch in einer richtigen VM mit Debian 11 tritt der Fehler direkt nach der Installation auf.

Hallo @vklaffehn
Ich hatte das leider auch schon vor einiger Zeit festgestellt: Admin UI after Nightly update not accessible
Leider keinerlei Reaktionen bis jetzt. Schade!
VG Carsten

Hallo Volker,

also ich hatte ja vor nicht allzulanger Zeit auch einen (LXC) Container mit aktuellem nightly unter Proxmox 7.4 aufgesetzt.
Testweise mit Debian Bullseye. In “Produktion” nutze ich jetzt aber das schlankere DietPI.
Mit beiden Betriebssystemen funktionierte die Installation inkl. Admin-UI problemlos.

Wenn ich mich recht erinnere musste ich das Passwort allerdings per CLI setzen.

Wie man im Screenshot erkennen kann, habe ich aber auch nur die notwendigen Module installiert !

VG
Henning

Hallo @Mainframe ,
Danke für Deinen Tipp! Ich habe gerade nochmal auf das aktuelle Nightly aktualisiert und dann via CLI das Passwort neu gesetzt (obwohl es keine Neuinstallation war und damit bereits ein User samt Passwort existierte). Leider hat es nicht geholfen und ich bekomme den gleichen Fehler wie Volker bzw. wie vorher.
Viele Grüße von
Carsten