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

AptCache is marking extra packages for installation on Jammy #495

Open
mr-cal opened this issue Jul 13, 2023 · 1 comment
Open

AptCache is marking extra packages for installation on Jammy #495

mr-cal opened this issue Jul 13, 2023 · 1 comment
Labels
Bug Something isn't working

Comments

@mr-cal
Copy link
Contributor

mr-cal commented Jul 13, 2023

Bug Description

The unit test tests/unit/packages/test_apt_cache.py::TestAptStageCache::test_stage_packages is failing on the Ubuntu 22.04 Github runner. It marks two extra packages for installation - gcc-13-base and libgcc-s1.

It started failing between 2023-Jul-10 and 2023-Jul-12. There was an update to the Jammy runner in this timeframe.

The test was fixed with #494, but the root cause needs to be investigated.

To Reproduce

Run the Github CI workflow without the patch in #494.

part yaml

No response

Relevant log output

Run make test-units
pytest tests/unit
============================= test session starts ==============================
platform linux -- Python 3.10.12, pytest-7.4.0, pluggy-1.2.0
rootdir: /home/runner/work/craft-parts/craft-parts
configfile: pytest.ini
plugins: requests-mock-1.11.0, mock-3.11.1, hypothesis-6.81.1, cov-4.1.0, check-2.1.5
collected 1682 items

tests/unit/test_actions.py .....                                         [  0%]
tests/unit/test_callbacks.py ..................                          [  1%]
tests/unit/test_ctl.py ......                                            [  1%]
tests/unit/test_dirs.py ...                                              [  1%]
tests/unit/test_errors.py ...................................            [  3%]
tests/unit/test_features.py ...                                          [  4%]
tests/unit/test_infos.py ............................................... [  6%]
......................................................                   [ 10%]
tests/unit/test_lifecycle_manager.py ...........................         [ 11%]
tests/unit/test_parts.py ............................................... [ 14%]
...............                                                          [ 15%]
tests/unit/test_permissions.py .......                                   [ 15%]
tests/unit/test_sequencer.py ...............                             [ 16%]
tests/unit/test_steps.py ...............                                 [ 17%]
tests/unit/test_xattrs.py ......                                         [ 18%]
tests/unit/executor/test_collisions.py ........                          [ 18%]
tests/unit/executor/test_environment.py ..............                   [ 19%]
tests/unit/executor/test_executor.py ...........                         [ 19%]
tests/unit/executor/test_filesets.py ............................        [ 21%]
tests/unit/executor/test_migration.py .................                  [ 22%]
tests/unit/executor/test_organize.py ..........                          [ 23%]
tests/unit/executor/test_part_handler.py ............................... [ 25%]
.............................                                            [ 26%]
tests/unit/executor/test_replace_attr.py ................                [ 27%]
tests/unit/executor/test_step_handler.py ........                        [ 28%]
tests/unit/features/test_parts.py ...                                    [ 28%]
tests/unit/features/overlay/test_executor_environment.py ..............  [ 29%]
tests/unit/features/overlay/test_executor_part_handler.py .............. [ 30%]
........................................................................ [ 34%]
.....                                                                    [ 34%]
tests/unit/features/overlay/test_feature.py .                            [ 34%]
tests/unit/features/overlay/test_lifecycle_manager.py .................. [ 35%]
..........                                                               [ 36%]
tests/unit/features/overlay/test_parts.py .............................. [ 38%]
........................................                                 [ 40%]
tests/unit/features/overlay/test_sequencer.py .......................... [ 42%]
...                                                                      [ 42%]
tests/unit/features/overlay/test_steps.py .................              [ 43%]
tests/unit/features/partitions/test_lifecycle_manager.py ............... [ 44%]
.....                                                                    [ 44%]
tests/unit/features/partitions/test_parts.py ........................... [ 46%]
.....................................                                    [ 48%]
tests/unit/overlays/test_chroot.py ......                                [ 48%]
tests/unit/overlays/test_errors.py ...                                   [ 48%]
tests/unit/overlays/test_layers.py ...........................           [ 50%]
tests/unit/overlays/test_overlay_fs.py ...................               [ 51%]
tests/unit/overlays/test_overlay_manager.py ...............              [ 52%]
tests/unit/overlays/test_overlays.py ........................            [ 53%]
tests/unit/packages/test_apt_cache.py F...........                       [ 54%]
tests/unit/packages/test_base.py .........                               [ 55%]
tests/unit/packages/test_chisel.py ....                                  [ 55%]
tests/unit/packages/test_deb.py .......................................  [ 57%]
tests/unit/packages/test_deb_package.py .....                            [ 57%]
tests/unit/packages/test_dnf.py ........................                 [ 59%]
tests/unit/packages/test_errors.py .................                     [ 60%]
tests/unit/packages/test_normalize.py .................................. [ 62%]
....                                                                     [ 62%]
tests/unit/packages/test_platform.py ................                    [ 63%]
tests/unit/packages/test_snaps.py ...................................... [ 65%]
...                                                                      [ 66%]
tests/unit/packages/test_yum.py ........................                 [ 67%]
tests/unit/plugins/test_ant_plugin.py ...........                        [ 68%]
tests/unit/plugins/test_autotools_plugin.py .......                      [ 68%]
tests/unit/plugins/test_base.py ...                                      [ 68%]
tests/unit/plugins/test_cmake_plugin.py ..........                       [ 69%]
tests/unit/plugins/test_dotnet_plugin.py .............                   [ 70%]
tests/unit/plugins/test_dump_plugin.py .....                             [ 70%]
tests/unit/plugins/test_go_plugin.py ...............                     [ 71%]
tests/unit/plugins/test_make_plugin.py .......                           [ 71%]
tests/unit/plugins/test_maven_plugin.py ...................              [ 72%]
tests/unit/plugins/test_meson_plugin.py ................                 [ 73%]
tests/unit/plugins/test_nil_plugin.py ....                               [ 74%]
tests/unit/plugins/test_npm_plugin.py .............................      [ 75%]
tests/unit/plugins/test_plugins.py ................                      [ 76%]
tests/unit/plugins/test_properties.py ...                                [ 76%]
tests/unit/plugins/test_python_plugin.py ...........                     [ 77%]
tests/unit/plugins/test_rust_plugin.py .......................           [ 78%]
tests/unit/plugins/test_scons_plugin.py ...........                      [ 79%]
tests/unit/plugins/test_validator.py .....                               [ 79%]
tests/unit/sources/test_base.py .............                            [ 80%]
tests/unit/sources/test_cache.py ....                                    [ 80%]
tests/unit/sources/test_checksum.py .............                        [ 81%]
tests/unit/sources/test_deb_source.py .                                  [ 81%]
tests/unit/sources/test_errors.py ..........                             [ 82%]
tests/unit/sources/test_file_source.py ..                                [ 82%]
tests/unit/sources/test_git_source.py .................................. [ 84%]
.......                                                                  [ 84%]
tests/unit/sources/test_local_source.py ..................               [ 85%]
tests/unit/sources/test_rpm_source.py ............                       [ 86%]
tests/unit/sources/test_snap_source.py ..........                        [ 87%]
tests/unit/sources/test_sources.py .....................                 [ 88%]
tests/unit/sources/test_tar_source.py .....                              [ 88%]
tests/unit/sources/test_zip_source.py ...                                [ 88%]
tests/unit/state_manager/test_build_state.py ........                    [ 89%]
tests/unit/state_manager/test_prime_state.py .......                     [ 89%]
tests/unit/state_manager/test_pull_state.py .......                      [ 90%]
tests/unit/state_manager/test_reports.py ...............                 [ 91%]
tests/unit/state_manager/test_stage_state.py ........                    [ 91%]
tests/unit/state_manager/test_state_manager.py ......................... [ 93%]
....                                                                     [ 93%]
tests/unit/state_manager/test_states.py .....................            [ 94%]
tests/unit/state_manager/test_step_state.py .....................        [ 95%]
tests/unit/utils/test_file_utils.py ..................                   [ 96%]
tests/unit/utils/test_formatting_utils.py .........                      [ 97%]
tests/unit/utils/test_os_utils.py ..................................     [ 99%]
tests/unit/utils/test_url_utils.py .........                             [100%]

=================================== FAILURES ===================================
____________________ TestAptStageCache.test_stage_packages _____________________

self = <tests.unit.packages.test_apt_cache.TestAptStageCache object at 0x7f37f84c47f0>
tmpdir = local('/tmp/pytest-of-runner/pytest-0/test_stage_packages0')

    def test_stage_packages(self, tmpdir):
        fetch_dir_path = Path(tmpdir, "debs")
        fetch_dir_path.mkdir(exist_ok=True, parents=True)
        stage_cache = Path(tmpdir, "cache")
        stage_cache.mkdir(exist_ok=True, parents=True)
    
        AptCache.configure_apt("test_stage_packages")
        with AptCache(stage_cache=stage_cache) as cache:
            package_names = {"pciutils"}
            filtered_names = {
                "base-files",
                "libc6",
                "libkmod2",
                "libudev1",
                "zlib1g",
                # dependencies in focal
                "dpkg",
                "libacl1",
                "libbz2-1.0",
                "libcrypt1",
                "liblzma5",
                "libpcre2-8-0",
                "libselinux1",
                "libzstd1",
                "pci.ids",
                "perl-base",
                "tar",
            }
    
            cache.mark_packages(package_names)
            cache.unmark_packages(unmark_names=filtered_names)
    
            marked_packages = cache.get_packages_marked_for_installation()
>           assert sorted([name for name, _ in marked_packages]) == [
                "libpci3",
                "pciutils",
            ]
E           AssertionError: assert ['gcc-13-base...', 'pciutils'] == ['libpci3', 'pciutils']
E             At index 0 diff: 'gcc-13-base' != 'libpci3'
E             Left contains 2 more items, first extra item: 'libpci3'
E             Full diff:
E             - ['libpci3', 'pciutils']
E             + ['gcc-13-base', 'libgcc-s1', 'libpci3', 'pciutils']

tests/unit/packages/test_apt_cache.py:72: AssertionError
=========================== short test summary info ============================
FAILED tests/unit/packages/test_apt_cache.py::TestAptStageCache::test_stage_packages - AssertionError: assert ['gcc-13-base...', 'pciutils'] == ['libpci3', 'pciutils']
  At index 0 diff: 'gcc-13-base' != 'libpci3'
  Left contains 2 more items, first extra item: 'libpci3'
  Full diff:
  - ['libpci3', 'pciutils']
  + ['gcc-13-base', 'libgcc-s1', 'libpci3', 'pciutils']
================== 1 failed, 1681 passed in 61.47s (0:01:01) ===================
make: *** [Makefile:109: test-units] Error 1
Error: Process completed with exit code 2.
mr-cal added a commit that referenced this issue Jul 13, 2023
New packages are marked for installation on Jammy - see #495

Signed-off-by: Callahan Kovacs <[email protected]>
lengau pushed a commit that referenced this issue Aug 3, 2023
New packages are marked for installation on Jammy - see #495

Signed-off-by: Callahan Kovacs <[email protected]>
(cherry picked from commit dcdab59)
lengau pushed a commit that referenced this issue Aug 3, 2023
New packages are marked for installation on Jammy - see #495

Signed-off-by: Callahan Kovacs <[email protected]>
(cherry picked from commit dcdab59)
cmatsuoka pushed a commit that referenced this issue Aug 3, 2023
New packages are marked for installation on Jammy - see #495

Signed-off-by: Callahan Kovacs <[email protected]>
(cherry picked from commit dcdab59)
lengau added a commit that referenced this issue Aug 10, 2023
New packages are marked for installation on Jammy - see #495

Signed-off-by: Callahan Kovacs <[email protected]>
(cherry picked from commit dcdab59)
cmatsuoka pushed a commit that referenced this issue Aug 15, 2023
)

New packages are marked for installation on Jammy - see #495

Signed-off-by: Callahan Kovacs <[email protected]>
(cherry picked from commit dcdab59)
@lengau lengau added the Bug Something isn't working label May 17, 2024
Copy link

Thank you for reporting us your feedback!

The internal ticket has been created: https://warthogs.atlassian.net/browse/CRAFT-2957.

This message was autogenerated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants