Opened 2 years ago

Last modified 23 months ago

#13672 new bug

Package sets can get into a valid but un-activatable state.

Reported by: kallisti5 Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Kits/Package Kit Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

I've seen this issue a few times on long-running Haiku machines which get upgraded once every few weeks to the "current" package set.

It appears the latest activation set is invalid in some way which prevents it from being activated at boot. It appears Haiku is booting from an older "last valid" package set.

Attachments (3)

log.txt (1.8 MB) - added by kallisti5 2 years ago.
syslog from boot where older hrev is seen
syslog.txt (81.2 KB) - added by kallisti5 2 years ago.
syslog of machine booting to older hrev
packages.txt (28.1 KB) - added by kallisti5 2 years ago.
find . in system package directory.

Download all attachments as: .zip

Change History (10)

comment:1 Changed 2 years ago by kallisti5

Some observations:

  • If the package set *isn't* valid, pkgman update should pick up on the invalid state.
  • No obvious errors or messages are seen when activating the older package set.

I'll get more information from the VM tonight including which packages are in which state directories.

Changed 2 years ago by kallisti5

Attachment: log.txt added

syslog from boot where older hrev is seen

comment:2 Changed 2 years ago by kallisti5

Has a Patch: set

Changed 2 years ago by kallisti5

Attachment: syslog.txt added

syslog of machine booting to older hrev

Changed 2 years ago by kallisti5

Attachment: packages.txt added

find . in system package directory.

comment:3 Changed 2 years ago by kallisti5

please ignore log.txt. syslog.txt is the boot log.

comment:4 Changed 2 years ago by jessicah

That's not what appears to have happened, looking at packages.txt. I think what's happened is that pkgman has updated all haiku packages except for haiku/haiku_devel.hpkg, which are still at their original version.

Because all the other packages have upgraded, it probably looked like it did a full upgrade, when instead it did a partial upgrade.

# not upgraded
./haiku-r1~alpha4_pm_hrev51174-1-x86_64.hpkg
./haiku_devel-r1~alpha4_pm_hrev51174-1-x86_64.hpkg
# upgraded
./haiku_loader-r1~alpha4_pm_hrev51365-1-x86_64.hpkg
./makefile_engine-r1~alpha4_pm_hrev51365-1-any.hpkg

And only when you do a pkgman full-sync does it then a) force the latest haiku package to be installed, and b) install/upgrade/remove other packages that prevented the haiku package from being upgraded in the normal case. So it doesn't appear to be a bug, but it is non-obvious.

Perhaps what we need to do is have pkgman issue warnings for packages that have newer versions available for updating, but can't because of dependency issues, and suggest to run pkgman full-sync in this case.

comment:5 Changed 2 years ago by jessicah

Also, I should point out that at https://dev.haiku-os.org/attachment/ticket/13672/packages.txt#L110 you can see that it did the partial upgrade. Note that haiku_loader is in the list, but the other haiku packages are not, which supports my previous comment.

So it's not that it didn't apply, it's that pkgman never downloaded those newer packages at all due to unsatisfied/conflicting dependencies.

comment:6 Changed 2 years ago by kallisti5

What's rough is a full-sync never fixed it. Haiku started having weird network bugs and was never able to perform the full-sync. I eventually formatted + reinstalled that Haiku partition because I needed to get back to work. I noticed I had a newer haiku_loader and an older activated package set because the "Haiku" branding showed up via haiku_loader, then disappeared when the older package set was activated. (which was pretty interesting)

comment:7 Changed 23 months ago by pulkomandy

Has a Patch: unset
Note: See TracTickets for help on using tickets.