[Bug 1182544] New: transactional-update fails when self-updating from old snapshot
https://bugzilla.suse.com/show_bug.cgi?id=1182544 Bug ID: 1182544 Summary: transactional-update fails when self-updating from old snapshot Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: Other URL: https://openqa.opensuse.org/tests/1638401/modules/imag e_checks/steps/13 OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: MicroOS Assignee: iforster@suse.com Reporter: fvogt@suse.com QA Contact: qa-bugs@suse.de CC: dimstar@opensuse.org, kubic-bugs@opensuse.org Found By: openQA Blocker: Yes This test boots into an old MicroOS image. It fails because combustion failed to run, which is caused by transactional-updates self update: Feb 21 05:49:26.233585 localhost combustion[542]: New version found - updating... Feb 21 05:49:26.374352 localhost combustion[703]: Loading repository data... Feb 21 05:49:26.584979 localhost combustion[703]: Reading installed packages... Feb 21 05:49:26.884304 localhost combustion[703]: Retrieving package transactional-update-3.1.4-1.1.x86_64 (1/1), 54.6 KiB ( 73.1 KiB unpacked) Feb 21 05:49:27.121761 localhost combustion[703]: .........done] Feb 21 05:49:27.306095 localhost combustion[742]: Loading repository data... Feb 21 05:49:27.517683 localhost combustion[742]: Reading installed packages... Feb 21 05:49:27.771859 localhost combustion[742]: Retrieving package libtukit0-3.1.4-1.1.x86_64 (1/2), 128.4 KiB (283.7 KiB unpacked) Feb 21 05:49:28.000220 localhost combustion[742]: ..........done] Feb 21 05:49:28.002964 localhost combustion[742]: Retrieving package tukit-3.1.4-1.1.x86_64 (2/2), 55.9 KiB ( 85.2 KiB unpacked) Feb 21 05:49:28.148466 localhost combustion[742]: ......done] Feb 21 05:49:28.209932 localhost combustion[741]: /tmp/transactional-update.a1AVPfXW9o/usr/sbin/tukit: /lib64/libselinux.so.1: no version information available (required by /tmp/transactional-update.a1AVPfXW9o/usr/lib64/libtukit.so.0) Feb 21 05:49:28.215355 localhost combustion[542]: transactional-update 3.1.4 started Feb 21 05:49:28.217252 localhost combustion[542]: Options: shell Feb 21 05:49:28.271971 localhost combustion[542]: Separate /var detected. Feb 21 05:49:28.320210 localhost combustion[741]: tukit: /lib64/libselinux.so.1: no version information available (required by /tmp/transactional-update.a1AVPfXW9o/usr/lib64/libtukit.so.0) Feb 21 05:49:28.328102 localhost combustion[741]: Failure (dbus fatal exception). ... Feb 21 05:49:29.012290 localhost combustion[741]: ERROR: filesystem error: cannot copy: File exists [/run/netconfig] [/.snapshots/2/snapshot/run/netconfig] Feb 21 05:49:29.013155 localhost combustion[542]: Opening chroot in snapshot , continue with 'exit' Feb 21 05:49:29.013981 localhost combustion[877]: tukit: /lib64/libselinux.so.1: no version information available (required by /tmp/transactional-update.a1AVPfXW9o/usr/lib64/libtukit.so.0) Feb 21 05:49:29.015824 localhost combustion[877]: 2021-02-21 05:49:29 tukit 3.1.4 started ... ## Observation openQA test in scenario microos-Tumbleweed-MicroOS-Image-x86_64-microos-old2microosnext@64bit fails in [image_checks](https://openqa.opensuse.org/tests/1638401/modules/image_checks/steps/13) ## Test suite description Boot from existing, static MicroOS image and transactional-update dup to snapshot under test ## Reproducible Fails since (at least) Build [20210219](https://openqa.opensuse.org/tests/1636750) ## Expected result Last good: [20210218](https://openqa.opensuse.org/tests/1635223) (or more recent) ## Further details Always latest result in this scenario: [latest](https://openqa.opensuse.org/tests/latest?arch=x86_64&distri=microos&flavor=MicroOS-Image&machine=64bit&test=microos-old2microosnext&version=Tumbleweed) -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1182544
https://bugzilla.suse.com/show_bug.cgi?id=1182544#c4
--- Comment #4 from Fabian Vogt
The problem occurs when /run/netconfig is part of the root file system
This is actually not the full story! It's true that this particular error happens because there's already a different /etc/resolv.conf inside the "virgin" snapshot. I found that even the latest images also have content inside /run (reported as https://github.com/OSInside/kiwi/issues/1744) and tukit actually runs fine on old images outside of combustion. Question is: why? It clearly shouldn't work: When tukit copies /run/netconfig/, it doesn't override existing files, but in those cases it doesn't complain and abort either. Debugging actually showed that there's a bug in libstdc++'s implementation of std::filesystem::copy, which I reported as https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99290. Combustion avoids this bug with a 100% chance of "success" because when networking is enabled (the default on old images), it creates /run/netconfig/ with just resolv.conf inside, so there's no other item to copy and the error is returned properly. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1182544
https://bugzilla.suse.com/show_bug.cgi?id=1182544#c6
--- Comment #6 from OBSbugzilla Bot
https://bugzilla.suse.com/show_bug.cgi?id=1182544
https://bugzilla.suse.com/show_bug.cgi?id=1182544#c8
--- Comment #8 from Oliver Kurz
https://bugzilla.suse.com/show_bug.cgi?id=1182544
https://bugzilla.suse.com/show_bug.cgi?id=1182544#c11
--- Comment #11 from Swamp Workflow Management
participants (1)
-
bugzilla_noreply@suse.com