← Back to team overview

debcrafters-packages team mailing list archive

[Bug 2115636] Re: python-psutil 7.0.0-2 fails to build on ppc64el with util-linux 2.41-4ubuntu2

 

I cannot reproduce it in a ppc64el VM, but I can collect debug
information during build:

```
$ LSCPU_DEBUG=all valgrind lscpu
[...]
11903: lscpu:   GATHER: [0x4be6ea0]: read 1 numas
11903: lscpu:     TYPE: [0x4bf7150]: reading /IBM pSeries (emulated by qemu)/POWER9 (architected), altivec supported topology
11903: lscpu:     TYPE: [0x4bf7150]:  nthreads: 1 (per core)
11903: lscpu:     TYPE: [0x4bf7150]:    ncores: 4 (1 per socket)
11903: lscpu:     TYPE: [0x4bf7150]:  nsockets: 4 (0 per books)
11903: lscpu:     TYPE: [0x4bf7150]:    nbooks: 0 (0 per drawer)
11903: lscpu:     TYPE: [0x4bf7150]:  ndrawers: 0 (0 per system)
11903: lscpu:      CPU: [0x4beedb0]: #0 reading topology
11903: lscpu:      CPU: [0x4beedb0]: #0 reading IDs
11903: lscpu:      CPU: [0x4beedb0]: #0 reading mhz
11903: lscpu:      CPU: [0x4beedb0]: #0 reading 2 caches
11903: lscpu:   GATHER: [0x4be6ea0]: add cache Data1::0
11903: lscpu:   GATHER: [0x4be6ea0]: add cache Instruction1::0
11903: lscpu:      CPU: [0x4beee50]: #1 reading topology
11903: lscpu:      CPU: [0x4beee50]: #1 reading IDs
11903: lscpu:      CPU: [0x4beee50]: #1 reading mhz
11903: lscpu:      CPU: [0x4beee50]: #1 reading 2 caches
==11903== Invalid read of size 8
==11903==    at 0x191128: ??? (in /usr/bin/lscpu)
==11903==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11903==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
==11903==  Address 0x4c7a7c0 is 0 bytes inside a block of size 256 free'd
==11903==    at 0x48A9A20: free (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11903==    by 0x4AA5307: __sched_cpufree (sched_cpufree.c:25)
==11903==    by 0x18EE17: ??? (in /usr/bin/lscpu)
==11903==    by 0x18F13B: ??? (in /usr/bin/lscpu)
==11903==    by 0x19100F: ??? (in /usr/bin/lscpu)
==11903==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11903==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
==11903==  Block was alloc'd at
==11903==    at 0x48A5698: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11903==    by 0x4AA50A3: __sched_cpualloc (sched_cpualloc.c:25)
==11903==    by 0x18EB17: ??? (in /usr/bin/lscpu)
==11903==    by 0x18F13B: ??? (in /usr/bin/lscpu)
==11903==    by 0x19100F: ??? (in /usr/bin/lscpu)
==11903==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11903==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
[...]
11903: lscpu:     MISC:  freeing cache #0 L1d::0
==11903== Invalid free() / delete / delete[] / realloc()
==11903==    at 0x48A9A20: free (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11903==    by 0x18BD7B: ??? (in /usr/bin/lscpu)
==11903==    by 0x1877E3: ??? (in /usr/bin/lscpu)
==11903==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
==11903==  Address 0x4c7a7c0 is 0 bytes inside a block of size 256 free'd
==11903==    at 0x48A9A20: free (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11903==    by 0x4AA5307: __sched_cpufree (sched_cpufree.c:25)
==11903==    by 0x18EE17: ??? (in /usr/bin/lscpu)
==11903==    by 0x18F13B: ??? (in /usr/bin/lscpu)
==11903==    by 0x19100F: ??? (in /usr/bin/lscpu)
==11903==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11903==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
==11903==  Block was alloc'd at
==11903==    at 0x48A5698: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11903==    by 0x4AA50A3: __sched_cpualloc (sched_cpualloc.c:25)
==11903==    by 0x18EB17: ??? (in /usr/bin/lscpu)
==11903==    by 0x18F13B: ??? (in /usr/bin/lscpu)
==11903==    by 0x19100F: ??? (in /usr/bin/lscpu)
==11903==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11903==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
==11903== 
11903: lscpu:     MISC:  freeing cache #1 L1d::1
```

So the double free happens in lscpu_free_caches() for caches[0] where
caches[0]->name is "L1d".

-- 
You received this bug notification because you are a member of
Debcrafters packages, which is subscribed to util-linux in Ubuntu.
https://bugs.launchpad.net/bugs/2115636

Title:
  python-psutil 7.0.0-2 fails to build on ppc64el with util-linux
  2.41-4ubuntu2

Status in python-psutil package in Ubuntu:
  New
Status in util-linux package in Ubuntu:
  New

Bug description:
  python-psutil 7.0.0-2 fails to build on ppc64el:

  ```
  =================================== FAILURES ===================================
  _________________ TestSystemCPUCountLogical.test_against_lscpu _________________

  self = <psutil.tests.test_linux.TestSystemCPUCountLogical
  testMethod=test_against_lscpu>

      @pytest.mark.skipif(
          not shutil.which("lscpu"), reason="lscpu utility not available"
      )
      def test_against_lscpu(self):
  >       out = sh("lscpu -p")

  psutil/tests/test_linux.py:683: 
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
  psutil/tests/__init__.py:330: in wrapper
      return fun(*args, **kwargs)
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

  cmd = ['lscpu', '-p']
  kwds = {'creationflags': 0, 'stderr': -1, 'stdout': -1, 'universal_newlines': True}
  flags = 0, p = <Popen: returncode: -6 args: ['lscpu', '-p']>, stdout = ''
  stderr = 'free(): double free detected in tcache 2\n'

      @_reap_children_on_err
      def sh(cmd, **kwds):
          """Run cmd in a subprocess and return its output.
          raises RuntimeError on error.
          """
          # Prevents subprocess to open error dialogs in case of error.
          flags = 0x8000000 if WINDOWS else 0
          kwds.setdefault("stdout", subprocess.PIPE)
          kwds.setdefault("stderr", subprocess.PIPE)
          kwds.setdefault("universal_newlines", True)
          kwds.setdefault("creationflags", flags)
          if isinstance(cmd, str):
              cmd = shlex.split(cmd)
          p = subprocess.Popen(cmd, **kwds)
          _subprocesses_started.add(p)
          stdout, stderr = p.communicate(timeout=GLOBAL_TIMEOUT)
          if p.returncode != 0:
  >           raise RuntimeError(stdout + stderr)
  E           RuntimeError: free(): double free detected in tcache 2

  psutil/tests/__init__.py:497: RuntimeError
  ```

  So `lscpu -p` fails with:

  ```
  free(): double free detected in tcache 2
  ```

  python-psutil 7.0.0-2 builds with util-linux 2.40.2-14ubuntu1 but
  fails with this error with 2.41-4ubuntu2.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-psutil/+bug/2115636/+subscriptions



References