Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"qubes-gui-daemon-4.1.15 is already installed" when attempting to update to qubes-gui-daemon-4.1.18 #6979

Open
ydirson opened this issue Oct 16, 2021 · 12 comments
Labels
affects-4.1 This issue affects Qubes OS 4.1. affects-4.2 This issue affects Qubes OS 4.2. C: updates needs diagnosis Requires technical diagnosis from developer. Replace with "diagnosed" or remove if otherwise closed. P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: bug Type: bug report. A problem or defect resulting in unintended behavior in something that exists.

Comments

@ydirson
Copy link

ydirson commented Oct 16, 2021

After reading QSB-073 I decided to have a try at installing this update.

First, the links for "how to update" are plain-text at the end of a scrolling-area and would benefit from being href'd somewhere more easily accessible.

Then launching qubes-dom0-update --enablerepo=qubes-dom0-security-testing qubes-gui-daemon, in the terminal that briefly opens I have the time to glimpse the 4.1.18 version number, but then...

[root@dom0 ~]# qubes-dom0-update --enablerepo=qubes-dom0-security-testing qubes-gui-daemon
Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...
Qubes OS Repository for Dom0                                                                                                                                  2.9 MB/s | 3.0 kB     00:00    
Qubes OS Repository for Dom0                                                                                                                                  2.9 MB/s |  28 kB     00:00    
Package qubes-gui-daemon-4.1.15-1.fc32.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

I'm not yet sure why --console --show-output is not the default with qubes-dom0-update, it seems to me that information it shows should just be always shown, and it does not seem to be available in any log to get after the fact.

So here we go for another try, which only shows that indeed the previous run did download the RPM. But with the missing information from that run I'd say we can't really be sure the original output was the same we have how.

[root@dom0 ~]# qubes-dom0-update --console --show-output --enablerepo=qubes-dom0-security-testing qubes-gui-daemon
Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...
Warning: Enforcing GPG signature check globally as per active RPM security policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)
Fedora 32 - x86_64 - Updates                     60 kB/s |  21 kB     00:00    
Fedora 32 - x86_64                              372 kB/s |  23 kB     00:00    
Qubes Dom0 Repository (updates)                  39 kB/s | 2.7 kB     00:00    
Qubes Dom0 Repository (security-testing)         37 kB/s | 2.9 kB     00:00    
Qubes Templates repository                       41 kB/s | 2.7 kB     00:00    
Package qubes-gui-daemon-4.1.15-1.fc32.x86_64 is already installed.
Dependencies resolved.
================================================================================
 Package           Arch    Version           Repository                    Size
================================================================================
Upgrading:
 qubes-gui-daemon  x86_64  4.1.18-1.fc32     qubes-dom0-security-testing   74 k

Transaction Summary
================================================================================
Upgrade  1 Package

Total size: 74 k
DNF will only download packages for the transaction.
Downloading Packages:
[SKIPPED] qubes-gui-daemon-4.1.18-1.fc32.x86_64.rpm: Already downloaded        
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Qubes OS Repository for Dom0                                                                                                                                  2.9 MB/s | 3.0 kB     00:00    
Qubes OS Repository for Dom0                                                                                                                                  2.8 MB/s |  28 kB     00:00    
Package qubes-gui-daemon-4.1.15-1.fc32.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

This one in fact looks much like #4792, and indeed --action=update at last allows to install the update.

@ydirson ydirson added P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: bug Type: bug report. A problem or defect resulting in unintended behavior in something that exists. labels Oct 16, 2021
@unman
Copy link
Member

unman commented Oct 16, 2021 via email

@ydirson
Copy link
Author

ydirson commented Oct 16, 2021

No, but the update run I launched just prior (only to check if 4.1.18 would come that way, and decided to decline the global update for now) would have included 4.1.17.

But I did not (and still do not) see any pending dom0 update in the taskbar widget, whereas qubes-dom0-update still would update a bunch of packages when I run it.

@andrewdavidwong
Copy link
Member

andrewdavidwong commented Oct 16, 2021

I'm having trouble understanding this report.

First of all, it seems to me that the main problem is that it's trying to install qubes-gui-daemon-4.1.18 (which sounds like the one you want, which implies that you're on 4.1), then failing with the reason that qubes-gui-daemon-4.1.15 is already installed (18 vs. 15). Strangely, though, no one has explicitly said that this is a problem, let alone the main problem. So, is this the main problem? If not, why not?

Secondly, It's unclear to me how this is a UX issue, as it sounds more like some kind of internal bug in the update code. You mention some other possibly-UX-related things in passing, but those should be filed as separate issues, since every issue must be about a single, actionable thing. (I'll update the issue title accordingly.)

Finally, there seems to be an implicit assumption that a big problem here (possibly even the main problem) is that of #4792, namely that the desired package is being downloaded but not installed. But this is even more puzzling, for two reasons:

  1. If the system thinks that the package being downloaded is already installed, then this is expected behavior. The fault lies in the system failing to recognize that the package being downloaded is newer than the one already installed, not in the general policy of refraining from reinstalling packages that are already installed (in the absence of some kind of --reinstall option).
  2. I forgot the second reason while typing out the first one. 🙃

And yet I was able to install the update without --action=update.

As was I.

I have security-testing enabled by default

Same here, FWIW.

No, but the update run I launched just prior (only to check if 4.1.18 would come that way, and decided to decline the global update for now)

I wonder if declining it somehow messed up the internal state of the system and resulted in the aforementioned confusion.

But I did not (and still do not) see any pending dom0 update in the taskbar widget, whereas qubes-dom0-update still would update a bunch of packages when I run it.

That might have to do with the frequency of update checking and which qube(s) are performing the check (e.g., if not running or lacking internet access, there would be no successful check).

@andrewdavidwong andrewdavidwong changed the title UX issue installing from security-testing "qubes-gui-daemon-4.1.15 is already installed" when attempting to update to qubes-gui-daemon-4.1.18 Oct 16, 2021
@andrewdavidwong andrewdavidwong added C: updates needs diagnosis Requires technical diagnosis from developer. Replace with "diagnosed" or remove if otherwise closed. labels Oct 16, 2021
@andrewdavidwong andrewdavidwong added this to the Release 4.1 milestone Oct 16, 2021
@DemiMarie
Copy link

I wonder if this is a consequence of the update code encountering an error and failing to retrieve the updates.

@ydirson
Copy link
Author

ydirson commented Oct 17, 2021

It's unclear to me how this is a UX issue, as it sounds more like some kind of internal bug in the update code.

I think the bug in the update code is already handled as #4792, my point for this one (although I probably diluted it too much with the update problem) is the necessity to add --console --show-output to be able to understand what is going on. In fact, I cannot see a use for not passing them.

@DemiMarie
Copy link

@ydirson It increases dom0’s attack surface, as it displays untrusted text (from the UpdateVM) in a dom0 terminal.

@marmarek
Copy link
Member

This one in fact looks much like #4792, and indeed --action=update at last allows to install the update.

Kind of yes. Specifically: when you want to update specific package (you give package name on the command line), you need to add also --action=update, as the default action if package name is given is to install (some version) of that package only.

@ydirson
Copy link
Author

ydirson commented Oct 18, 2021

It increases dom0’s attack surface, as it displays untrusted text (from the UpdateVM) in a dom0 terminal.

Then it seems to me that at least we should make sure the window never closes without user interaction, or maybe, if dnf is not predictable enough, have the logs recorded in the download vm and point the user to this log.

@ydirson
Copy link
Author

ydirson commented Oct 18, 2021

Kind of yes. Specifically: when you want to update specific package (you give package name on the command line), you need to add also --action=update, as the default action if package name is given is to install (some version) of that package only.

OK, so maybe we should have this spelled out in the docs in the docs pointed to by a QSB ?

@DemiMarie
Copy link

Kind of yes. Specifically: when you want to update specific package (you give package name on the command line), you need to add also --action=update, as the default action if package name is given is to install (some version) of that package only.

OK, so maybe we should have this spelled out in the docs in the docs pointed to by a QSB ?

That is probably a good idea.

@andrewdavidwong andrewdavidwong added the affects-4.1 This issue affects Qubes OS 4.1. label Aug 8, 2023
@andrewdavidwong andrewdavidwong removed this from the Release 4.1 updates milestone Aug 13, 2023
@andrewdavidwong andrewdavidwong added the eol-4.1 Closed because Qubes 4.1 has reached end-of-life (EOL) label Dec 7, 2024

This comment was marked as outdated.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Dec 7, 2024
@andrewdavidwong andrewdavidwong removed the needs diagnosis Requires technical diagnosis from developer. Replace with "diagnosed" or remove if otherwise closed. label Dec 7, 2024
@ydirson
Copy link
Author

ydirson commented Dec 10, 2024

I'm not really sure where we stand on that ticket, but "only affects 4.1" should clearly not be a suitable reason to close it - I indeed had to search github to get here and add the --action=update on 4.2.

IMHO there is really a UI issue to be dealt with.

@andrewdavidwong andrewdavidwong added needs diagnosis Requires technical diagnosis from developer. Replace with "diagnosed" or remove if otherwise closed. affects-4.2 This issue affects Qubes OS 4.2. and removed eol-4.1 Closed because Qubes 4.1 has reached end-of-life (EOL) labels Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects-4.1 This issue affects Qubes OS 4.1. affects-4.2 This issue affects Qubes OS 4.2. C: updates needs diagnosis Requires technical diagnosis from developer. Replace with "diagnosed" or remove if otherwise closed. P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: bug Type: bug report. A problem or defect resulting in unintended behavior in something that exists.
Projects
None yet
Development

No branches or pull requests

5 participants