action #70189
closedopenQA-common package broken on Tumbleweed
0%
Description
When I install the standard openQA-common
package on Tumbleweed and try to access the local webUI, I get error 502 and journalctl
shows Perl errors with traceback (see below). When I replace the /usr/share/openqa
directory with a symlink to my local copy of OpenQA git repo and restart the OpenQA services, everything works fine.
$ journalctl -u openqa-webuid -b0
srp 18 13:25:25 dhcp165.suse.cz systemd[1]: Started The openQA web UI.
srp 18 13:25:26 dhcp165.suse.cz openqa-webui-daemon[17382]: [2020-08-18 13:25:26.96072] [17382] [warn] Deprecated use of config key '[audit]: blacklist'. Use '[audit]: blocklist' instead
srp 18 13:25:27 dhcp165.suse.cz openqa-webui-daemon[17382]: Web application available at http://127.0.0.1:9526
srp 18 13:25:27 dhcp165.suse.cz openqa-webui-daemon[17382]: Web application available at http://[::1]:9526
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: String found where operator expected at template main/index.html.ep line 14, near "include_branding 'docbox'"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: (Do you need to predeclare include_branding?)
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: String found where operator expected at template main/index.html.ep line 17, near "include_branding 'sponsorbox'"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: (Do you need to predeclare include_branding?)
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: String found where operator expected at template layouts/error.html.ep line 35, near "icon_url 'logo-16.png'"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: (Do you need to predeclare icon_url?)
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: String found where operator expected at template layouts/error.html.ep line 36, near "icon_url 'logo.svg'"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: (Do you need to predeclare icon_url?)
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: String found where operator expected at template layouts/error.html.ep line 43, near "icon_url 'logo.svg'"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: (Do you need to predeclare icon_url?)
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: Mojo::Reactor::Poll: I/O watcher failed: syntax error at template layouts/error.html.ep line 35, near "icon_url 'logo-16.png'"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: syntax error at template layouts/error.html.ep line 36, near "icon_url 'logo.svg'"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: syntax error at template layouts/error.html.ep line 43, near "icon_url 'logo.svg'"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: Context:
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 30: } );
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 31: % end
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 32:
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 33: <link rel="icon"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 34: type="image/png" sizes="16x16"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 35: href="<%= icon_url 'logo-16.png' %>">
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 36: <link rel="icon" href="<%= icon_url 'logo.svg'%>" sizes="any" type="image/svg+xml">
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 37:
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 38: </head>
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 39: <body>
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: 40: <nav class="navbar navbar-static-top navbar-default">
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: Traceback (most recent call first):
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Template.pm", line 163, in "Mojo::Template"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Template.pm", line 173, in "Mojo::Template"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Plugin/EPLRenderer.pm", line 40, in "Mojolicious::Plugin::EPLRenderer"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Plugin/EPRenderer.pm", line 39, in "Mojolicious::Plugin::EPRenderer"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Renderer.pm", line 221, in "Mojolicious::Renderer"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Renderer.pm", line 110, in "Mojolicious::Renderer"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Controller.pm", line 152, in "Mojolicious::Controller"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Controller.pm", line 164, in "Mojolicious::Controller"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Plugin/DefaultHelpers.pm", line 123, in "Mojolicious::Plugin::DefaultHelpers"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Plugin/DefaultHelpers.pm", line 110, in "Mojolicious::Plugin::DefaultHelpers"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Plugin/DefaultHelpers.pm", line 50, in "Mojolicious::Plugin::DefaultHelpers"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Renderer.pm", line 70, in "Mojolicious::Renderer"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious.pm", line 203, in "Mojolicious"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Plugins.pm", line 15, in "Mojolicious::Plugins"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Plugins.pm", line 18, in "Mojolicious::Plugins"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious.pm", line 141, in "Mojolicious"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Server.pm", line 66, in "Mojo::Server"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/EventEmitter.pm", line 15, in "Mojo::EventEmitter"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Server/Daemon.pm", line 103, in "Mojo::Server::Daemon"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/EventEmitter.pm", line 15, in "Mojo::EventEmitter"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Transaction/HTTP.pm", line 60, in "Mojo::Transaction::HTTP"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Server/Daemon.pm", line 218, in "Mojo::Server::Daemon"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Server/Daemon.pm", line 199, in "Mojo::Server::Daemon"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/EventEmitter.pm", line 15, in "Mojo::EventEmitter"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/IOLoop/Stream.pm", line 109, in "Mojo::IOLoop::Stream"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/IOLoop/Stream.pm", line 57, in "Mojo::IOLoop::Stream"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Reactor/Poll.pm", line 146, in "Mojo::Reactor::Poll"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Reactor/Poll.pm", line 146, in "Mojo::Reactor::Poll"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Reactor/Poll.pm", line 60, in "Mojo::Reactor::Poll"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Reactor/Poll.pm", line 103, in "Mojo::Reactor::Poll"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/IOLoop.pm", line 133, in "Mojo::IOLoop"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Server/Prefork.pm", line 152, in "Mojo::Server::Prefork"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Server/Prefork.pm", line 93, in "Mojo::Server::Prefork"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojo/Server/Prefork.pm", line 78, in "Mojo::Server::Prefork"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Command/prefork.pm", line 31, in "Mojolicious::Command::prefork"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious/Commands.pm", line 57, in "Mojolicious::Commands"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/lib/perl5/vendor_perl/5.30.1/Mojolicious.pm", line 186, in "Mojolicious"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/share/openqa/script/../lib/OpenQA/WebAPI.pm", line 493, in "OpenQA::WebAPI"
srp 18 13:25:34 dhcp165.suse.cz openqa-webui-daemon[17397]: File "/usr/share/openqa/script/openqa", line 35, in "main"
Updated by mkittler about 4 years ago
I can not reproduce it here. I had the version from devel:openQA
installed but I've just downgraded to the latest version in TW. Here the log so you can see which versions I've tested:
sudo zypper in --oldpackage repo-oss:openQA-common
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...
Paketabhängigkeiten werden aufgelöst...
Problem: openQA-worker-4.6.1597738714.5b7427a7f-3069.1.noarch benötigt openQA-common = 4.6.1597738714.5b7427a7f, kann jedoch nicht zur Verfügung gestellt werden
Lösung 1: Folgende Aktionen werden ausgeführt:
Downgrade von openQA-worker-4.6.1597738714.5b7427a7f-3069.1.noarch zu openQA-worker-4.6.1597317239.6bef59ee4-1.1.noarch
openQA-worker-4.6.1597317239.6bef59ee4-1.1.noarch installieren (mit Anbieterwechsel)
obs://build.opensuse.org/devel:openQA --> openSUSE
Downgrade von openQA-client-4.6.1597738714.5b7427a7f-3069.1.noarch zu openQA-client-4.6.1597317239.6bef59ee4-1.1.noarch
openQA-client-4.6.1597317239.6bef59ee4-1.1.noarch installieren (mit Anbieterwechsel)
obs://build.opensuse.org/devel:openQA --> openSUSE
Downgrade von openQA-4.6.1597738714.5b7427a7f-3069.1.noarch zu openQA-4.6.1597317239.6bef59ee4-1.1.noarch
openQA-4.6.1597317239.6bef59ee4-1.1.noarch installieren (mit Anbieterwechsel)
obs://build.opensuse.org/devel:openQA --> openSUSE
Lösung 2: openQA-common-4.6.1597317239.6bef59ee4-1.1.noarch nicht installieren
Lösung 3: openQA-worker-4.6.1597738714.5b7427a7f-3069.1.noarch durch Ignorieren einiger Abhängigkeiten brechen
Wählen Sie aus den obigen Lösungen mittels Nummer oder brechen Sie (a)b [1/2/3/a/d/?] (a): 1
Abhängigkeiten werden aufgelöst...
Paketabhängigkeiten werden aufgelöst...
Die folgenden 4 Pakete werden durch eine ältere Version ausgetauscht:
openQA openQA-client openQA-common openQA-worker
Die folgenden 4 Pakete werden den Anbieter ändern:
openQA obs://build.opensuse.org/devel:openQA -> openSUSE
openQA-client obs://build.opensuse.org/devel:openQA -> openSUSE
openQA-common obs://build.opensuse.org/devel:openQA -> openSUSE
openQA-worker obs://build.opensuse.org/devel:openQA -> openSUSE
4 Pakete werden zurückgestuft, 4 Anbieterwechsel.
Gesamtgröße des Downloads: 2,9 MiB. Bereits im Cache gespeichert: 0 B. Nach dem Vorgang werden 8,7 KiB freigegeben.
Fortfahren? [j/n/v/...? zeigt alle Optionen] (j):
Paket openQA-common-4.6.1597317239.6bef59ee4-1.1.noarch abrufen (1/4), 319,6 KiB (341,0 KiB entpackt)
Abrufen: openQA-common-4.6.1597317239.6bef59ee4-1.1.noarch.rpm
[…]
(4/4) Installieren: openQA-worker-4.6.1597317239.6bef59ee4-1.1.noarch
[…][fertig]
After restarting the web UI everything looks normal and I could not see any errors within the log.
Since the error you're getting seems related to the branding: It reminds me of an issue we had some time ago on our production instance. Apparently the branding was loaded from somewhere under /etc/openqa/templates
instead from somewhere under /usr/share/openqa/…
. With some update the template under ´/etc/openqa/templatesceased to work together with the other code. But in your case it looks like the helpers defined in
lib/OpenQA/WebAPI/Plugin/Helpers.pm` are missing. That's really odd.
Updated by okurz about 4 years ago
- Priority changed from Normal to High
- Target version set to Ready
Updated by MDoucha about 4 years ago
include_branding
and icon_url
helpers are defined in /usr/share/openqa/lib/OpenQA/WebAPI/Plugin/Helpers.pm
as they should be (yes, I did check the file that came from the RPM, not my local git copy). File permissions on that path should allow reading for all users. I have no idea why it isn't loaded.
Enabled repositories on my system:
http://download.suse.de/ibs/QA:/Maintenance/openSUSE_Tumbleweed/
http://download.suse.de/ibs/SUSE:/CA/openSUSE_Tumbleweed/
http://download.opensuse.org/tumbleweed/repo/non-oss/
http://download.opensuse.org/debug/tumbleweed/repo/oss/
http://download.opensuse.org/source/tumbleweed/repo/oss/
http://download.opensuse.org/tumbleweed/repo/oss/
http://download.opensuse.org/update/tumbleweed/
https://download.opensuse.org/repositories/devel:/openQA/openSUSE_Tumbleweed
http://download.opensuse.org/tumbleweed/repo/oss/
http://packman.inode.at/suse/openSUSE_Tumbleweed/
Installed OpenQA packages (all from devel:openQA except for python3-openqa_review
):
openQA-4.6.1597738714.5b7427a7f-3069.1
openQA-bootstrap-4.6.1597738714.5b7427a7f-3069.1
openQA-client-4.6.1597738714.5b7427a7f-3069.1
openQA-common-4.6.1597738714.5b7427a7f-3069.1
openQA-doc-4.6.1597738714.5b7427a7f-3069.1
openQA-local-db-4.6.1597738714.5b7427a7f-3069.1
openQA-worker-4.6.1597738714.5b7427a7f-3069.1
python3-openqa_client-1.3.0-5.10
python3-openqa_review-1.20.2-1.1
Updated by mkittler about 4 years ago
- Category changed from Regressions/Crashes to Support
Ah, so you're actually talking about the packages in devel:openQA
. I've just switched back and locally it still works. I'm also using TW. As OSD has just been deployed and is not broken it also seems to work under Leap.
The repository http://download.suse.de/ibs/QA:/Maintenance/openSUSE_Tumbleweed/ looks suspicious because it contains an old version of Mojolicious. Be sure to have the latest version (as provided by TW) installed.
I'm switching the category to Support because it looks like a local problem.
Updated by MDoucha about 4 years ago
mkittler wrote:
The repository http://download.suse.de/ibs/QA:/Maintenance/openSUSE_Tumbleweed/ looks suspicious because it contains an old version of Mojolicious. Be sure to have the latest version (as provided by TW) installed.
If it were a Mojo version issue, swapping /etc/share/openqa
with a git checkout would not fix the issue.
I think I've found the problem. There's a bunch of files in /usr/share/openqa that aren't owned by any installed package:
/usr/share/openqa/lib/OpenQA/Script.pm
/usr/share/openqa/lib/OpenQA/Shared/Plugin/Helpers.pm
/usr/share/openqa/lib/OpenQA/WebAPI/Controller/LiveViewHandler.pm
/usr/share/openqa/lib/OpenQA/WebAPI/Controller/Session.pm
/usr/share/openqa/lib/OpenQA/WebAPI/Plugin/CSRF.pm
When I rename Shared/Plugin/Helpers.pm
to anything else, OpenQA web UI starts working again. Those file were probably left behind when I accidentally updated my system while /usr/share/openqa
was symlinked to my local Git copy.