Project

General

Profile

action #70189

openQA-common package broken on Tumbleweed

Added by MDoucha 5 months ago. Updated 5 months ago.

Status:
Rejected
Priority:
High
Assignee:
-
Category:
Support
Target version:
Start date:
2020-08-18
Due date:
% Done:

0%

Estimated time:
Difficulty:

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"

History

#1 Updated by mkittler 5 months 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 inlib/OpenQA/WebAPI/Plugin/Helpers.pm` are missing. That's really odd.

#2 Updated by okurz 5 months ago

  • Priority changed from Normal to High
  • Target version set to Ready

#3 Updated by MDoucha 5 months 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

#4 Updated by mkittler 5 months ago

  • Category changed from Concrete Bugs 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.

#5 Updated by MDoucha 5 months 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.

#6 Updated by MDoucha 5 months ago

  • Status changed from New to Rejected

Also available in: Atom PDF