# changelog

author: <klaus.wenninger@aon.at> - 1.3.0-0.1.4ee36fa3.git
changelog:
  - Changes since v1.2.0 like adding the possibility to have a
    watchdog-only setup without shared-block-devices
    legitimate a bump to v1.3.0.


author: <klaus.wenninger@aon.at> - 1.3.1-0.1.a180176c.git
changelog:
  - Add commands to test/query watchdogs
  - Allow 2-node-operation with a single shared-disk
  - Overhaul of the command-line options & config-file
  - Proper handling of off instead of reboot
  - Refactored disk-servant for more robust communication with parent
  - Fix config for Debian + configurable location of config
  - Fixes in sbd.sh - multiple SBD devices and others


author: <klaus.wenninger@aon.at> - 1.3.1-0.1.e102d9ed.git
changelog:
  - removed unneeded python-devel build-requirement
  - changed legacy corosync-devel to corosynclib-devel


author: <klaus.wenninger@aon.at> - 1.4.0-0.1.2d595fdd.git
changelog:
  - updated travis-CI (ppc64le-build, fedora29, remove need for
    alectolytic-build-container)
  - make watchdog-device-query easier to be handled by an SELinux-policy
  - configurable delay value for SBD_DELAY_START
  - use pacemaker's new pe api with constructors/destructors
  - make timeout-action executed by sbd configurable
  - init script for sysv systems
  - version bump to v1.4.0 to denote Pacemaker 2.0.0 compatibility


author: <klaus.wenninger@aon.at> - 1.4.1-99.1.aca7907c.git
changelog:
  - improvements/clarifications in documentation
  - properly finalize cmap connection when disconnected from cluster
  - make handling of cib-connection loss more robust
  - silence some coverity findings
  - overhaul log for reasonable prios and details
  - if current slice doesn't have rt-budget move to root-slice
  - periodically ping corosync daemon for liveness
  - actually use crashdump timeout if configured
  - avoid deprecated names for g_main-loop-funcitons
  - conflict with fence-agents-sbd < 4.5.0
  - rather require corosync-devel provided by most distributions
  - make devices on cmdline overrule those coming via SBD_DEVICE
  - make 15s timeout on s390 be used consistently
  - improve build/test for CI-friendlyness
  -   * add autogen.sh
  -   * enable/improve out-of-tree-building
  -   * make tar generation smarter
  -   * don't modify sbd.spec
  -   * make distcheck-target work
  -   * Add tests/regressions.sh to check-target
  -   * use unique devmapper names for multiple tests in parallel
  -   * consistently use serial test-harness for visible progress
  -   * package tests into separate package (not packaged before)
  -   * add preload-library to intercept reboots while testing
  -   * add tests for sbd in daemon-mode & watchdog-dev-handling
  -   * make tests work in non-privileged containers


author: <klaus.wenninger@aon.at> - 1.4.2-99.1.bfeee963.git
changelog:
  - improve build/CI-friendlyness
  - * travis: switch to F32 as build-host
  -           switch to F32 & leap-15.2
  -           changes for mock-2.0
  -           turn off loop-devices & device-mapper on x86_64 targets because
  -           of changes in GCE
  - * regressions.sh: get timeouts from disk-header to go with proper defaults
  -                   for architecture
  - * use configure for watchdog-default-timeout & others
  - * ship sbd.pc with basic sbd build information for downstream packages
  -   to use
  - * add number of commits since version-tag to build-counter

  - add robustness against misconfiguration / improve documentation
  - * add environment section to man-page previously just available in
  -   template-config
  - * inform the user to restart the sbd service after disk-initialization
  - * refuse to start if any of the configured device names is invalid
  - * add handshake to sync startup/shutdown with pacemakerd
  -   Previously sbd just waited for the cib-connnection to show up/go away
  -   which isn't robust at all.
  -   The new feature needs new pacemakerd-api as counterpart.
  -   Thus build checks for presence of pacemakerd-api.
  -   To simplify downstream adoption behavior is configurable at runtime
  -   via configure-file with a build-time-configurable default.
  - * refuse to start if qdevice-sync_timeout doesn't match watchdog-timeout
  -   Needed in particular as qdevice-sync_timeout delays quorum-state-update
  -   and has a default of 30s that doesn't match the 5s watchdog-timeout
  -   default.

  - Fix: sbd-pacemaker: handle new no_quorum_demote + robustness against new
  -                     policies added
  - Fix: agent: correctly compare string values when calculating timeout
  - Fix: scheduling: overhaul the whole thing
  - * prevent possible lockup when format in proc changes
  - * properly get and handle scheduler policy & prio
  - * on SCHED_RR failing push to the max with SCHED_OTHER


author: <klaus.wenninger@aon.at> - 1.5.0-99.0.2a00ac70.git
changelog:
  - default to resource-syncing with pacemaker in spec-file and configure.ac
    This default has to match between sbd and pacemaker and
    thus qualifies this release for a minor-version-bump
  - fix some regressions introduced by adding configurability previously
  - adapt description of startup/shutdown sync with pacemaker
  - make watchdog warning messages more understandable


author: <klaus.wenninger@aon.at> - 1.5.1-99.0.7bcdf695.git
changelog:
  - improve/fix cmdline handling
    - tell the actual watchdog device specified with -w
    - tolerate and strip any leading spaces of commandline option values
    - Sanitize numeric arguments
  - if start-delay enabled, not explicitly given and msgwait can't be
    read from disk (diskless) use 2 * watchdog-timeout
  - avoid using deprecated valloc for disk-io-buffers
  - avoid frequent alloc/free of aligned buffers to prevent fragmentation
  - fix memory-leak in one-time-allocations of sector-buffers
  - fix AIO-API usage: properly destroy io-context
  - improve/fix build environment
    - validate configure options for paths
    - remove unneeded complexity of configure.ac hierarchy
    - correctly derive package version from git (regression since 1.5.0)
    - make runstatedir configurable and derive from distribution


author: <klaus.wenninger@aon.at> - 1.5.2-99.0.8ec8e011.git
changelog:
  - fail startup if pacemaker integration is disabled while
    SBD_SYNC_RESOURCE_STARTUP is conflicting (+ hint to overcome)
  - improve logs
    - when logging state of SBD_PACEMAKER tell it is just that as
      this might still be overridden via cmdline options
    - log a warning if SBD_PACEMAKER is overridden by -P or -PP option
    - do not warn about startup syncing with pacemaker integration disabled
    - when watchdog-device is busy give a hint on who is hogging it
  - improve build environment
    - have --with-runstatedir overrule --runstatedir
    - use new package name for pacemaker devel on opensuse
    - make config location configurable for man-page-creation
    - reverse alloc/de-alloc order to make gcc-12 static analysis happy
  - improve test environment
    - have image-files in /dev/shm to assure they are in memory and
      sbd opening the files with O_SYNC doesn't trigger unnecessary
      syncs on a heavily loaded test-machine
      fallback to /tmp if /dev/shm doesn't exist
    - wrapping away libaio and usage of device-mapper for block-device
      simulation can now be passed into make via
      SBD_USE_DM & SBD_TRANSLATE_AIO
    - have variables that configure test-environment be printed
      out prior to running tests
    - finally assure we clean environment when interrupted by a
      signal (bash should have done it with just setting EXIT handler -
      but avoiding bashism might come handy one day)


