)]}'
{
  "log": [
    {
      "commit": "e2c414ef4b6d900e7d3a75bd24a02c7283c168bc",
      "tree": "0dd8d414e97830f6332bbc59463f3d99d7c29f4e",
      "parents": [
        "70ffc323c7c40374c06f03c325f22ab8f3ec3061"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 24 12:43:26 2024 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 24 12:43:26 2024 +0000"
      },
      "message": "fdtrack: report the total number of stacks...\n\n...not the number of unique stacks. The current implementation led to \"most common stack (416/36)\" on http://b/348438825, for example.\n\nChange-Id: Id8d92c279d339124347163e181a2f43881f9f416\n"
    },
    {
      "commit": "cc3a08e02e8f9fae4325a9f8c05f4ff99c31d02a",
      "tree": "6fb56579a81c87bd0bdcd701ffd0e6deca278b21",
      "parents": [
        "3e8dd2b88c8da039cf89a60bd03a8da8f1407bbc"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Wed Jan 24 01:17:14 2024 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Fri Jun 07 21:34:02 2024 +0000"
      },
      "message": "Add libz to static libs of libfdtrack\n\nlibz is no longer statically linked into libunwindstatck, so needs to be\nadded explicitly to this rdep\n\nBug: 281077552\nTest: presubmits\nChange-Id: Iadcee0c8b98ce4cfd3e238e7e4b3a3becc315e6c\n"
    },
    {
      "commit": "e56350c4adc1a8f08d08691403b54fd5a398dee6",
      "tree": "bc78c68e63633e87a074de24706d523fb1b39e74",
      "parents": [
        "a1e51dc4b8009241afe2ebadbbb3da3f94e5ffeb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 30 17:26:25 2024 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 30 17:26:25 2024 +0000"
      },
      "message": "fdtrack: make it clearer that there\u0027s more information available.\n\nA lot of people who see these via pitot or whatever don\u0027t even think to look at the real tombstone. Make it explicit that this is what they should do next. Also, since we have the numbers, say exactly what we mean by \"most common\".\n\nBug: http://b/338882189\nChange-Id: Ia21848a40e82cb2486538a7578501e2ec0948e1c\n"
    },
    {
      "commit": "d9d37c09d886d0fa797bd94537517c46cc3fa334",
      "tree": "d3f9cf758a84251781bc22c7bbdde8e7b2db3a7b",
      "parents": [
        "8e631624e9da603e023abe049820eaa830d02815"
      ],
      "author": {
        "name": "Aditya Choudhary",
        "email": "caditya@google.com",
        "time": "Fri Feb 02 13:57:12 2024 +0000"
      },
      "committer": {
        "name": "Aditya Choudhary",
        "email": "caditya@google.com",
        "time": "Fri Feb 02 13:57:12 2024 +0000"
      },
      "message": "Migrate Test Targets to New Android Ownership Model\n\nThis CL is created as a best effort to migrate test targets to the new Android ownership model.\nIt is based on historical data from repository history and insights from git blame.\nGiven the nature of this effort, there may be instances of incorrect attribution. If you find incorrect or unnecessary\nattribution in this CL, please create a new CL to fix that.\n\nFor detailed guidelines and further information on the migration please refer to the link below,\ngo/new-android-ownership-model\n\nBug: 304529413\nTest: N/A\nChange-Id: Ie36b2a3245d9901323affcc5e51dafbb87af9248\n"
    },
    {
      "commit": "e2f58a3f033369816cf48734c0ce94f338df9f3c",
      "tree": "7e920bc5d25f2363a4fcb0e02031b79c404c7bdd",
      "parents": [
        "b167b90b4c3c8d7cbc3af6733ba27c27c0e6d026"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 17 16:04:38 2023 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 17 18:45:25 2023 -0700"
      },
      "message": "Use AndroidLocalUnwinder object.\n\nUsing the AndroidLocalUnwinder object allows unwinding interpreter\nand JIT\u0027d frames by default. In addition, it simplifies the code.\n\nTest: Forced interpreter on all of the time and forced fdtrack on\nTest: and verified unwind includes dex frames.\nTest: Forced JIT on all of the time and forced fdtrack on\nTest: and verified unwind includes dex frames.\nTest: Unit tests pass.\nChange-Id: Icae17e83c9aaa04750b07471243550a7829524f7\n"
    },
    {
      "commit": "263faa90e15b0b770163e1b4896a35401e03e1ca",
      "tree": "d64bbae5e9a4c4da228e8c8c82eb76e50f5f3d67",
      "parents": [
        "a5bce1b630b23538524106a80e9849711cf910ea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 21:40:31 2022 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 21:41:51 2022 +0000"
      },
      "message": "Ignore ART frames in fdtrack traces.\n\nTrying to find a leak this year, it was very annoying that our traces\nwere mostly filled with \"junk\" frames from the JNI implementation,\nmaking it quite a struggle to see what the actual calling code was...\n\nBug: http://b/236197847\nTest: treehugger\nChange-Id: I69e7d9b6432e1872e238168ebf3dc36feb7de7df\n"
    },
    {
      "commit": "459eecb28b68f9b8f2a71ca9765b291f11007030",
      "tree": "96a636854aa41bdfca0adfe4ac98bd1923ece7a4",
      "parents": [
        "39837afad7ba9411445677497f8c60b01a0b4195"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 07 13:38:10 2022 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 03 15:23:25 2022 -0800"
      },
      "message": "Update for LocalUnwinder object removal.\n\nModify libfdtrack to use the normal Unwinder object. In addition,\nupdate the libfdtrack so that it doesn\u0027t record frames in\nlibfdtrack.so rather than skipping frames it thinks will be in\nthe library.\n\nModify the malloc debug code to use the normal Unwinder object.\n\nBug: 120606663\n\nTest: All unit tests pass.\nChange-Id: I3c9612dd10e62389e6219e68045ee87f7b2625f5\n"
    },
    {
      "commit": "dcc97c0887c57844c832f4497866320697811e88",
      "tree": "6f15dcf66c1b9b4b5e6e6d4b7642f555bf2a6ee6",
      "parents": [
        "87a205eefa2e12597f6d7a05db05fefbe498a292"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Dec 09 14:01:13 2020 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 07 19:00:45 2021 -0700"
      },
      "message": "Disable fdtrack post-fork.\n\nAlso delete some fdsan code that attempts to check for the post-fork\nstate, but never will, because we update the cached pid upon fork.\n\nBug: http://b/174542867\nTest: /data/nativetest64/bionic-unit-tests/bionic-unit-tests\nTest: treehugger\nChange-Id: I9b748dac9de9b4c741897d93e64d31737e52bf8e\n"
    },
    {
      "commit": "1cb368133571fa84f8086552b8be125b2ec4cd16",
      "tree": "e891096e1bc2ab0f198675d24def46a4181c09c4",
      "parents": [
        "051b454ff1a9608b304ad985a584575f979dcd0f"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Mar 11 21:11:37 2021 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Mar 15 15:55:06 2021 -0700"
      },
      "message": "fdtrack: emit the most common stack in the abort message.\n\nBug: http://b/181875562\nTest: manual\nChange-Id: I2826b148d55788e932fa04dcef33c78fad8be227\n"
    },
    {
      "commit": "aa7d835fdd739881a907ac5c8a89a5dae01f6089",
      "tree": "d85b4086e7cd0aedd28a071d5e1899f62b73695d",
      "parents": [
        "d29cac66b426d59afd7ce7da9519b6d43f5df0cc"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 19 13:06:22 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 19 23:38:28 2021 +0000"
      },
      "message": "Add LOCAL_LICENSE_KINDS to bionic\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  apex/Android.bp\n  libdl/Android.bp\n  tools/Android.bp\n  tools/versioner/Android.bp\n  tools/versioner/src/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  benchmarks/Android.bp\n  benchmarks/linker_relocation/gen/Android.bp\n  libc/malloc_debug/Android.bp\n  libc/system_properties/Android.bp\n  tests/Android.bp\n  tests/libs/Android.bp\n  tests/libs/Android.build.dlext_testzip.mk\n  tests/make_fortify_compile_test.mk\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-ISC SPDX-license-identifier-MIT\n    legacy_notice legacy_unencumbered\nto:\n  libc/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT legacy_unencumbered\nto:\n  libm/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 legacy_unencumbered\nto:\n  libc/tools/Android.bp\n\nAdded SPDX-license-identifier-BSD\nto:\n  benchmarks/linker_relocation/Android.bp\n  benchmarks/spawn/Android.bp\n  libc/async_safe/Android.bp\n  libc/malloc_hooks/Android.bp\n  libfdtrack/Android.bp\n  linker/Android.bp\n  tests/headers/Android.bp\n  tests/headers/posix/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\nExempt-From-Owner-Approval: janitorial work\nChange-Id: Ib05bcaa276b3aa71a7654ccbe8e67e1f16aec9f3\n"
    },
    {
      "commit": "aa8db1b9d1e8bba7eba26238e44713f02a3dd533",
      "tree": "0c55f7bf1fa5b9aa9e01c63573bd4bb6314a6393",
      "parents": [
        "ef0ec82684ea52ee3a13db8df9103ca314ea17aa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 15:05:44 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 15:06:50 2021 -0800"
      },
      "message": "Fix/update notices.\n\nAuto-generate NOTICE files for all the directories, and for each one\nindividually rather than mixing libc and libm together.\n\nTest: N/A\nChange-Id: I7e251194a8805c4ca78fcc5675c3321bcd5abf0a\n"
    },
    {
      "commit": "55b91af828efb77dd5b2d5a87990f16011599159",
      "tree": "1ae92409ac2a403cb3a44df52e36c59e7c37abfc",
      "parents": [
        "700f753c50971a573bfd84cf7d64483b94fcfe2c"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jun 02 15:54:32 2020 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jun 02 16:06:55 2020 -0700"
      },
      "message": "fdtrack: increase backtrace depth.\n\nBug: http://b/155136951\nBug: http://b/157789860\nTest: treehugger\nChange-Id: I1e575fdef7d520f5a896130844eefb1a1ba46694\n"
    },
    {
      "commit": "38d00b80a072374792bb159e558195eeb8cbd271",
      "tree": "998768a77d6ee19c2dc47ea89ee1d223bbdad0e3",
      "parents": [
        "cbc67b305119dd1720a7eb03595482851c4ffcf6"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Apr 21 17:05:32 2020 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 29 17:20:24 2020 -0700"
      },
      "message": "fdtrack: don\u0027t destroy traces.\n\nThere\u0027s a bad interaction with malloc_debug when the libraries are being\ndestroyed.\n\nBug: https://issuetracker.google.com/154439915\nTest: treehugger\nChange-Id: Ib47c8139c3a88dd52865ea93654b2926bd708729\n"
    },
    {
      "commit": "3a5ddd72c316306d1d5afdd48b0ceb8ec4d22b32",
      "tree": "795bb424c1c1cb755723630ce5a7347d0c6d8afc",
      "parents": [
        "eee26de4dcffca6e1ca0c2d2d0de0f53dbb9d299"
      ],
      "author": {
        "name": "Yuxian Xu",
        "email": "yuxian.xu@mediatek.com",
        "time": "Thu Apr 09 10:35:37 2020 +0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 09 12:46:58 2020 -0700"
      },
      "message": "libfdtrack: When dump fdsan fd owner, happen NE\n\nWhen dump fdsan fd owner, happen NE. This because the format specifier\nflag \u0027#\u0027 is not supported by Bionic out_vformat\u003cBufferOutputStream\u003e.\n\nBug: 153611483\nTest: jmgao@ verified manually\nChange-Id: I7191c3b2b621ddcc0397874f8a69391e58232ac8\n"
    },
    {
      "commit": "ad8f02d780da7949b9bfc7d9890f4f7f98216acb",
      "tree": "81f5e483439c773b32fa85f7b09fa233f9f06124",
      "parents": [
        "24e7ebb0c0063867e763c72dac2377e149837a4d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 28 13:54:00 2020 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Feb 03 14:29:52 2020 -0800"
      },
      "message": "fdtrack: add a test.\n\nTest: logcat -c; fdtrack_test; logcat -d | grep fdtrack\nChange-Id: Ie1101c9cf968299ec1f03f20097a2ed27f6e15bd\n"
    },
    {
      "commit": "6f08866e3328cb43e2432a19a954885677930c68",
      "tree": "2723453d6a95654a1f745cfc30e234eadc42da9e",
      "parents": [
        "50955c461bbfb35b06ecc3f862e41e50a6eba409"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 28 15:13:47 2020 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 30 13:55:11 2020 -0800"
      },
      "message": "fdtrack: print fdsan owner tag.\n\nTest: logcat -c; fdtrack_test; logcat -d | grep fdtrack\nChange-Id: I0a7e342da239a0e7889eb228a3a023268d40b1c5\n"
    },
    {
      "commit": "50955c461bbfb35b06ecc3f862e41e50a6eba409",
      "tree": "59306c29d966f39b88729857147f5999695bc142",
      "parents": [
        "759625072270f5b6940dae40c8039867a08eff12"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 28 14:10:19 2020 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 30 13:55:11 2020 -0800"
      },
      "message": "fdtrack: make actually async safe.\n\nTest: setprop persist.sys.debug.fdtrack_enable_threshold; stop; start; logcat -c; killall -39 system_server; logcat -d | grep fdtrack\nChange-Id: Id9baa54af9e5cfb6e1ee1026f71d7fb41b7c3ad0\n"
    },
    {
      "commit": "759625072270f5b6940dae40c8039867a08eff12",
      "tree": "e0a1227301a6b67509badba95a91998d5c04e18d",
      "parents": [
        "97271920bf831610819ddfa44e4e2cc0815afd6e"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 28 13:24:33 2020 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 30 13:55:10 2020 -0800"
      },
      "message": "Move fdtrack APIs to LLNDK.\n\nTest: logcat -c; fdtrack_test; logcat -d\nChange-Id: Ib6f75a7c8bbc4d6efa0708dcbbfe4ad3c0641022\n"
    },
    {
      "commit": "97271920bf831610819ddfa44e4e2cc0815afd6e",
      "tree": "0ba61ad31242b38becb89cab8702df68328a1e71",
      "parents": [
        "7ef4c774da59bbf942b5652b1f68e46cac2e5099"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Nov 06 13:15:00 2019 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 30 13:55:10 2020 -0800"
      },
      "message": "Add a tool to track down fd leaks.\n\nAdd a hook that\u0027s called upon file descriptor creation to libc, and a\nlibrary that uses it to capture backtraces for file descriptor creation,\nto make it easier to hunt down file descriptor leaks.\n\nCurrently, this doesn\u0027t capture all of the ways of creating a file\ndescriptor, but completeness isn\u0027t required for this to be useful as\nlong as leaked file descriptors are created with a function that is\ntracked. The primary unhandled case is binder, which receives file\ndescriptors as a payload in a not-trivially-parsable byte blob, but\nthere\u0027s a chance that the leak we\u0027re currently trying to track down\nisn\u0027t of a file descriptor received over binder, so leave that for\nlater.\n\nBug: http://b/140703823\nTest: manual\nChange-Id: I308a14c2e234cdba4207157b634ab6b8bc539dd9\n(cherry picked from commit b7eccd4b1577c101132e52d4a5313d5322dcae2d)\n"
    }
  ]
}
