)]}'
{
  "commit": "27fd2cc20a8162d3356c3b441b89ed070213644b",
  "tree": "4e3cc6eff22c3c93d3b5b35a1cec1dda10d333ed",
  "parents": [
    "f89692c1f4656cd97307e2ae77ebaebd137ee38a"
  ],
  "author": {
    "name": "Andrei Litvin",
    "email": "andy314@gmail.com",
    "time": "Fri May 22 15:14:23 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 22 19:14:23 2026 +0000"
  },
  "message": "Always clear all signal handlers on app exists. (#72156)\n\nCI reports a memory leak:\n\n```\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.521 - APP  STDERR: Direct leak of 128 byte(s) in 1 object(s) allocated from:\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.522 - APP  STDERR:     #0 0x000103639354 in calloc+0x78 (libclang_rt.asan_osx_dynamic.dylib:arm64+0x55354)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.523 - APP  STDERR:     #1 0x00018ca6c6ec in _malloc_type_calloc_outlined+0x64 (libsystem_malloc.dylib:arm64e+0x1e6ec)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.523 - APP  STDERR:     #2 0x00018c7ff7d8 in class_createInstance+0x48 (libobjc.A.dylib:arm64e+0x77d8)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.523 - APP  STDERR:     #3 0x00018caa184c in _os_object_alloc_realized+0x1c (libdispatch.dylib:arm64e+0x284c)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.524 - APP  STDERR:     #4 0x00018cab588c in dispatch_source_create+0x38 (libdispatch.dylib:arm64e+0x1688c)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.525 - APP  STDERR:     #5 0x00010278e354 in chip::DeviceLayer::PlatformManagerImpl::RegisterSignalHandler(int, void () block_pointer)+0x3ec (lit-icd-app:arm64+0x1005b2354)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.525 - APP  STDERR:     #6 0x0001022a1cf8 in ChipLinuxAppMainLoop(chip::ServerInitParams\u0026, AppMainLoopImplementation*)+0x1960 (lit-icd-app:arm64+0x1000c5cf8)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.525 - APP  STDERR:     #7 0x0001021dde3c in main+0x9a0 (lit-icd-app:arm64+0x100001e3c)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.526 - APP  STDERR:     #8 0x00018c89fda0 in start+0x1b4c (dyld:arm64e+0x1fda0)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.526 - APP  STDERR: \nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.527 - APP  STDERR: Indirect leak of 80 byte(s) in 1 object(s) allocated from:\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.527 - APP  STDERR:     #0 0x000103639354 in calloc+0x78 (libclang_rt.asan_osx_dynamic.dylib:arm64+0x55354)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.527 - APP  STDERR:     #1 0x00018ca6c6ec in _malloc_type_calloc_outlined+0x64 (libsystem_malloc.dylib:arm64e+0x1e6ec)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.527 - APP  STDERR:     #2 0x00018caa0918 in _dispatch_calloc_typed+0x20 (libdispatch.dylib:arm64e+0x1918)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.529 - APP  STDERR:     #3 0x00018cac0838 in _dispatch_unote_create+0x8c (libdispatch.dylib:arm64e+0x21838)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.529 - APP  STDERR:     #4 0x00018cab5874 in dispatch_source_create+0x20 (libdispatch.dylib:arm64e+0x16874)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.530 - APP  STDERR:     #5 0x00010278e354 in chip::DeviceLayer::PlatformManagerImpl::RegisterSignalHandler(int, void () block_pointer)+0x3ec (lit-icd-app:arm64+0x1005b2354)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.530 - APP  STDERR:     #6 0x0001022a1cf8 in ChipLinuxAppMainLoop(chip::ServerInitParams\u0026, AppMainLoopImplementation*)+0x1960 (lit-icd-app:arm64+0x1000c5cf8)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.530 - APP  STDERR:     #7 0x0001021dde3c in main+0x9a0 (lit-icd-app:arm64+0x100001e3c)\nERROR   [Worker] Test_TC_ICDM_4_1: 15:03:07.530 - APP  STDERR:     #8 0x00018c89fda0 in start+0x1b4c (dyld:arm64e+0x1fda0)\n```\n\nNormally if we only stop on signal handlers, the clear should have\nhappened... however it seems it does not, so moving the logic to\nbecome unconditional, in case we have other ways to stop the app.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0544a0801dd4e0458dc09b76ce37fa6e58593d99",
      "old_mode": 33188,
      "old_path": "examples/platform/linux/AppMain.cpp",
      "new_id": "5547628806d03b8232dbcf278c5d979e20b20470",
      "new_mode": 33188,
      "new_path": "examples/platform/linux/AppMain.cpp"
    }
  ]
}
