Skip to content

Add checks for atomic update compatibility - #1396

Merged
danigm merged 1 commit into
rpm-software-management:mainfrom
mtravitzky:atomic-update-file-check
Oct 30, 2025
Merged

Add checks for atomic update compatibility#1396
danigm merged 1 commit into
rpm-software-management:mainfrom
mtravitzky:atomic-update-file-check

Conversation

@mtravitzky

Copy link
Copy Markdown
Contributor

This checks for packages installing into locations which are illegal for compatibility with atomic updates. E.g. a package which installs into /var/ would get corrupted after a rollback from a newer snapshot.

@danigm danigm left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good, can you review the flake8 formatting errors?

It could be also nice to have some specific tests for this, but I can add that in later PR.

@mtravitzky
mtravitzky force-pushed the atomic-update-file-check branch from 526b8ef to 5c1dce4 Compare October 22, 2025 12:57
@mtravitzky
mtravitzky requested a review from danigm October 22, 2025 13:02
@mtravitzky
mtravitzky force-pushed the atomic-update-file-check branch from 5c1dce4 to b885709 Compare October 22, 2025 13:22
@mtravitzky

Copy link
Copy Markdown
Contributor Author

Re-ran flake8 locally, should be fine now

@danigm

danigm commented Oct 27, 2025

Copy link
Copy Markdown
Member

@mtravitzky the check looks good, but maybe we should tweak the default configuration, at least for now. It's probably not wise to set the badness to 10000 immediately, it could produce a lot of broken packages in Factory once this change lands on the rpm package.

@Conan-Kudo

Copy link
Copy Markdown
Member

I'm not sure this check is valid, since it's completely valid to install things into /var, even in transactional update mode. Otherwise it's probably impossible to set up directory hierarchies and initialize data trees for persistent data required for applications and services.

@Vogtinator

Copy link
Copy Markdown

I'm not sure this check is valid, since it's completely valid to install things into /var, even in transactional update mode.

No, /var is not available inside the transactional environment. It's not part of the snapshotted part of the system.

Otherwise it's probably impossible to set up directory hierarchies and initialize data trees for persistent data required for applications and services.

Programs which need a specific hierarchy in /var can request creation through tmpfiles.d or create it on first start.

(For now there's still the "create-dirs-from-rpmdb" service which looks at the RPM database for directory creation, but it'll be removed in the future)

@mtravitzky

Copy link
Copy Markdown
Contributor Author

@mtravitzky the check looks good, but maybe we should tweak the default configuration, at least for now. It's probably not wise to set the badness to 10000 immediately, it could produce a lot of broken packages in Factory once this change lands on the rpm package.

What badness would you suggest? Something like 900?

@FilippoBonazziSUSE

Copy link
Copy Markdown
Contributor

In the logrotate check we first set it to 100 and then recently raised it to 10000 once we were sure that Factory was clean. It's an arbitrary value but I think it works fine as a reference.

@mtravitzky
mtravitzky force-pushed the atomic-update-file-check branch from b885709 to d79fe0b Compare October 29, 2025 10:16
@mtravitzky

Copy link
Copy Markdown
Contributor Author

In the logrotate check we first set it to 100 and then recently raised it to 10000 once we were sure that Factory was clean. It's an arbitrary value but I think it works fine as a reference.

Sounds good, so that's what I just did 🙂

@danigm danigm left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just fix the comment to match the config new value

Comment thread configs/openSUSE/scoring.toml
@danigm
danigm merged commit de1e415 into rpm-software-management:main Oct 30, 2025
12 checks passed
danigm added a commit that referenced this pull request Oct 30, 2025
danigm added a commit that referenced this pull request Oct 30, 2025
danigm added a commit that referenced this pull request Dec 17, 2025
danigm added a commit that referenced this pull request Dec 17, 2025
danigm added a commit that referenced this pull request Dec 17, 2025
danigm added a commit that referenced this pull request Feb 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants