)]}'
{
  "commit": "d99aa5912c3af4c0f84738d9471836f068d73d69",
  "tree": "3d56f18402792e6a6b67b51a5e16c70b5e0476b5",
  "parents": [
    "6c32b07650676ab4c112ff8e9d345b6770ae2be5"
  ],
  "author": {
    "name": "Jakub Kicinski",
    "email": "kuba@kernel.org",
    "time": "Mon Feb 23 12:26:31 2026 -0800"
  },
  "committer": {
    "name": "Jakub Kicinski",
    "email": "kuba@kernel.org",
    "time": "Tue Feb 24 18:25:29 2026 -0800"
  },
  "message": "selftests: net: py: avoid masking exceptions in bkg() failures\n\nbkg() failures are currently quite hard to debug and spot.\nOften we have code along the lines of:\n\n  with bkg(\"./cmd_rx_something -p PORT\"):\n       wait_port_listen(PORT)\n       cmd(\"./cmd_tx_something\", host\u003dremote)\n\nWhen wait_port_listen() fails we don\u0027t get to see the exit status\nof bkg(). Even tho very often it\u0027s a failure in the bkg() command\nthat\u0027s actually to blame. Try not to interfere with the bkg()\ncommand error checking.\n\nWith:\n\n   with bkg(\"false\", exit_wait\u003dTrue):\n        time.sleep(0.01)  # let the \u0027false\u0027 cmd run\n        raise Exception(\"bla\")\n\nBefore:\n\n  .. stack trace ..\n  # Exception| Exception: bla\n\nAfter:\n\n  .. stack trace ..\n  # Exception| Exception: bla\n  # Exception|\n  # Exception| During handling of the above exception, another exception occurred:\n  .. stack trace ..\n  # Exception| lib.py.utils.CmdExitFailure: Command failed: false\n  # Exception| STDOUT: b\u0027\u0027\n  # Exception| STDERR: b\u0027\u0027\n\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nLink: https://patch.msgid.link/20260223202633.4126087-2-kuba@kernel.org\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "85884f3e827b69dfe7cc15a4fddc0f61f1331900",
      "old_mode": 33188,
      "old_path": "tools/testing/selftests/net/lib/py/utils.py",
      "new_id": "8fa1c2fabfc28a9847b6b62c71a3aba32cb00315",
      "new_mode": 33188,
      "new_path": "tools/testing/selftests/net/lib/py/utils.py"
    }
  ]
}
