Opened 5 years ago

Closed 4 months ago

Last modified 4 months ago

#11035 closed bug (no change required)

Upgrading Haiku using pkgman fails with "directory not empty" (after package format change)

Reported by: waddlesplash Owned by: bonefish
Priority: normal Milestone: R1
Component: Servers/package_daemon Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

This has been happening every time for me. Users on the forums report it too: http://www.haiku-os.org/community/forum/nightly_images_0:

Update to hrev47489 worked, but the system will not update to hrev47493 or ...94.

A syslog during which I did one of these failed updates is attached.

Attachments (1)

syslog (97.2 KB ) - added by waddlesplash 5 years ago.

Download all attachments as: .zip

Change History (11)

by waddlesplash, 5 years ago

Attachment: syslog added

comment:1 by ttcoder, 5 years ago

Cc: degea@… added

Also see the 'Edit' part of this comment, seems that you can bridge the gap to 47490 by installing it from scratch as a nightly build, and then subsequent pkgman up calls (from that more recent nightly build) will work normally.

This might be just a one-off freak occurence, but gonna follow this in case there's a chance this occurs again in a future hrev..

comment:2 by waddlesplash, 5 years ago

Priority: blockernormal

If that indeed works and multiple people can confirm it, this is no longer a release blocker. It would be nice to figure out why it happened, though.

comment:3 by bonefish, 5 years ago

hrev47490 changes the HPKG format for the no-compression case. It's a backward compatible change, but it isn't forward compatible. The boot loader package uses no compression and thus the new packages cannot be read by an old Haiku, hence the update procedure fails. I didn't see this implication.

To bridge the gap, at least in theory it should be possible to update every package but the boot loader, then reboot and complete the update.

Not getting a useful error message (not even printing anything in the syslog) is not a good situation, though. Leaving the ticket open to track that. The failed update isn't anything that can be fixed.

comment:4 by stippi, 5 years ago

Would this be a duplicate of #10959?

comment:5 by waddlesplash, 5 years ago

Yes, it would; although this ticket has more info on why the problem happened so it may be a good idea to close that one, not this one.

comment:6 by bonefish, 5 years ago

No, these tickets aren't duplicates. In comment:3 and comment:5:ticket:10959 I mentioned for what reason I left the tickets open.

comment:7 by pulkomandy, 5 years ago

Milestone: R1/alpha5R1/beta1

comment:8 by pulkomandy, 5 years ago

Milestone: R1/beta1R1
Summary: Upgrading Haiku using pkgman fails with "directory not empty"Upgrading Haiku using pkgman fails with "directory not empty" (after package format change)

Does not need to be in beta1 anymore.

comment:9 by waddlesplash, 4 months ago

Resolution: no change required
Status: newclosed

I don't really think there's anything left to do here. If we want to change the package format in the future, we will just have to stagger it (i.e. introduce new version of the package kit which supports it, force everyone to upgrade to that, then change the package formats.) At least this is how other OSes and distributions do it.

comment:10 by ttcoder, 4 months ago

Cc: degea@… removed
Note: See TracTickets for help on using tickets.