Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-4962

One test failure on IBM z Systems

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: PUP 4.10.5, PUP 5.0.1
    • Component/s: None
    • Labels:
      None
    • Environment:

      Operation system: RHEL 6, RHEL7, SLES 11 and SLES 12
      Platform: IBM z system

    • Template:
    • Team:
      Agent
    • Story Points:
      1
    • Sprint:
      Agent 2017-07-26
    • Release Notes:
      Not Needed
    • QA Risk Assessment:
      No Action

      Description

      We have performed the test suite on IBM z platform. The one z platform specific failure is

      "rspec ./spec/unit/indirector/file_bucket_file/file_spec.rb:43 # Puppet::FileBucketFile::File non-stubbing tests when servicing a save request fails if the contents collide with existing contents"

      This is due to the difference of endianness, since z systems use big endianness. This test is used to test contents collision, where an MD5 collision is constructed in the test. However, in the test, the MD5 digest is represent in a little endian UINT type. So when ported to z systems, such MD5 collision is not valid. This caused the failure of this particular test.

      A quick workaround is to reconstruct the MD5 collision by converting the little endian to big endian expression in the test file: " ./spec/unit/indirector/file_bucket_file/file_spec.rb".

      Original code:
      "
      first_contents = [0x6165300e,0x87a79a55,0xf7c60bd0,0x34febd0b,
      0x6503cf04,0x854f709e,0xfb0fc034,0x874c9c65,
      0x2f94cc40,0x15a12deb,0x5c15f4a3,0x490786bb,
      0x6d658673,0xa4341f7d,0x8fd75920,0xefd18d5a].pack("I" * 16)

      collision_contents = [0x6165300e,0x87a79a55,0xf7c60bd0,0x34febd0b,
      0x6503cf04,0x854f749e,0xfb0fc034,0x874c9c65,
      0x2f94cc40,0x15a12deb,0xdc15f4a3,0x490786bb,
      0x6d658673,0xa4341f7d,0x8fd75920,0xefd18d5a].pack("I" * 16)
      "
      change to:
      "
      first_contents_s390x = [0x0e306561,0x559aa787,0xd00bc6f7,0x0bbdfe34,0x04cf0365,0x9e704f85,0x34c00ffb,
      0x659c4c87,0x40cc942f,0xeb2da115,0xa3f4155c,0xbb860749,0x7386656d,0x7d1f34a4,
      0x2059d78f,0x5a8dd1ef].pack("I" * 16)

      collision_contents_s390x = [0x0e306561,0x559aa787,0xd00bc6f7,0x0bbdfe34,0x04cf0365,0x9e744f85,0x34c00ffb,
      0x659c4c87,0x40cc942f,0xeb2da115,0xa3f415dc,0xbb860749,0x7386656d,0x7d1f34a4,
      0x2059d78f,0x5a8dd1ef].pack("I" * 16)
      "

        Attachments

          Activity

            People

            • Assignee:
              josh Josh Cooper
              Reporter:
              levivic Lei Zhang
              QA Contact:
              Eric Thompson
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Zendesk Support