Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update psutil to 5.9.1 #244

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

This PR updates psutil from 5.4.3 to 5.9.1.

Changelog

5.9.1

=====

2022-05-20

**Enhancements**

- 1053_: drop Python 2.6 support.  (patches by Matthieu Darbois and Hugo van
Kemenade)
- 2050_, [Linux]: increase ``read(2)`` buffer size from 1k to 32k when reading
``/proc`` pseudo files line by line. This should help having more consistent
results.
- 2057_, [OpenBSD]: add support for `cpu_freq()`_.
- 2107_, [Linux]: `Process.memory_full_info()`_ (reporting process USS/PSS/Swap
memory) now reads ``/proc/pid/smaps_rollup`` instead of ``/proc/pids/smaps``,
which makes it 5 times faster.

**Bug fixes**

- 2048_: ``AttributeError`` is raised if ``psutil.Error`` class is raised
manually and passed through ``str``.
- 2049_, [Linux]: `cpu_freq()`_ erroneously returns ``curr`` value in GHz while
``min`` and ``max`` are in MHz.
- 2050_, [Linux]: `virtual_memory()`_ may raise ``ValueError`` if running in a
LCX container.

5.9.0

=====

2021-12-29

**Enhancements**

- 1851_, [Linux]: `cpu_freq()`_ is slow on systems with many CPUs. Read current
frequency values for all CPUs from ``/proc/cpuinfo`` instead of opening many
files in ``/sys`` fs.  (patch by marxin)
- 1992_: `NoSuchProcess`_ message now specifies if the PID has been reused.
- 1992_: error classes (`NoSuchProcess`_, `AccessDenied`_, etc.) now have a better
formatted and separated ``__repr__`` and ``__str__`` implementations.
- 1996_, [BSD]: add support for MidnightBSD.  (patch by Saeed Rasooli)
- 1999_, [Linux]: `disk_partitions()`_: convert ``/dev/root`` device (an alias
used on some Linux distros) to real root device path.
- 2005_: ``PSUTIL_DEBUG`` mode now prints file name and line number of the debug
messages coming from C extension modules.
- 2042_: rewrite HISTORY.rst to use hyperlinks pointing to psutil API doc.

**Bug fixes**

- 1456_, [macOS], **[critical]**: `cpu_freq()`_ ``min`` and ``max`` are set to
0 if can't be determined (instead of crashing).
- 1512_, [macOS]: sometimes `Process.connections()`_ will crash with
``EOPNOTSUPP`` for one connection; this is now ignored.
- 1598_, [Windows]: `disk_partitions()`_ only returns mountpoints on drives
where it first finds one.
- 1874_, [SunOS]: swap output error due to incorrect range.
- 1892_, [macOS]: `cpu_freq()`_ broken on Apple M1.
- 1901_, [macOS]: different functions, especially `Process.open_files()`_ and
`Process.connections()`_, could randomly raise `AccessDenied`_ because the
internal buffer of ``proc_pidinfo(PROC_PIDLISTFDS)`` syscall was not big enough.
We now dynamically increase the buffer size until it's big enough instead of
giving up and raising `AccessDenied`_, which was a fallback to avoid crashing.
- 1904_, [Windows]: ``OpenProcess`` fails with ``ERROR_SUCCESS`` due to
``GetLastError()`` called after ``sprintf()``.  (patch by alxchk)
- 1913_, [Linux]: `wait_procs()`_ should catch ``subprocess.TimeoutExpired``
exception.
- 1919_, [Linux]: `sensors_battery()`_ can raise ``TypeError`` on PureOS.
- 1921_, [Windows]: `swap_memory()`_ shows committed memory instead of swap.
- 1940_, [Linux]: psutil does not handle ``ENAMETOOLONG`` when accessing process
file descriptors in procfs.  (patch by Nikita Radchenko)
- 1948_, **[critical]**: ``memoize_when_activated`` decorator is not thread-safe.
(patch by Xuehai Pan)
- 1953_, [Windows], **[critical]**: `disk_partitions()`_ crashes due to
insufficient buffer len. (patch by MaWe2019)
- 1965_, [Windows], **[critical]**: fix "Fatal Python error: deallocating None"
when calling `users()`_ multiple times.
- 1980_, [Windows]: 32bit / WoW64 processes fails to read `Process.name()`_ longer
than 128 characters resulting in `AccessDenied`_. This is now fixed.  (patch
by PetrPospisil)
- 1991_, **[critical]**: `process_iter()`_ is not thread safe and can raise
``TypeError`` if invoked from multiple threads.
- 1956_, [macOS]: `Process.cpu_times()`_ reports incorrect timings on M1 machines.
(patch by Olivier Dormond)
- 2023_, [Linux]: `cpu_freq()`_ return order is wrong on systems with more than
9 CPUs.

5.8.0

=====

2020-12-19

**Enhancements**

- 1863_: `disk_partitions()`_ exposes 2 extra fields: ``maxfile`` and ``maxpath``,
which are the maximum file name and path name length.
- 1872_, [Windows]: added support for PyPy 2.7.
- 1879_: provide pre-compiled wheels for Linux and macOS (yey!).
- 1880_: get rid of Travis and Cirrus CI services (they are no longer free).
CI testing is now done by GitHub Actions on Linux, macOS and FreeBSD (yes).
AppVeyor is still being used for Windows CI.

**Bug fixes**

- 1708_, [Linux]: get rid of `sensors_temperatures()`_ duplicates.  (patch by Tim
Schlueter).
- 1839_, [Windows], **[critical]**: always raise `AccessDenied`_ instead of
``WindowsError`` when failing to query 64 processes from 32 bit ones by using
``NtWoW64`` APIs.
- 1866_, [Windows], **[critical]**: `Process.exe()`_, `Process.cmdline()`_,
`Process.environ()`_ may raise "[WinError 998] Invalid access to memory
location" on Python 3.9 / VS 2019.
- 1874_, [SunOS]: wrong swap output given when encrypted column is present.
- 1875_, [Windows], **[critical]**: `Process.username()`_ may raise
``ERROR_NONE_MAPPED`` if the SID has no corresponding account name. In this
case `AccessDenied`_ is now raised.
- 1886_, [macOS]: ``EIO`` error may be raised on `Process.cmdline()`_ and
`Process.environ()`_. Now it gets translated into `AccessDenied`_.
- 1887_, [Windows], **[critical]**: ``OpenProcess`` may fail with
"[WinError 0] The operation completed successfully"."
Turn it into `AccessDenied`_ or `NoSuchProcess`_ depending on whether the
PID is alive.
- 1891_, [macOS]: get rid of deprecated ``getpagesize()``.

5.7.3

=====

2020-10-23

**Enhancements**

- 809_, [FreeBSD]: add support for `Process.rlimit()`_.
- 893_, [BSD]: add support for `Process.environ()`_ (patch by Armin Gruner)
- 1830_, [POSIX]: `net_if_stats()`_ ``isup`` also checks whether the NIC is
running (meaning Wi-Fi or ethernet cable is connected).  (patch by Chris Burger)
- 1837_, [Linux]: improved battery detection and charge ``secsleft`` calculation
(patch by aristocratos)

**Bug fixes**

- 1620_, [Linux]: `cpu_count()`_ with ``logical=False`` result is incorrect on
systems with more than one CPU socket.  (patch by Vincent A. Arcila)
- 1738_, [macOS]: `Process.exe()`_ may raise ``FileNotFoundError`` if process is still
alive but the exe file which launched it got deleted.
- 1791_, [macOS]: fix missing include for ``getpagesize()``.
- 1823_, [Windows], **[critical]**: `Process.open_files()`_ may cause a segfault
due to a NULL pointer.
- 1838_, [Linux]: `sensors_battery()`_: if `percent` can be determined but not
the remaining values, still return a result instead of ``None``.
(patch by aristocratos)

5.7.2

=====

2020-07-15

**Bug fixes**

- wheels for 2.7 were inadvertently deleted.

5.7.1

=====

2020-07-15

**Enhancements**

- 1729_: parallel tests on POSIX (``make test-parallel``). They're twice as fast!
- 1741_, [POSIX]: ``make build`` now runs in parallel on Python >= 3.6 and
it's about 15% faster.
- 1747_: `Process.wait()`_ return value is cached so that the exit code can be
retrieved on then next call.
- 1747_, [POSIX]: `Process.wait()`_ on POSIX now returns an enum, showing the
negative signal which was used to terminate the process. It returns something
like ``<Negsignal.SIGTERM: -15>``.
- 1747_: `Process`_ class provides more info about the process on ``str()``
and ``repr()`` (status and exit code).
- 1757_: memory leak tests are now stable.
- 1768_, [Windows]: added support for Windows Nano Server. (contributed by
Julien Lebot)

**Bug fixes**

- 1726_, [Linux]: `cpu_freq()`_ parsing should use spaces instead of tabs on ia64.
(patch by Michał Górny)
- 1760_, [Linux]: `Process.rlimit()`_ does not handle long long type properly.
- 1766_, [macOS]: `NoSuchProcess`_ may be raised instead of `ZombieProcess`_.
- 1781_, **[critical]**: `getloadavg()`_ can crash the Python interpreter.
(patch by Ammar Askar)

5.7.0

=====

2020-02-18

**Enhancements**

- 1637_, [SunOS]: add partial support for old SunOS 5.10 Update 0 to 3.
- 1648_, [Linux]: `sensors_temperatures()`_ looks into an additional
``/sys/device/`` directory for additional data.  (patch by Javad Karabi)
- 1652_, [Windows]: dropped support for Windows XP and Windows Server 2003.
Minimum supported Windows version now is Windows Vista.
- 1671_, [FreeBSD]: add CI testing/service for FreeBSD (Cirrus CI).
- 1677_, [Windows]: `Process.exe()`_ will succeed for all process PIDs (instead of
raising `AccessDenied`_).
- 1679_, [Windows]: `net_connections()`_ and `Process.connections()`_ are 10% faster.
- 1682_, [PyPy]: added CI / test integration for PyPy via Travis.
- 1686_, [Windows]: added support for PyPy on Windows.
- 1693_, [Windows]: `boot_time()`_, `Process.create_time()`_ and `users()`_'s
login time now have 1 micro second precision (before the precision was of 1
second).

**Bug fixes**

- 1538_, [NetBSD]: `Process.cwd()`_ may return ``ENOENT`` instead of `NoSuchProcess`_.
- 1627_, [Linux]: `Process.memory_maps()`_ can raise ``KeyError``.
- 1642_, [SunOS]: querying basic info for PID 0 results in ``FileNotFoundError``.
- 1646_, [FreeBSD], **[critical]**: many `Process`_ methods may cause a segfault
due to a backward incompatible change in a C type on FreeBSD 12.0.
- 1656_, [Windows]: `Process.memory_full_info()`_ raises `AccessDenied`_ even for the
current user and os.getpid().
- 1660_, [Windows]: `Process.open_files()`_ complete rewrite + check of errors.
- 1662_, [Windows], **[critical]**: `Process.exe()`_ may raise "[WinError 0]
The operation completed successfully".
- 1665_, [Linux]: `disk_io_counters()`_ does not take into account extra fields
added to recent kernels.  (patch by Mike Hommey)
- 1672_: use the right C type when dealing with PIDs (int or long). Thus far
(long) was almost always assumed, which is wrong on most platforms.
- 1673_, [OpenBSD]: `Process.connections()`_, `Process.num_fds()`_ and
`Process.threads()`_ returned improper exception if process is gone.
- 1674_, [SunOS]: `disk_partitions()`_ may raise ``OSError``.
- 1684_, [Linux]: `disk_io_counters()`_ may raise ``ValueError`` on systems not
having ``/proc/diskstats``.
- 1695_, [Linux]: could not compile on kernels <= 2.6.13 due to
``PSUTIL_HAVE_IOPRIO`` not being defined.  (patch by Anselm Kruis)

5.6.7

=====

2019-11-26

**Bug fixes**

- 1630_, [Windows], **[critical]**: can't compile source distribution due to C
syntax error.

5.6.6

=====

2019-11-25

**Bug fixes**

- 1179_, [Linux]: `Process.cmdline()`_ now takes into account misbehaving processes
renaming the command line and using inappropriate chars to separate args.
- 1616_, **[critical]**: use of ``Py_DECREF`` instead of ``Py_CLEAR`` will
result in double ``free()`` and segfault
(`CVE-2019-18874 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-18874>`__).
(patch by Riccardo Schirone)
- 1619_, [OpenBSD], **[critical]**: compilation fails due to C syntax error.
(patch by Nathan Houghton)

5.6.5

=====

2019-11-06

**Bug fixes**

- 1615_: remove ``pyproject.toml`` as it was causing installation issues.

5.6.4

=====

2019-11-04

**Enhancements**

- 1527_, [Linux]: added `Process.cpu_times()`_ ``iowait`` counter, which is the
time spent waiting for blocking I/O to complete.
- 1565_: add PEP 517/8 build backend and requirements specification for better
pip integration.  (patch by Bernát Gábor)

**Bug fixes**

- 875_, [Windows], **[critical]**: `Process.cmdline()`_, `Process.environ()`_ or
`Process.cwd()`_ may occasionally fail with ``ERROR_PARTIAL_COPY`` which now
gets translated to `AccessDenied`_.
- 1126_, [Linux], **[critical]**: `Process.cpu_affinity()`_ segfaults on CentOS
5 / manylinux. `Process.cpu_affinity()`_ support for CentOS 5 was removed.
- 1528_, [AIX], **[critical]**: compilation error on AIX 7.2 due to 32 vs 64
bit differences. (patch by Arnon Yaari)
- 1535_: ``type`` and ``family`` fields returned by `net_connections()`_ are not
always turned into enums.
- 1536_, [NetBSD]: `Process.cmdline()`_ erroneously raise `ZombieProcess`_ error if
cmdline has non encodable chars.
- 1546_: usage percent may be rounded to 0 on Python 2.
- 1552_, [Windows]: `getloadavg()`_ math for calculating 5 and 15 mins values is
incorrect.
- 1568_, [Linux]: use CC compiler env var if defined.
- 1570_, [Windows]: ``NtWow64*`` syscalls fail to raise the proper error code
- 1585_, [OSX]: avoid calling ``close()`` (in C) on possible negative integers.
(patch by Athos Ribeiro)
- 1606_, [SunOS], **[critical]**: compilation fails on SunOS 5.10.
(patch by vser1)

5.6.3

=====

2019-06-11

**Enhancements**

- 1494_, [AIX]: added support for `Process.environ()`_.  (patch by Arnon Yaari)

**Bug fixes**

- 1276_, [AIX]: can't get whole `Process.cmdline()`_.  (patch by Arnon Yaari)
- 1501_, [Windows]: `Process.cmdline()`_ and `Process.exe()`_ raise unhandled
"WinError 1168 element not found" exceptions for "Registry" and
"Memory Compression" psuedo processes on Windows 10.
- 1526_, [NetBSD], **[critical]**: `Process.cmdline()`_ could raise
``MemoryError``.  (patch by Kamil Rytarowski)

5.6.2

=====

2019-04-26

**Enhancements**

- 604_, [Windows]: add new `getloadavg()`_, returning system load average
calculation, including on Windows (emulated).  (patch by Ammar Askar)
- 1404_, [Linux]: `cpu_count()`_ with ``logical=False`` uses a second method
(read from ``/sys/devices/system/cpu/cpu[0-9]/topology/core_id``) in order to
determine the number of CPU cores in case ``/proc/cpuinfo`` does not provide this
info.
- 1458_: provide coloured test output. Also show failures on
``KeyboardInterrupt``.
- 1464_: various docfixes (always point to Python 3 doc, fix links, etc.).
- 1476_, [Windows]: it is now possible to set process high I/O priority
(`Process.ionice()`_). Also, I/O priority values are now exposed as 4 new
constants: ``IOPRIO_VERYLOW``, ``IOPRIO_LOW``, ``IOPRIO_NORMAL``,
``IOPRIO_HIGH``.
- 1478_: add make command to re-run tests failed on last run.

**Bug fixes**

- 1223_, [Windows]: `boot_time()`_ may return incorrect value on Windows XP.
- 1456_, [Linux]: `cpu_freq()`_ returns ``None`` instead of 0.0 when ``min``
and ``max`` fields can't be determined. (patch by Alex Manuskin)
- 1462_, [Linux]: (tests) make tests invariant to ``LANG`` setting (patch by
Benjamin Drung)
- 1463_: `cpu_distribution.py`_ script was broken.
- 1470_, [Linux]: `disk_partitions()`_: fix corner case when ``/etc/mtab``
doesn't exist.  (patch by Cedric Lamoriniere)
- 1471_, [SunOS]: `Process.name()`_ and `Process.cmdline()`_ can return
``SystemError``.  (patch by Daniel Beer)
- 1472_, [Linux]: `cpu_freq()`_ does not return all CPUs on Rasbperry-pi 3.
- 1474_: fix formatting of ``psutil.tests()`` which mimicks ``ps aux`` output.
- 1475_, [Windows], **[critical]**: ``OSError.winerror`` attribute wasn't
properly checked resuling in ``WindowsError(ERROR_ACCESS_DENIED)`` being
raised instead of `AccessDenied`_.
- 1477_, [Windows]: wrong or absent error handling for private ``NTSTATUS``
Windows APIs. Different process methods were affected by this.
- 1480_, [Windows], **[critical]**: `cpu_count()`_ with ``logical=False`` could
cause a crash due to fixed read violation.  (patch by Samer Masterson)
- 1486_, [AIX], [SunOS]: ``AttributeError`` when interacting with `Process`_
methods involved into `Process.oneshot()`_ context.
- 1491_, [SunOS]: `net_if_addrs()`_: use ``free()`` against ``ifap`` struct
on error.  (patch by Agnewee)
- 1493_, [Linux]: `cpu_freq()`_: handle the case where
``/sys/devices/system/cpu/cpufreq/`` exists but it's empty.

5.6.1

=====

2019-03-11

**Bug fixes**

- 1329_, [AIX]: psutil doesn't compile on AIX 6.1.  (patch by Arnon Yaari)
- 1448_, [Windows], **[critical]**: crash on import due to ``rtlIpv6AddressToStringA``
not available on Wine.
- 1451_, [Windows], **[critical]**: `Process.memory_full_info()`_ segfaults.
``NtQueryVirtualMemory`` is now used instead of ``QueryWorkingSet`` to
calculate USS memory.

5.6.0

=====

2019-03-05

**Enhancements**

- 1379_, [Windows]: `Process.suspend()`_ and `Process.resume()`_ now use
``NtSuspendProcess`` and ``NtResumeProcess`` instead of stopping/resuming all
threads of a process. This is faster and more reliable (aka this is what
ProcessHacker does).
- 1420_, [Windows]: in case of exception `disk_usage()`_ now also shows the path
name.
- 1422_, [Windows]: Windows APIs requiring to be dynamically loaded from DLL
libraries are now loaded only once on startup (instead of on per function
call) significantly speeding up different functions and methods.
- 1426_, [Windows]: ``PAGESIZE`` and number of processors is now calculated on
startup.
- 1428_: in case of error, the traceback message now shows the underlying C
function called which failed.
- 1433_: new `Process.parents()`_ method.  (idea by Ghislain Le Meur)
- 1437_: `pids()`_ are returned in sorted order.
- 1442_: Python 3 is now the default interpreter used by Makefile.

**Bug fixes**

- 1353_: `process_iter()`_ is now thread safe (it rarely raised ``TypeError``).
- 1394_, [Windows], **[critical]**: `Process.name()`_ and `Process.exe()`_ may
erroneously return "Registry" or fail with "[Error 0] The operation completed
successfully".
``QueryFullProcessImageNameW`` is now used instead of
``GetProcessImageFileNameW`` in order to prevent that.
- 1411_, [BSD]: lack of ``Py_DECREF`` could cause segmentation fault on process
instantiation.
- 1419_, [Windows]: `Process.environ()`_ raises ``NotImplementedError`` when
querying a 64-bit process in 32-bit-WoW mode. Now it raises `AccessDenied`_.
- 1427_, [OSX]: `Process.cmdline()`_ and `Process.environ()`_ may erroneously
raise ``OSError`` on failed ``malloc()``.
- 1429_, [Windows]: ``SE DEBUG`` was not properly set for current process. It is
now, and it should result in less `AccessDenied`_ exceptions for low PID
processes.
- 1432_, [Windows]: `Process.memory_info_ex()`_'s USS memory is miscalculated
because we're not using the actual system ``PAGESIZE``.
- 1439_, [NetBSD]: `Process.connections()`_ may return incomplete results if using
`Process.oneshot()`_.
- 1447_: original exception wasn't turned into `NoSuchProcess`_ / `AccessDenied`_
exceptions when using `Process.oneshot()`_ context manager.

**Incompatible API changes**

- 1291_, [OSX], **[critical]**: `Process.memory_maps()`_ was removed because
inherently broken (segfault) for years.

5.5.1

=====

2019-02-15

**Enhancements**

- 1348_, [Windows]: on Windows >= 8.1 if `Process.cmdline()`_ fails due to
``ERROR_ACCESS_DENIED`` attempt using ``NtQueryInformationProcess`` +
``ProcessCommandLineInformation``. (patch by EccoTheFlintstone)

**Bug fixes**

- 1394_, [Windows]: `Process.exe()`_ returns "[Error 0] The operation completed
successfully" when Python process runs in "Virtual Secure Mode".
- 1402_: psutil exceptions' ``repr()`` show the internal private module path.
- 1408_, [AIX], **[critical]**: psutil won't compile on AIX 7.1 due to missing
header.  (patch by Arnon Yaari)

5.5.0

=====

2019-01-23

**Enhancements**

- 1350_, [FreeBSD]: added support for `sensors_temperatures()`_.  (patch by Alex
Manuskin)
- 1352_, [FreeBSD]: added support for `cpu_freq()`_.  (patch by Alex Manuskin)

**Bug fixes**

- 1111_: `Process.oneshot()`_ is now thread safe.
- 1354_, [Linux]: `disk_io_counters()`_ fails on Linux kernel 4.18+.
- 1357_, [Linux]: `Process.memory_maps()`_ and `Process.io_counters()`_ methods
are no longer exposed if not supported by the kernel.
- 1368_, [Windows]: fix `Process.ionice()`_ mismatch.  (patch by
EccoTheFlintstone)
- 1370_, [Windows]: improper usage of ``CloseHandle()`` may lead to override the
original error code when raising an exception.
- 1373_, **[critical]**: incorrect handling of cache in `Process.oneshot()`_
context causes `Process`_ instances to return incorrect results.
- 1376_, [Windows]: ``OpenProcess`` now uses ``PROCESS_QUERY_LIMITED_INFORMATION``
access rights wherever possible, resulting in less `AccessDenied`_ exceptions
being thrown for system processes.
- 1376_, [Windows]: check if variable is ``NULL`` before ``free()`` ing it.
(patch by EccoTheFlintstone)

5.4.8

=====

2018-10-30

**Enhancements**

- 1197_, [Linux]: `cpu_freq()`_ is now implemented by parsing ``/proc/cpuinfo``
in case ``/sys/devices/system/cpu/*`` filesystem is not available.
- 1310_, [Linux]: `sensors_temperatures()`_ now parses ``/sys/class/thermal``
in case ``/sys/class/hwmon`` fs is not available (e.g. Raspberry Pi).  (patch
by Alex Manuskin)
- 1320_, [POSIX]: better compilation support when using g++ instead of GCC.
(patch by Jaime Fullaondo)

**Bug fixes**

- 715_: do not print exception on import time in case `cpu_times()`_ fails.
- 1004_, [Linux]: `Process.io_counters()`_ may raise ``ValueError``.
- 1277_, [OSX]: available and used memory (`virtual_memory()`_) metrics are
not accurate.
- 1294_, [Windows]: `Process.connections()`_ may sometimes fail with
intermittent ``0xC0000001``.  (patch by Sylvain Duchesne)
- 1307_, [Linux]: `disk_partitions()`_ does not honour `PROCFS_PATH`_.
- 1320_, [AIX]: system CPU times (`cpu_times()`_) were being reported with
ticks unit as opposed to seconds.  (patch by Jaime Fullaondo)
- 1332_, [OSX]: psutil debug messages are erroneously printed all the time.
(patch by Ilya Yanok)
- 1346_, [SunOS]: `net_connections()`_ returns an empty list.  (patch by Oleksii
Shevchuk)

5.4.7

=====

2018-08-14

**Enhancements**

- 1286_, [macOS]: ``psutil.OSX`` constant is now deprecated in favor of new
``psutil.MACOS``.
- 1309_, [Linux]: added ``psutil.STATUS_PARKED`` constant for `Process.status()`_.
- 1321_, [Linux]: add `disk_io_counters()`_ dual implementation relying on
``/sys/block`` filesystem in case ``/proc/diskstats`` is not available.
(patch by Lawrence Ye)

**Bug fixes**

- 1209_, [macOS]: `Process.memory_maps()`_ may fail with ``EINVAL`` due to poor
``task_for_pid()`` syscall. `AccessDenied`_ is now raised instead.
- 1278_, [macOS]: `Process.threads()`_ incorrectly return microseconds instead of
seconds. (patch by Nikhil Marathe)
- 1279_, [Linux], [macOS], [BSD]: `net_if_stats()`_ may return ``ENODEV``.
- 1294_, [Windows]: `Process.connections()`_ may sometime fail with
``MemoryError``.  (patch by sylvainduchesne)
- 1305_, [Linux]: `disk_io_counters()`_ may report inflated r/w bytes values.
- 1309_, [Linux]: `Process.status()`_ is unable to recognize ``"idle"`` and
``"parked"`` statuses (returns ``"?"``).
- 1313_, [Linux]: `disk_io_counters()`_ can report inflated values due to
counting base disk device and its partition(s) twice.
- 1323_, [Linux]: `sensors_temperatures()`_ may fail with ``ValueError``.

5.4.6

=====

2018-06-07

**Bug fixes**

- 1258_, [Windows], **[critical]**: `Process.username()`_ may cause a segfault
(Python interpreter crash).  (patch by Jean-Luc Migot)
- 1273_: `net_if_addrs()`_ namedtuple's name has been renamed from ``snic`` to
``snicaddr``.
- 1274_, [Linux]: there was a small chance `Process.children()`_ may swallow
`AccessDenied`_ exceptions.

5.4.5

=====

2018-04-14

**Bug fixes**

- 1268_: setup.py's ``extra_require`` parameter requires latest setuptools version,
breaking quite a lot of installations.

5.4.4

=====

2018-04-13

**Enhancements**

- 1239_, [Linux]: expose kernel ``slab`` memory field for `virtual_memory()`_.
(patch by Maxime Mouial)

**Bug fixes**

- 694_, [SunOS]: `Process.cmdline()`_ could be truncated at the 15th character when
reading it from ``/proc``. An extra effort is made by reading it from process
address space first.  (patch by Georg Sauthoff)
- 771_, [Windows]: `cpu_count()`_ (both logical and cores) return a wrong
(smaller) number on systems using process groups (> 64 cores).
- 771_, [Windows]: `cpu_times()`_ with ``percpu=True`` return fewer CPUs on
systems using process groups (> 64 cores).
- 771_, [Windows]: `cpu_stats()`_ and `cpu_freq()`_ may return incorrect results on
systems using process groups (> 64 cores).
- 1193_, [SunOS]: return uid/gid from ``/proc/pid/psinfo`` if there aren't
enough permissions for ``/proc/pid/cred``.  (patch by Georg Sauthoff)
- 1194_, [SunOS]: return nice value from ``psinfo`` as ``getpriority()`` doesn't
support real-time processes.  (patch by Georg Sauthoff)
- 1194_, [SunOS]: fix double ``free()`` in `Process.cpu_num()`_.  (patch by Georg
Sauthoff)
- 1194_, [SunOS]: fix undefined behavior related to strict-aliasing rules
and warnings.  (patch by Georg Sauthoff)
- 1210_, [Linux]: `cpu_percent()`_ steal time may remain stuck at 100% due to Linux
erroneously reporting a decreased steal time between calls. (patch by Arnon
Yaari)
- 1216_: fix compatibility with Python 2.6 on Windows (patch by Dan Vinakovsky)
- 1222_, [Linux]: `Process.memory_full_info()`_ was erroneously summing "Swap:" and
"SwapPss:". Same for "Pss:" and "SwapPss". Not anymore.
- 1224_, [Windows]: `Process.wait()`_ may erroneously raise `TimeoutExpired`_.
- 1238_, [Linux]: `sensors_battery()`_ may return ``None`` in case battery is not
listed as "BAT0" under ``/sys/class/power_supply``.
- 1240_, [Windows]: `cpu_times()`_ float loses accuracy in a long running system.
(patch by stswandering)
- 1245_, [Linux]: `sensors_temperatures()`_ may fail with ``IOError`` "no such file".
- 1255_, [FreeBSD]: `swap_memory()`_ stats were erroneously represented in KB.
(patch by Denis Krienbühl)

**Backward compatibility**

- 771_, [Windows]: `cpu_count()`_ with ``logical=False`` on Windows XP and Vista
is no longer supported and returns ``None``.
Links

@pyup-bot pyup-bot mentioned this pull request May 20, 2022
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.

1 participant