nohang/CHANGELOG.md
2019-07-14 12:49:50 +09:00

4.0 KiB

Changelog

  • In progress

    • Added new CLI options:
      • -v, --version
      • -p, --print-proc-table
      • -cc CONFIG, --check-config CONFIG
    • Possible process crashes are fixed:
      • Fixed crash at startup due to UnicodeDecodeError on some systems
      • Handled UnicodeDecodeError if victim name consists of many unicode characters (rfjakob/earlyoom#110)
      • Fixed process crash before performing corrective actions if Python 3.4 or lower are used to interpret nohang
    • Improve output:
      • Display oom_score, oom_score_adj, Ancestry, EUID, State, VmSize, RssAnon, RssFile, RssShmem, CGroup_v1, CGroup_v2, Realpath, Cmdline and Lifetime of the victim in corrective action reports
      • Added memory report interval
      • Added delta memory info (the rate of change of available memory)
      • Print statistics on corrective actions after each corrective action
      • Added ability to print a process table before each corrective action
      • Added the ability to log into a separate file
    • Improved GUI warnings:
      • Reduced the idle time of the daemon in the process of launching a notification
      • All notify-send calls are made using the nohang_notify_helper script, in which all timeouts are handled
      • Native python implementation of env search without running ps to notify all users if nohang started with UID=0.
    • Improved modifing badness via matching with regular expressions:
      • Added the ability to set many different badness_adj for processes depending on the matching Name, CGroup_v1, CGroup_v2, cmdline, realpath, environ and EUID with the specified regular expressions (issue #11)
      • Fix: replace re.fullmatch() by re.search()
    • Reduced memory usage:
      • Reduced memory usage and startup time (using sys.argv instead of argparse)
      • Reduced memory usage with mlockall() using MCL_ONFAULT (rfjakob/earlyoom#112)
    • Lock all memory by default using mlockall()
    • Added new tools:
      • oom-sort
      • psi-top
      • psi-monitor
      • i-memhog
    • Improve poll rate algorithm
    • Fixed Makefile for installation on CentOS 7 (remove gzip -k option).
    • Added max_post_sigterm_victim_lifetime option: send SIGKILL to the victim if it doesn't respond to SIGTERM for a certain time
    • Added post_kill_exe option (the ability to run any command after killing a victim)
    • Added warning_exe option (the ability to run any command instead of GUI low memory warnings)
    • Added victim_cache_time option
    • Improved victim search algorithm (do it ~30% faster) (rfjakob/earlyoom#114)
    • Improved limiting oom_score_adj: now it can works with UID != 0
    • Fixed conf parsing: use of line.partition('=') instead of line.split('=')
    • Removed self-defense options from the config, use systemd unit scheduling instead
    • Added the ability to send any signal instead of SIGTERM for processes with certain names
    • Added support for PSI
    • Recheck memory levels after finding a victim to prevent killing innocent victims in some cases (issue #20)
    • Now one corrective action to one victim can be applied only once.
    • Ignoring zram by default, checking for this has become optional.
    • Improved user input validation
    • Improved documentation
    • Handle signals (SIGTERM, SIGINT, SIGQUIT, SIGHUP), print total stat by corrective actions at exit.
  • v0.1, 2018-11-23: Initial release