All Versions
87
Latest Version
Avg Release Cycle
46 days
Latest Release
-

Changelog History
Page 2

  • v5.6.7 Changes

    November 26, 2019

    2019-11-26

    πŸ› Bug fixes

    • 🏁 1630_, [Windows], [critical]: can't compile source distribution due to C syntax error.
  • v5.6.6 Changes

    November 25, 2019

    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)
  • v5.6.5 Changes

    November 06, 2019

    2019-11-06

    πŸ› Bug fixes

    • 🚚 1615_: remove pyproject.toml as it was causing installation issues.
  • v5.6.4 Changes

    November 04, 2019

    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)
  • v5.6.3 Changes

    June 11, 2019

    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)
  • v5.6.2 Changes

    April 26, 2019

    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.
  • v5.6.1 Changes

    March 11, 2019

    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.
  • v5.6.0 Changes

    March 05, 2019

    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.
    • 0️⃣ 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.
  • v5.5.1 Changes

    February 15, 2019

    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)
  • v5.5.0 Changes

    January 23, 2019

    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)