Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-7362

some go tests fail when using -exec valgrind on s390x and ppc64le [rhel-8]

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Can't Do
    • Icon: Undefined Undefined
    • None
    • rhel-8.6.0
    • golang
    • None
    • None
    • rhel-sst-pt-llvm-rust-go
    • ssg_platform_tools
    • 2
    • False
    • False
    • Hide

      None

      Show
      None
    • Yes
    • None
    • None
    • None
    • If docs needed, set a value
    • None
    • 57,005

      Description of problem:
      Similarly to bug #2064892 found on RHEL-9, some go tests that pass when executed plainly fail when using '-exec valgrind' on RHEL-8.6.0-updates-20220531.0 s390x. However, on RHEL-8, both aarch64 and x86_64 are not affected by this issue.

      [root@s390x-kvm-007 ~]# GOLANG_FIPS=1 go test -count=1 -v -v -v crypto/des -run ^TestWeakKeys$
      === RUN TestWeakKeys
      — PASS: TestWeakKeys (0.00s)
      PASS
      ok crypto/des 0.001s
      [root@s390x-kvm-007 ~]# GOLANG_FIPS=1 go test -count=1 -v -v -v crypto/des -run ^TestWeakKeys$ -exec valgrind
      ==597060== Memcheck, a memory error detector
      ==597060== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
      ==597060== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
      ==597060== Command: /tmp/go-build2313686948/b001/des.test -test.paniconexit0 -test.timeout=10m0s -test.count=1 -test.v=true -test.v=true -test.v=true -test.run=^TestWeakKeys$
      ==597060==
      ==597060== Invalid write of size 8
      ==597060== at 0x7FB10: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0xFFFFFFFFFFFFFFFF: ???
      ==597060== Address 0x1ffefffd48 is on thread 1's stack
      ==597060== 8 bytes below stack pointer
      ==597060==
      ==597060== Invalid write of size 8
      ==597060== at 0x60C7C: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x7FBC1: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== Address 0x1ffefffcf0 is on thread 1's stack
      ==597060== 64 bytes below stack pointer
      ==597060==
      ==597060== Invalid write of size 8
      ==597060== at 0x60A5C: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x60EE9: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== Address 0x1ffefffcd8 is on thread 1's stack
      ==597060== 24 bytes below stack pointer
      ==597060==
      ==597060== Use of uninitialised value of size 8
      ==597060== at 0x60B64: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x60EE9: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060==
      ==597060== Use of uninitialised value of size 8
      ==597060== at 0x60F30: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x7FBC1: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060==
      ==597060== Invalid write of size 8
      ==597060== at 0x606FC: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x7FBC7: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== Address 0x1ffefffd18 is on thread 1's stack
      ==597060== 24 bytes below stack pointer
      ==597060==
      ==597060== Invalid write of size 8
      ==597060== at 0x477E2: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x60755: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== Address 0x1ffefff8c8 is on thread 1's stack
      ==597060== 1104 bytes below stack pointer
      ==597060==
      ==597060== Use of uninitialised value of size 8
      ==597060== at 0x479F0: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x60755: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060==
      ==597060== Use of uninitialised value of size 8
      ==597060== at 0x60756: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x7FBC7: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060==
      ==597060== Invalid write of size 8
      ==597060== at 0x47CDC: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x7FBCD: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== Address 0x1ffefffd18 is on thread 1's stack
      ==597060== 24 bytes below stack pointer
      ==597060==
      ==597060== Invalid write of size 8
      ==597060== at 0x474FC: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x47CED: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== Address 0x1ffeffdcf0 is not stack'd, malloc'd or (recently) free'd
      ==597060==
      ==597060==
      ==597060== Process terminating with default action of signal 11 (SIGSEGV)
      ==597060== Access not within mapped region at address 0x1FFEFFD000
      ==597060== at 0x474FC: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== by 0x47CED: ??? (in /tmp/go-build2313686948/b001/des.test)
      ==597060== If you believe this happened as a result of a stack
      ==597060== overflow in your program's main thread (unlikely but
      ==597060== possible), you can try to increase the size of the
      ==597060== main thread stack using the --main-stacksize= flag.
      ==597060== The main thread stack size used in this run was 8388608.
      ==597060==
      ==597060== HEAP SUMMARY:
      ==597060== in use at exit: 0 bytes in 0 blocks
      ==597060== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
      ==597060==
      ==597060== All heap blocks were freed – no leaks are possible
      ==597060==
      ==597060== Use --track-origins=yes to see where uninitialised values come from
      ==597060== For lists of detected and suppressed errors, rerun with: -s
      ==597060== ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
      FAIL crypto/des 0.416s
      FAIL
      [root@s390x-kvm-007 ~]#

      Below is the list of suites and testcases failing with with valgrind:

      crypto/des (all tests)
      crypto/dsa: TestParameterGeneration TestSignAndVerifyWithBadPublicKey
      crypto/ecdsa: TestEqual
      crypto/ed25519: TestEd25519Vectors
      crypto/ed25519/internal/edwards25519 (all tests)
      crypto/elliptic: TestInfinity TestMarshal TestMarshalCompressed
      crypto/internal/subtle (all tests)
      crypto/rc4 (all tests)
      crypto/subtle (all tests)
      crypto/x509: TestPKCS8 TestParseECPrivateKey TestImports
      crypto/tls (all TestBoring*)

      Version-Release number of selected component (if applicable):
      RHEL-8.6.0-updates-20220531.0
      golang-1.17.10-1.module+el8.6.0+15486+6d4da7db.s390x (go-toolset:rhel8:8060020220527144311:97d7f71f)
      valgrind-3.18.1-7.el8.s390x

      Steps to Reproduce:
      1. GOLANG_FIPS=1 go test -count=1 -v -v -v <suite> -run <testcase> -exec valgrind

              go-maint@redhat.com Go Maint
              rhn-support-emachado Edjunior Machado
              David Benoit David Benoit
              Edjunior Machado Edjunior Machado
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: