cockpit-project / cockpit

Cockpit is a web-based graphical interface for servers.
http://www.cockpit-project.org/
GNU Lesser General Public License v2.1
11.2k stars 1.11k forks source link

PCPMetrics configuration dialog will never show firewalld errors #21093

Open jelly opened 3 weeks ago

jelly commented 3 weeks ago

Explain what happens

The PCP configuration dialog has support for enabling pmproxy this requires firewalld rules to be enabled and packages to be installed.

When packages need to be installed the config dialog is closed, and the install_dialog component is shown to ask if the user wants to install the redis package. When agreeing redis is installed, then firewalld rules enabled but the dialog itself is already closed so any errors won't be shown:

https://github.com/cockpit-project/cockpit/blob/2ba803af0119b100dfa625e143cba8d5b57a949c/pkg/metrics/metrics.jsx#L1471

Note this also happens when redis was pre-installed but pmproxy not enabled.

This issue came to light in https://github.com/cockpit-project/cockpit/pull/21075 where we stopped re-logging in to install PCP support. The test would fail as the previous dialog which installed pcp was still running while we opened the pcp config dialog again to enable pmproxy thus closing the dialog.

This is impossible to fix as there is no way to wait on the dialog to "finish" it's operation in the test as when enabling pmlogger no firewall rule is enabled.

But the big issue here is that we don't see firewalld errors and that this is racy.

Version of Cockpit

No response

Where is the problem in Cockpit?

None

Server operating system

None

Server operating system version

No response

What browsers are you using?

No response

System log

No response