← 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

 

With some more debug information added, the following valgrind warning
is triggered in read_caches somewhere in this part:

```
		if (id == -1)
			id = mk_cache_id(cxt, cpu, buf, level);

		ca = get_cache(cxt, buf, level, id);
		if (!ca)
			ca = add_cache(cxt, buf, level, id);
```

Probably in the add_cache() call.

```
==11853== Invalid read of size 8
==11853==    at 0x190078: ??? (in /usr/bin/lscpu)
==11853==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11853==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
==11853==  Address 0x4c7a7c0 is 0 bytes inside a block of size 256 free'd
==11853==    at 0x48A9A20: free (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11853==    by 0x4AA5307: __sched_cpufree (sched_cpufree.c:25)
==11853==    by 0x18E387: ??? (in /usr/bin/lscpu)
==11853==    by 0x18FE0F: ??? (in /usr/bin/lscpu)
==11853==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11853==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
==11853==  Block was alloc'd at
==11853==    at 0x48A5698: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11853==    by 0x4AA50A3: __sched_cpualloc (sched_cpualloc.c:25)
==11853==    by 0x18E153: ??? (in /usr/bin/lscpu)
==11853==    by 0x18FE0F: ??? (in /usr/bin/lscpu)
==11853==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11853==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
```

The double free is tracked down to `free(c->sharedmap);` in
`lscpu_free_caches`:

```
==11853== Invalid free() / delete / delete[] / realloc()
==11853==    at 0x48A9A20: free (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11853==    by 0x191263: ??? (in /usr/bin/lscpu)
==11853==    by 0x1877E3: ??? (in /usr/bin/lscpu)
==11853==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
==11853==  Address 0x4c7a7c0 is 0 bytes inside a block of size 256 free'd
==11853==    at 0x48A9A20: free (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11853==    by 0x4AA5307: __sched_cpufree (sched_cpufree.c:25)
==11853==    by 0x18E387: ??? (in /usr/bin/lscpu)
==11853==    by 0x18FE0F: ??? (in /usr/bin/lscpu)
==11853==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11853==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
==11853==  Block was alloc'd at
==11853==    at 0x48A5698: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==11853==    by 0x4AA50A3: __sched_cpualloc (sched_cpualloc.c:25)
==11853==    by 0x18E153: ??? (in /usr/bin/lscpu)
==11853==    by 0x18FE0F: ??? (in /usr/bin/lscpu)
==11853==    by 0x186D1B: ??? (in /usr/bin/lscpu)
==11853==    by 0x4986C43: (below main) (libc_start_call_main.h:58)
```

-- 
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