Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 13, 2025

This PR contains the following updates:

Package Change Age Confidence
psutil ^5.9.4^7.0.0 age confidence

Release Notes

giampaolo/psutil (psutil)

v7.2.2

Compare Source

=====

2026-01-28

Enhancements

  • 2705_: [Linux]: Process.wait()_ now uses pidfd_open() + poll() for
    waiting, resulting in no busy loop and faster response times. Requires
    Linux >= 5.3 and Python >= 3.9. Falls back to traditional polling if
    unavailable.
  • 2705_: [macOS], [BSD]: Process.wait()_ now uses kqueue() for waiting,
    resulting in no busy loop and faster response times.

Bug fixes

  • 2701_, [macOS]: fix compilation error on macOS < 10.7. (patch by Sergey
    Fedorov)
  • 2707_, [macOS]: fix potential memory leaks in error paths of
    Process.memory_full_info() and Process.threads().
  • 2708_, [macOS]: Process.cmdline()_ and Process.environ()_ may fail with ``OSError: [Errno 0] Undefined error`` (from ``sysctl(KERN_PROCARGS2)``). They now raise AccessDenied`_ instead.

v7.2.1

Compare Source

=====

2025-12-29

Bug fixes

  • 2699_, [FreeBSD], [NetBSD]: heap_info()_ does not detect small allocations
    (<= 1K). In order to fix that, we now flush internal jemalloc cache before
    fetching the metrics.

v7.2.0

Compare Source

=====

2025-12-23

Enhancements

  • 1275_: new heap_info()_ and heap_trim()_ functions, providing direct
    access to the platform's native C heap allocator (glibc, mimalloc,
    libmalloc). Useful to create tools to detect memory leaks.
  • 2403_, [Linux]: publish wheels for Linux musl.
  • 2680_: unit tests are no longer installed / part of the distribution. They
    now live under tests/ instead of psutil/tests.

Bug fixes

  • 2684_, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to missing
    include.
  • 2691_, [Windows]: fix memory leak in net_if_stats()_ due to missing
    Py_CLEAR.

Compatibility notes

  • 2680_: import psutil.tests no longer works (but it was never documented to
    begin with).

v7.1.3

Compare Source

=====

2025-11-02

Enhancements

  • 2667_: enforce clang-format on all C and header files. It is now the
    mandatory formatting style for all C sources.
  • 2672_, [macOS], [BSD]: increase the chances to recognize zombie processes and
    raise the appropriate exception (ZombieProcess_).
  • 2676_, 2678_: replace unsafe sprintf / snprintf / sprintf_s calls with
    str_format(). Replace strlcat / strlcpy with safe str_copy /
    str_append. This unifies string handling across platforms and reduces
    unsafe usage of standard string functions, improving robustness.

Bug fixes

  • 2674_, [Windows]: disk_usage()_ could truncate values on 32-bit platforms,
    potentially reporting incorrect total/free/used space for drives larger than
    4GB.
  • 2675_, [macOS]: Process.status()_ incorrectly returns "running" for 99%
    of the processes.
  • 2677_, [Windows]: fix MAC address string construction in net_if_addrs()_.
    Previously, the MAC address buffer was incorrectly updated using a fixed
    increment and sprintf_s, which could overflow or misformat the
    string if the MAC length or formatting changed. Also, the final '\n' was
    inserted unnecessarily.
  • 2679_, [OpenBSD], [NetBSD], [critical]: can't build due to C syntax error.

v7.1.2

Compare Source

=====

2025-10-25

Enhancements

  • 2657_: stop publishing prebuilt Linux and Windows wheels for 32-bit Python.
    32-bit CPython is still supported, but psutil must now be built from source.
    2565_: produce wheels for free-thread cPython 3.13 and 3.14 (patch by
    Lysandros Nikolaou)

Bug fixes

  • 2650_, [macOS]: Process.cmdline()_ and Process.environ()_ may incorrectly
    raise NoSuchProcess_ instead of ZombieProcess_.
  • 2658_, [macOS]: double free() in Process.environ()_ when it fails
    internally. This posed a risk of segfault.
  • 2662_, [macOS]: massive C code cleanup to guard against possible segfaults
    which were (not so) sporadically spotted on CI.

Compatibility notes

  • 2657_: stop publishing prebuilt Linux and Windows wheels for 32-bit Python.

v7.1.1

Compare Source

=====

2025-10-19

Enhancements

  • 2645_, [SunOS]: dropped support for SunOS 10.
  • 2646_, [SunOS]: add CI test runner for SunOS.

Bug fixes

  • 2641_, [SunOS]: cannot compile psutil from sources due to missing C include.
  • 2357_, [SunOS]: Process.cmdline()_ does not handle spaces properly. (patch
    by Ben Raz)

Compatibility notes

  • 2645_: SunOS 10 is no longer supported.

v7.1.0

Compare Source

=====

2025-09-17

Enhancements

  • 2581_, [Windows]: publish ARM64 wheels. (patch by Matthieu Darbois)
  • 2571_, [FreeBSD]: Dropped support for FreeBSD 8 and earlier. FreeBSD 8 was
    maintained from 2009 to 2013.
  • 2575_: introduced dprint CLI tool to format .yml and .md files.

Bug fixes

  • 2473_, [macOS]: Fix build issue on macOS 11 and lower.
  • 2494_, [Windows]: All APIs dealing with paths, such as
    Process.memory_maps(), Process.exe() and Process.open_files()_ does
    not properly handle UNC paths. Paths such as \\??\\C:\\Windows\\Temp and
    '\\Device\\HarddiskVolume1\\Windows\\Temp' are now converted to
    C:\\Windows\\Temp. (patch by Ben Peddell)
  • 2506_, [Windows]: Windows service APIs had issues with unicode services using
    special characters in their name.
  • 2514_, [Linux]: Process.cwd()_ sometimes fail with FileNotFoundError due
    to a race condition.
  • 2526_, [Linux]: Process.create_time(), which is used to univocally
    identify a process over time, is subject to system clock updates, and as such
    can lead to Process.is_running()
    returning a wrong result. A monotonic
    creation time is now used instead. (patch by Jonathan Kohler)
  • 2528_, [Linux]: Process.children()_ may raise PermissionError. It will
    now raise AccessDenied_ instead.
  • 2540_, [macOS]: boot_time()_ is off by 45 seconds (C precision issue).
  • 2541_, 2570_, 2578_ [Linux], [macOS], [NetBSD]: Process.create_time()_ does
    not reflect system clock updates.
  • 2542_: if system clock is updated Process.children()_ and
    Process.parent()_ may not be able to return the right information.
  • 2545_: [Illumos]: Fix handling of MIB2_UDP_ENTRY in net_connections()_.
  • 2552_, [Windows]: boot_time()_ didn't take into account the time spent
    during suspend / hibernation.
  • 2560_, [Linux]: Process.memory_maps()_ may crash with IndexError on
    RISCV64 due to a malformed /proc/{PID}/smaps file. (patch by Julien
    Stephan)
  • 2586_, [macOS], [CRITICAL]: fixed different places in C code which can
    trigger a segfault.
  • 2604_, [Linux]: virtual_memory()_ "used" memory does not match recent
    versions of free CLI utility. (patch by Isaac K. Ko)
  • 2605_, [Linux]: psutil.sensors_battery() reports a negative amount for
    seconds left.
  • 2607_, [Windows]: WindowsService.description() method may fail with
    ERROR_NOT_FOUND. Now it returns an empty string instead.
  • 2610:, [macOS], [CRITICAL]: fix cpu_freq()_ segfault on ARM architectures.

Compatibility notes

  • 2571_: dropped support for FreeBSD 8 and earlier.

v7.0.0

Compare Source

=====

2025-02-13

Enhancements

  • 669_, [Windows]: net_if_addrs()_ also returns the broadcast address
    instead of None.
  • 2480_: Python 2.7 is no longer supported. Latest version supporting Python
    2.7 is psutil 6.1.X. Install it with: pip2 install psutil==6.1.*.
  • 2490_: removed long deprecated Process.memory_info_ex() method. It was
    deprecated in psutil 4.0.0, released 8 years ago. Substitute is
    Process.memory_full_info().

Bug fixes

  • 2496_, [Linux]: Avoid segfault (a cPython bug) on Process.memory_maps()
    for processes that use hundreds of GBs of memory.
  • 2502_, [macOS]: virtual_memory()_ now relies on host_statistics64
    instead of host_statistics. This is the same approach used by vm_stat
    CLI tool, and should grant more accurate results.

Compatibility notes

  • 2480_: Python 2.7 is no longer supported.
  • 2490_: removed long deprecated Process.memory_info_ex() method.

v6.1.1

Compare Source

=====

2024-12-19

Enhancements

  • 2471_: use Vulture CLI tool to detect dead code.

Bug fixes

  • 2418_, [Linux]: fix race condition in case /proc/PID/stat does not exist, but
    /proc/PID does, resulting in FileNotFoundError.
  • 2470_, [Linux]: users()_ may return "localhost" instead of the actual IP
    address of the user logged in.

v6.1.0

Compare Source

=====

2024-10-17

Enhancements

  • 2366_, [Windows]: drastically speedup process_iter(). We now determine
    process unique identity by using process "fast" create time method. This
    will considerably speedup those apps which use process_iter()
    only once,
    e.g. to look for a process with a certain name.
  • 2446_: use pytest instead of unittest.
  • 2448_: add make install-sysdeps target to install the necessary system
    dependencies (python-dev, gcc, etc.) on all supported UNIX flavors.
  • 2449_: add make install-pydeps-test and make install-pydeps-dev
    targets. They can be used to install dependencies meant for running tests and
    for local development. They can also be installed via pip install .[test]
    and pip install .[dev].
  • 2456_: allow to run tests via python3 -m psutil.tests even if pytest
    module is not installed. This is useful for production environments that
    don't have pytest installed, but still want to be able to test psutil
    installation.

Bug fixes

  • 2427_: psutil (segfault) on import in the free-threaded (no GIL) version of
    Python 3.13. (patch by Sam Gross)
  • 2455_, [Linux]: IndexError may occur when reading /proc/pid/stat and
    field 40 (blkio_ticks) is missing.
  • 2457_, [AIX]: significantly improve the speed of Process.open_files()_ for
    some edge cases.
  • 2460_, [OpenBSD]: Process.num_fds()_ and Process.open_files()_ may fail
    with NoSuchProcess_ for PID 0. Instead, we now return "null" values (0 and
    [] respectively).

v6.0.0

Compare Source

======

2024-06-18

Enhancements

  • 2109_: maxfile and maxpath fields were removed from the namedtuple
    returned by disk_partitions()_. Reason: on network filesystems (NFS) this
    can potentially take a very long time to complete.
  • 2366_, [Windows]: log debug message when using slower process APIs.
  • 2375_, [macOS]: provide arm64 wheels. (patch by Matthieu Darbois)
  • 2396_: process_iter()_ no longer pre-emptively checks whether PIDs have
    been reused. This makes process_iter()_ around 20x times faster.
  • 2396_: a new psutil.process_iter.cache_clear() API can be used the clear
    process_iter()_ internal cache.
  • 2401_, Support building with free-threaded CPython 3.13. (patch by Sam Gross)
  • 2407_: Process.connections()_ was renamed to Process.net_connections()_.
    The old name is still available, but it's deprecated (triggers a
    DeprecationWarning) and will be removed in the future.
  • 2425_: [Linux]: provide aarch64 wheels. (patch by Matthieu Darbois / Ben Raz)

Bug fixes

  • 2250_, [NetBSD]: Process.cmdline()_ sometimes fail with EBUSY. It usually
    happens for long cmdlines with lots of arguments. In this case retry getting
    the cmdline for up to 50 times, and return an empty list as last resort.
  • 2254_, [Linux]: offline cpus raise NotImplementedError in cpu_freq() (patch
    by Shade Gladden)
  • 2272_: Add pickle support to psutil Exceptions.
  • 2359_, [Windows], [CRITICAL]: pid_exists()_ disagrees with Process_ on
    whether a pid exists when ERROR_ACCESS_DENIED.
  • 2360_, [macOS]: can't compile on macOS < 10.13. (patch by Ryan Schmidt)
  • 2362_, [macOS]: can't compile on macOS 10.11. (patch by Ryan Schmidt)
  • 2365_, [macOS]: can't compile on macOS < 10.9. (patch by Ryan Schmidt)
  • 2395_, [OpenBSD]: pid_exists()_ erroneously return True if the argument is
    a thread ID (TID) instead of a PID (process ID).
  • 2412_, [macOS]: can't compile on macOS 10.4 PowerPC due to missing MNT_
    constants.

Porting notes

Version 6.0.0 introduces some changes which affect backward compatibility:

  • 2109_: the namedtuple returned by disk_partitions()_' no longer has
    maxfile and maxpath fields.
  • 2396_: process_iter()_ no longer pre-emptively checks whether PIDs have
    been reused. If you want to check for PID reusage you are supposed to use
    Process.is_running()_ against the yielded Process_ instances. That will
    also automatically remove reused PIDs from process_iter()_ internal cache.
  • 2407_: Process.connections()_ was renamed to Process.net_connections()_.
    The old name is still available, but it's deprecated (triggers a
    DeprecationWarning) and will be removed in the future.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/psutil-7.x branch from a3d8201 to bf7467f Compare April 17, 2025 10:04
@renovate renovate bot force-pushed the renovate/psutil-7.x branch from bf7467f to 7a76a5a Compare April 24, 2025 11:18
@renovate renovate bot changed the base branch from staging to master April 24, 2025 11:19
@renovate renovate bot force-pushed the renovate/psutil-7.x branch from 7a76a5a to 12bb793 Compare May 16, 2025 14:51
@renovate renovate bot force-pushed the renovate/psutil-7.x branch from 12bb793 to b49e691 Compare August 10, 2025 14:26
@renovate renovate bot force-pushed the renovate/psutil-7.x branch from b49e691 to cb6b59d Compare September 17, 2025 20:32
@renovate renovate bot force-pushed the renovate/psutil-7.x branch from cb6b59d to 8ed55eb Compare October 8, 2025 16:12
@renovate renovate bot force-pushed the renovate/psutil-7.x branch 2 times, most recently from ef56f32 to 884aff2 Compare October 25, 2025 14:37
@renovate renovate bot force-pushed the renovate/psutil-7.x branch from 884aff2 to 2f91b44 Compare November 2, 2025 13:35
@renovate renovate bot force-pushed the renovate/psutil-7.x branch 2 times, most recently from 4026b36 to 48b3eae Compare December 29, 2025 09:52
@renovate renovate bot force-pushed the renovate/psutil-7.x branch from 48b3eae to 935728b Compare January 28, 2026 19:08
@renovate renovate bot force-pushed the renovate/psutil-7.x branch from 935728b to babd1a7 Compare February 2, 2026 20:37
@renovate renovate bot changed the title Update dependency psutil to v7 Update dependency psutil to v7 - autoclosed Feb 3, 2026
@renovate renovate bot closed this Feb 3, 2026
@renovate renovate bot deleted the renovate/psutil-7.x branch February 3, 2026 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants