[Bug 1862183] [NEW] IR: unimplemented insn: B348 0010 on s390x in apt

Balint Reczey balint.reczey at canonical.com
Thu Feb 6 14:43:41 UTC 2020


Public bug reported:

apt's autopkgtest triggers a Valgrind error:

http://autopkgtest.ubuntu.com/packages/a/apt/focal/s390x

https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac
/autopkgtest-focal/focal/s390x/a/apt/20200205_194314_57d5d@/log.gz :

Test for successful execution of valgrind aptget update -o Acquire::Queue-Mode=access … ==203867== Memcheck, a memory error detector
==203867== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==203867== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==203867== Command: /usr/bin/apt-get update -o Acquire::Queue-Mode=access
==203867== 
vex s390->IR: unimplemented insn: B348 0010
==203867== valgrind: Unrecognised instruction at address 0x4ba27f6.
==203867==    at 0x4BA27F6: std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long, unsigned long, unsigned long) const (in /usr/lib/s390x-linux-gnu/libstdc++.so.6.0.28)
==203867==    by 0x4985DAB: ReadConfigFile(Configuration&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&) (in /usr/lib/s390x-linux-gnu/libapt-pkg.so.5.90.0)
==203867==    by 0x4A218D9: pkgInitConfig(Configuration&) (in /usr/lib/s390x-linux-gnu/libapt-pkg.so.5.90.0)
==203867==    by 0x486801D: ParseCommandLine(CommandLine&, APT_CMD, Configuration* const*, pkgSystem**, int, char const**, bool (*)(CommandLine&), std::vector<aptDispatchWithHelp, std::allocator<aptDispatchWithHelp> > (*)()) (in /usr/lib/s390x-linux-gnu/libapt-private.so.0.0.0)
==203867==    by 0x10BE3B: main (in /usr/bin/apt-get)
==203867== Your program just tried to execute an instruction that Valgrind
==203867== did not recognise.  There are two possible reasons for this.
==203867== 1. Your program has a bug and erroneously jumped to a non-code
==203867==    location.  If you are running Memcheck and you just saw a
==203867==    warning about a bad jump, it's probably your program's fault.
==203867== 2. The instruction is legitimate but Valgrind doesn't handle it,
==203867==    i.e. it's Valgrind's fault.  If you think this is the case or
==203867==    you are not sure, please let us know and we'll try to fix it.
==203867== Either way, Valgrind will now raise a SIGILL signal which will
==203867== probably kill your program.
==203867== 
==203867== Process terminating with default action of signal 4 (SIGILL)
==203867==  Illegal opcode at address 0x4BA27F6
==203867==    at 0x4BA27F6: std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long, unsigned long, unsigned long) const (in /usr/lib/s390x-linux-gnu/libstdc++.so.6.0.28)
==203867==    by 0x4985DAB: ReadConfigFile(Configuration&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&) (in /usr/lib/s390x-linux-gnu/libapt-pkg.so.5.90.0)
==203867==    by 0x4A218D9: pkgInitConfig(Configuration&) (in /usr/lib/s390x-linux-gnu/libapt-pkg.so.5.90.0)
==203867==    by 0x486801D: ParseCommandLine(CommandLine&, APT_CMD, Configuration* const*, pkgSystem**, int, char const**, bool (*)(CommandLine&), std::vector<aptDispatchWithHelp, std::allocator<aptDispatchWithHelp> > (*)()) (in /usr/lib/s390x-linux-gnu/libapt-private.so.0.0.0)
==203867==    by 0x10BE3B: main (in /usr/bin/apt-get)
==203867== 
==203867== HEAP SUMMARY:
==203867==     in use at exit: 84,929 bytes in 866 blocks
==203867==   total heap usage: 4,880 allocs, 4,014 frees, 438,639 bytes allocated
==203867== 
==203867== LEAK SUMMARY:
==203867==    definitely lost: 0 bytes in 0 blocks
==203867==    indirectly lost: 0 bytes in 0 blocks
==203867==      possibly lost: 0 bytes in 0 blocks
==203867==    still reachable: 84,929 bytes in 866 blocks
==203867==         suppressed: 0 bytes in 0 blocks
==203867== Rerun with --leak-check=full to see details of leaked memory
==203867== 
==203867== For lists of detected and suppressed errors, rerun with: -s
==203867== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Illegal instruction (core dumped)
FAIL: exitcode 132
...

** Affects: valgrind (Ubuntu)
     Importance: Undecided
     Assignee: Julian Andres Klode (juliank)
         Status: Fix Committed

** Summary changed:

- IR: unimplemented insn: B348 0010 on s390x
+ IR: unimplemented insn: B348 0010 on s390x in apt

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to valgrind in Ubuntu.
https://bugs.launchpad.net/bugs/1862183

Title:
  IR: unimplemented insn: B348 0010 on s390x in apt

Status in valgrind package in Ubuntu:
  Fix Committed

Bug description:
  apt's autopkgtest triggers a Valgrind error:

  http://autopkgtest.ubuntu.com/packages/a/apt/focal/s390x

  https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac
  /autopkgtest-focal/focal/s390x/a/apt/20200205_194314_57d5d@/log.gz :

  Test for successful execution of valgrind aptget update -o Acquire::Queue-Mode=access … ==203867== Memcheck, a memory error detector
  ==203867== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
  ==203867== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
  ==203867== Command: /usr/bin/apt-get update -o Acquire::Queue-Mode=access
  ==203867== 
  vex s390->IR: unimplemented insn: B348 0010
  ==203867== valgrind: Unrecognised instruction at address 0x4ba27f6.
  ==203867==    at 0x4BA27F6: std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long, unsigned long, unsigned long) const (in /usr/lib/s390x-linux-gnu/libstdc++.so.6.0.28)
  ==203867==    by 0x4985DAB: ReadConfigFile(Configuration&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&) (in /usr/lib/s390x-linux-gnu/libapt-pkg.so.5.90.0)
  ==203867==    by 0x4A218D9: pkgInitConfig(Configuration&) (in /usr/lib/s390x-linux-gnu/libapt-pkg.so.5.90.0)
  ==203867==    by 0x486801D: ParseCommandLine(CommandLine&, APT_CMD, Configuration* const*, pkgSystem**, int, char const**, bool (*)(CommandLine&), std::vector<aptDispatchWithHelp, std::allocator<aptDispatchWithHelp> > (*)()) (in /usr/lib/s390x-linux-gnu/libapt-private.so.0.0.0)
  ==203867==    by 0x10BE3B: main (in /usr/bin/apt-get)
  ==203867== Your program just tried to execute an instruction that Valgrind
  ==203867== did not recognise.  There are two possible reasons for this.
  ==203867== 1. Your program has a bug and erroneously jumped to a non-code
  ==203867==    location.  If you are running Memcheck and you just saw a
  ==203867==    warning about a bad jump, it's probably your program's fault.
  ==203867== 2. The instruction is legitimate but Valgrind doesn't handle it,
  ==203867==    i.e. it's Valgrind's fault.  If you think this is the case or
  ==203867==    you are not sure, please let us know and we'll try to fix it.
  ==203867== Either way, Valgrind will now raise a SIGILL signal which will
  ==203867== probably kill your program.
  ==203867== 
  ==203867== Process terminating with default action of signal 4 (SIGILL)
  ==203867==  Illegal opcode at address 0x4BA27F6
  ==203867==    at 0x4BA27F6: std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long, unsigned long, unsigned long) const (in /usr/lib/s390x-linux-gnu/libstdc++.so.6.0.28)
  ==203867==    by 0x4985DAB: ReadConfigFile(Configuration&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&) (in /usr/lib/s390x-linux-gnu/libapt-pkg.so.5.90.0)
  ==203867==    by 0x4A218D9: pkgInitConfig(Configuration&) (in /usr/lib/s390x-linux-gnu/libapt-pkg.so.5.90.0)
  ==203867==    by 0x486801D: ParseCommandLine(CommandLine&, APT_CMD, Configuration* const*, pkgSystem**, int, char const**, bool (*)(CommandLine&), std::vector<aptDispatchWithHelp, std::allocator<aptDispatchWithHelp> > (*)()) (in /usr/lib/s390x-linux-gnu/libapt-private.so.0.0.0)
  ==203867==    by 0x10BE3B: main (in /usr/bin/apt-get)
  ==203867== 
  ==203867== HEAP SUMMARY:
  ==203867==     in use at exit: 84,929 bytes in 866 blocks
  ==203867==   total heap usage: 4,880 allocs, 4,014 frees, 438,639 bytes allocated
  ==203867== 
  ==203867== LEAK SUMMARY:
  ==203867==    definitely lost: 0 bytes in 0 blocks
  ==203867==    indirectly lost: 0 bytes in 0 blocks
  ==203867==      possibly lost: 0 bytes in 0 blocks
  ==203867==    still reachable: 84,929 bytes in 866 blocks
  ==203867==         suppressed: 0 bytes in 0 blocks
  ==203867== Rerun with --leak-check=full to see details of leaked memory
  ==203867== 
  ==203867== For lists of detected and suppressed errors, rerun with: -s
  ==203867== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
  Illegal instruction (core dumped)
  FAIL: exitcode 132
  ...

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/valgrind/+bug/1862183/+subscriptions



More information about the foundations-bugs mailing list