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

One test failure on IBM z Systems

    XMLWordPrintable

    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