Skip to content

QA:Testcase Media File Conflicts

Associated release criterion

This test case is associated with the Release_Criteria#no-broken-packages release criterion. If you are doing release validation testing, a failure of this test case may be a breach of that release criterion.

Description

This testcase will verify that the offline repository included on release blocking images will not contain any file conflicts between packages without explicit Conflicts: tag in the package metadata.

Setup

  1. Obtain access to an environment with the dnf and python3 commands.
  2. Download the ISO to be tested to that machine.
  3. Download the potential_conflict.py script provided by Rocky Linux Testing Team.

How to test

  1. Mount the ISO to be tested locally.
    • Example:
      mount -o loop Rocky-8.5-x86_64-minimal.iso /media
  2. Determine the path to the repodata directory(ies) on the ISO.
    • Example:
      find /media -name repodata
  3. Run the potential_conflict.py script on the mounted ISO.
    • Example:
      python3 /vagrant/scripts/potential_conflict.py --repofrompath BaseOS,/media/BaseOS --repoid BaseOS --repofrompath Minimal,/media/Minimal --repoid Minimal
  4. Unmount the ISO.
    • Example:
      umount /media

Expected Results

  1. The potential_conflict.py script does not report any packages with non-declared conflicts.

Sample Output

$ sudo mount -o loop Rocky-8.5-aarch64-minimal.iso /media
mount: /media: WARNING: device write-protected, mounted read-only.

$ python3 /vagrant/scripts/potential_conflict.py \
  --repofrompath BaseOS,/media/BaseOS --repoid BaseOS \
  --repofrompath Minimal,/media/Minimal --repoid Minimal

Added BaseOS repo from /media/BaseOS
Added Minimal repo from /media/Minimal
Getting complete filelist for:
file:///media/BaseOS
file:///media/Minimal
168374 files found.

Looking for duplicated filenames:
524 duplicates found.

Doing more advanced checks to see if these are real conflicts:
 10% complete (    52/   524,  1139/sec),    0 found - eta 0:00:00
 35% complete (   182/   524,  1146/sec),    0 found - eta 0:00:00
 45% complete (   234/   524,  1818/sec),    0 found - eta 0:00:00
 50% complete (   260/   524, 592673/sec),    0 found - eta 0:00:00
 55% complete (   286/   524, 778942/sec),    0 found - eta 0:00:00
 60% complete (   312/   524, 801852/sec),    0 found - eta 0:00:00
 79% complete (   416/   524,   234/sec),    0 found - eta 0:00:00
 84% complete (   442/   524,   902/sec),    0 found - eta 0:00:00
 89% complete (   468/   524,   935/sec),    0 found - eta 0:00:00
 94% complete (   494/   524,  1616/sec),    0 found - eta 0:00:00
 99% complete (   520/   524,  1114/sec),    0 found - eta 0:00:00

0 file conflicts found.
0 package conflicts found.

== Package conflicts ==

== File conflicts, listed by conflicting packages ==

$ sudo umount /media
$ sudo mount -o loop Rocky-8.5-x86_64-dvd1.iso /media
mount: /media: WARNING: device write-protected, mounted read-only.


$ python3 /vagrant/scripts/potential_conflict.py \
  --repofrompath AppStream,/media/AppStream --repoid AppStream \
  --repofrompath BaseOS,/media/BaseOS --repoid BaseOS

  Added AppStream repo from /media/AppStream
  Added BaseOS repo from /media/BaseOS
  Getting complete filelist for:
  file:///media/AppStream
  file:///media/BaseOS
  851967 files found.

  Looking for duplicated filenames:
  101865 duplicates found.

  Doing more advanced checks to see if these are real conflicts:
    5% complete (  5093/101865,  8713/sec),    0 found - eta 0:00:11
   10% complete ( 10186/101865, 1787281/sec),    0 found - eta 0:00:05
   15% complete ( 15279/101865, 2223312/sec),    0 found - eta 0:00:03
   20% complete ( 20372/101865, 23614/sec),    0 found - eta 0:00:03
   25% complete ( 25465/101865, 57188/sec),    0 found - eta 0:00:02
   30% complete ( 30558/101865,  3831/sec),    0 found - eta 0:00:05
   35% complete ( 35651/101865, 48455/sec),    0 found - eta 0:00:04
   40% complete ( 40744/101865, 32067/sec),    0 found - eta 0:00:03
   45% complete ( 45837/101865, 2136586/sec),    0 found - eta 0:00:03
   50% complete ( 50930/101865, 72529/sec),    0 found - eta 0:00:02
   55% complete ( 56023/101865, 176294/sec),    0 found - eta 0:00:02
   60% complete ( 61116/101865, 68622/sec),    1 found - eta 0:00:01
   65% complete ( 66209/101865, 155133/sec),    1 found - eta 0:00:01
   70% complete ( 71302/101865, 13874/sec),    1 found - eta 0:00:01
   75% complete ( 76395/101865, 10835/sec),    1 found - eta 0:00:01
   80% complete ( 81488/101865, 27477/sec),    1 found - eta 0:00:00
   85% complete ( 86581/101865,  9075/sec),    1 found - eta 0:00:00
   90% complete ( 91674/101865, 14807/sec),    1 found - eta 0:00:00
   95% complete ( 96767/101865, 197437/sec),    1 found - eta 0:00:00
  100% complete (101860/101865, 38727/sec),    1 found - eta 0:00:00

  1 file conflicts found.
  11 package conflicts found.

  == Package conflicts ==
  mariadb-server-utils-3:10.3.28-1.module+el8.4.0+427+adf35707.x86_64
  mysql-server-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64

  python3-mod_wsgi-4.6.4-4.el8.x86_64
  python38-mod_wsgi-4.6.8-3.module+el8.4.0+570+c2eaf144.x86_64
  python39-mod_wsgi-4.7.1-4.module+el8.4.0+574+843c4898.x86_64

  libcmpiCppImpl0-2.0.3-15.el8.i686
  tog-pegasus-libs-2:2.14.1-46.el8.i686

  mariadb-connector-c-devel-3.1.11-2.el8_3.i686
  mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64
  mariadb-devel-3:10.3.28-1.module+el8.4.0+427+adf35707.x86_64
  mysql-devel-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64

  mariadb-server-3:10.3.28-1.module+el8.4.0+427+adf35707.x86_64
  mysql-server-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64

  mariadb-test-3:10.3.28-1.module+el8.4.0+427+adf35707.x86_64
  mysql-test-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64

  mariadb-connector-c-devel-3.1.11-2.el8_3.i686
  mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64
  mysql-devel-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64

  mariadb-devel-3:10.3.28-1.module+el8.4.0+427+adf35707.x86_64
  mysql-devel-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64

  mariadb-3:10.3.28-1.module+el8.4.0+427+adf35707.x86_64
  mysql-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64

  libcmpiCppImpl0-2.0.3-15.el8.x86_64
  tog-pegasus-libs-2:2.14.1-46.el8.x86_64

  libev-libevent-devel-4.24-6.el8.i686
  libev-libevent-devel-4.24-6.el8.x86_64
  libevent-devel-2.1.8-5.el8.i686
  libevent-devel-2.1.8-5.el8.x86_64


  == File conflicts, listed by conflicting packages ==
  mariadb-server-3:10.3.28-1.module+el8.4.0+427+adf35707.x86_64
  mysql-test-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64
    /usr/bin/mysqld_safe

$ sudo umount /media

Additional Information

If you have questions with respect to this content or to report concerns regarding the use or misuse content please do not hesitate to contact us at testing@rockylinux.org.

Rocky Linux and the Rocky Enterprise Software Foundation (RESF) does not make any express or implied warranties, including but not limited to the warranties of non-infringement of any third party intellectual property rights. RESF does not warrant that any pending trademark applications for trademarks of RESF will result in any granted trademark protection. RESF shall not be liable for any claims relating to user's activities falling within the scope of the permission and user hereby agrees to indemnify, defend and hold RESF and its contributors harmless against any such claim.

This work is heavily inspired by the Fedora Quality Assurance documents which were made available under Attribution-Share Alike 4.0 International license unless otherwise noted.

This content is licensed under under Attribution-Share Alike 4.0 International license unless otherwise noted.