)]}'
{
  "commit": "aeb18b5d7e4fcc36225d43c3385a52cd5b6ad3cd",
  "tree": "561fa614644d37bd875ed2c5cf0bbe7b6c93a0b3",
  "parents": [
    "0c7fc4fc3391870f0d35df17353cf034faa9ba68"
  ],
  "author": {
    "name": "Brian Christiansen",
    "email": "bchristianse@nvidia.com",
    "time": "Tue Jul 14 13:30:34 2026 -0600"
  },
  "committer": {
    "name": "Brian Christiansen",
    "email": "bchristianse@nvidia.com",
    "time": "Wed Jul 22 13:22:43 2026 -0600"
  },
  "message": "Simplify sinfo --states\u003dall and fix a memory error\n\n_build_all_states_list() (used for --states\u003dall) built the state filter\nlist out of bare uint16_t elements, but the rest of sinfo treats each\nelement as a sinfo_state_t (uint32_t state plus an op field). For\n--states\u003dall each state was then read as a uint32_t from a two-byte\nallocation and the op field was read out of bounds, so filtering used an\nuninitialized op that could invert matches; the list was also created\nwithout a destructor. Because every node has a base state, the\nenumerated list matched every node anyway, i.e. a single match-any\nentry.\n\nThe \"all\" keyword and _build_all_states_list() date back to the 2003\nsinfo rewrite (commit 56bbdcdddc) and were copied from squeue\u0027s\nidentical\n--states handling -- the stale \"List of enum job_states values\" comment\ngives the origin away. For squeue \"all\" is useful because its default\nhides terminal job states, but sinfo always reports every node\nregardless of state, so it has only ever matched everything.\n\nRepresent \"all\" as one sinfo_state_t carrying a SINFO_STATE_ALL sentinel\nthat _filter_node_state() treats as an unconditional match, and remove\n_build_all_states_list(). Behavior is unchanged: --states\u003dall matches\nevery node.\n\nTicket: 25499\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a7da352a54ba286a18a10c9abb0c0f02337fab6f",
      "old_mode": 33188,
      "old_path": "src/sinfo/opts.c",
      "new_id": "45febbe7b63d906cf3faaa8abb4292ad92af9aa3",
      "new_mode": 33188,
      "new_path": "src/sinfo/opts.c"
    },
    {
      "type": "modify",
      "old_id": "1a1704842aac31ab4f8b355779789d706d4f4508",
      "old_mode": 33188,
      "old_path": "src/sinfo/sinfo.c",
      "new_id": "9f9d871d1a1aea003e3d5d0eff1c95c4c31ed6d9",
      "new_mode": 33188,
      "new_path": "src/sinfo/sinfo.c"
    },
    {
      "type": "modify",
      "old_id": "ae663c303e5366010345de1e5df16a9f1c2dbd59",
      "old_mode": 33188,
      "old_path": "src/sinfo/sinfo.h",
      "new_id": "aa7a1ac2faf1bdd87fa7277cce63250f1e165258",
      "new_mode": 33188,
      "new_path": "src/sinfo/sinfo.h"
    }
  ]
}
