)]}'
{
  "log": [
    {
      "commit": "d485226951013247dbb502fef7edbc6cf83acb0f",
      "tree": "abfe2cbf07709c996d492e40ecc77396cd57d8af",
      "parents": [
        "d1c73b57b5106a6a3f0c6cd2ab51677670e99e66"
      ],
      "author": {
        "name": "Robert Benea",
        "email": "robenea@google.com",
        "time": "Sun Jul 16 19:38:11 2017 -0700"
      },
      "committer": {
        "name": "Robert Benea",
        "email": "robenea@google.com",
        "time": "Tue Jul 18 15:58:40 2017 -0700"
      },
      "message": "Add memcg related configs to init.\n\nAllow configuring memory.swappiness, memory.soft_limit_in_bytes\nand memory.limit_in_bytes by init; by doing so there is better\ncontrol of memory consumption per native app.\n\nTest: tested on gobo branch.\nbug: 63765067\nChange-Id: I8906f3ff5ef77f75a0f4cdfbf9d424a579ed52bb\n"
    },
    {
      "commit": "3280e48847e5dd16521ad7040d53eb30b66bf740",
      "tree": "28496ac5091fbd565260e587d68d329a3f3db0be",
      "parents": [
        "896297b2ef10a58fc614aebce8724d342d81f85e"
      ],
      "author": {
        "name": "Robert Benea",
        "email": "robenea@google.com",
        "time": "Tue Jun 27 23:09:03 2017 -0700"
      },
      "committer": {
        "name": "Robert Benea",
        "email": "robenea@google.com",
        "time": "Tue Jul 11 12:48:10 2017 -0700"
      },
      "message": "Use mem cgroups in libprocessgroup if they\u0027re available\n\nUse mem cgroups if the kernel is built with CONFIG_MEMCG\u003dy,\nadditionally add system group.\n\ntest: verified on both kernel with/without memcg enabled\nChange-Id: Ia2ae89efa3905e9da68fa77adac1225c667864d1\n"
    },
    {
      "commit": "fc10e3d5e5385081853b7d1b3cc41f882ac6325d",
      "tree": "2b53434afe8c0775a0f13d75b17544e463939e24",
      "parents": [
        "32375c23284704a7d044ed79060c4431468b4b4e"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Sat Jul 08 00:04:04 2017 +0000"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Sat Jul 08 00:04:42 2017 +0000"
      },
      "message": "Revert \"Use mem cgroups in libprocessgroup if they\u0027re available\"\n\nThis reverts commit 32375c23284704a7d044ed79060c4431468b4b4e.\n\nbug 63164307\n\nChange-Id: I3336bbf7c2f3297b231c5b0a1ef538faff9513fd\n"
    },
    {
      "commit": "32375c23284704a7d044ed79060c4431468b4b4e",
      "tree": "2466fa92a68b85a30b945666a2955102a2a5100b",
      "parents": [
        "5d6d932a60c77bda7f796db2679bd806e2e8633d"
      ],
      "author": {
        "name": "Robert Benea",
        "email": "robenea@google.com",
        "time": "Tue Jun 27 23:09:03 2017 -0700"
      },
      "committer": {
        "name": "Robert Benea",
        "email": "robenea@google.com",
        "time": "Thu Jun 29 23:49:00 2017 +0000"
      },
      "message": "Use mem cgroups in libprocessgroup if they\u0027re available\n\nUse mem cgroups if the kernel is built with CONFIG_MEMCG\u003dy,\nadditionally add system group.\n\ntest: verified on both kernel with/without memcg enabled\nChange-Id: Ib9d1c8e3c797e75f160e0e92edf3f11c9d8e9f17\n"
    },
    {
      "commit": "70a5ed49ef82d0d87508080563ec10b994bf4f9e",
      "tree": "e45114dcfa5f6b0ad2dd317044e3baf50c431f22",
      "parents": [
        "d105aa8496a3ba26a9f3a3126aa2163d9bfdac16"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Jun 05 19:20:17 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jun 07 13:20:21 2017 -0700"
      },
      "message": "init: move killing of process groups to libprocessgroup\n\nlibprocessgroup kills the cgroup associated with a given pid and uid,\nbut not the POSIX process group associated with it.  This means that\nto kill both, two of the same signals must be sent, which may cause\nsome issues.\n\nThis change kills all POSIX process groups whose group leaders are\nfound within a cgroup.  It only then kills processes in the cgroup\nthat are not part of the POSIX process groups that have been killed.\n\nBug: 37853905\nBug: 62418791\nTest: Boot, kill zygote, reboot\nChange-Id: Id1d96935745899b4c454c36c351ec16a0b1d3827\n"
    },
    {
      "commit": "efa81080fda2591bcc7411053c7a560ff32df1b7",
      "tree": "e1ea59d94efa52c9d1d55063f3d8bb7d31f7d105",
      "parents": [
        "46bb1ffa8ad3a4cb3d2fe31f6f7baee418b5df6e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue May 09 17:44:49 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu May 11 17:55:04 2017 -0700"
      },
      "message": "Enable libprocessgroup on host bionic\n\nBug: 31559095\n\nTest: Build\nChange-Id: I1ee9fb492137c6c16f0d02586393837616127972\n"
    },
    {
      "commit": "20514c4411923e03df4a5057ef43bf9716983e14",
      "tree": "5499aee12ffcfd7bada6bf84cc8282b625f6a53e",
      "parents": [
        "3d7ee068e0a0ce707965835f58abce65189abda4"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 21 13:48:49 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu May 04 12:18:57 2017 -0700"
      },
      "message": "Better logging in libprocessgroup and make resources clean up themselves\n\nBug: 36661364\nBug: 36701253\nBug: 37540956\n\nTest: Reboot bullhead\nTest: Start and stop services\nChange-Id: I97b6e17a7350850db733bee9fc83bdd296d88c61\n"
    },
    {
      "commit": "419ce36c7d3911002e8cbabffe5e8addc1388a0c",
      "tree": "9bb85c1d94f2b3ada542a70e8847d02850347972",
      "parents": [
        "8b318d0c26c89acd7c716fb571bfd08d4393d12f"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Apr 19 14:12:52 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Apr 19 14:29:08 2017 -0700"
      },
      "message": "libprocessgroup: Android.mk -\u003e Android.bp\n\nTest: links\nTest: (sanity) boot marlin in recovery + to system UI\nBug: 37512442\nChange-Id: Ie19c02bda9df7c0cfdeeaf34c48f251b2b93961d\n"
    },
    {
      "commit": "fac4b63effee6c69908f559fd5e260bc95f1893a",
      "tree": "9aa1286d118ea25cc2b280e0c84727e4ac3fbbca",
      "parents": [
        "6fb2ef1d03ffad5b9253647daf0fcc6888b2aac4"
      ],
      "author": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Tue Mar 28 17:25:24 2017 -0700"
      },
      "committer": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Wed Mar 29 16:33:15 2017 -0700"
      },
      "message": "add killProcessGroupOnce\n\n- killProcessGroup retries if it fails while\n  killProcessGroupOnce only tries once.\n- useful for sending signal like SIGTERM once.\n\nbug: 36696408\nTest: will add usage to init\nChange-Id: Ia1e3d4ec848e785a3238f262b02914695cded4c7\n"
    },
    {
      "commit": "290a228fdca935ab2e702db77516758314900c3a",
      "tree": "bdb1606d717b50aded201e69bb2f29daa451b73e",
      "parents": [
        "f77d8b04528775e7a2e22255bb9a46b0e1df8ef1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 14 17:08:47 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 14 17:08:47 2016 -0800"
      },
      "message": "Switch fastboot/init/libprocessgroup to std::this_thread::sleep_for.\n\nBug: http://b/32878766\nTest: boots\nChange-Id: Ie0ddfb7e60f2da5f6eefbb10c83a92e88c137ae3\n"
    },
    {
      "commit": "9f206938edc2243e4e4f5de74d67e15befd95576",
      "tree": "4e7ad8abe0b1546704777a902ac1bc441ad22440",
      "parents": [
        "dfd30c4a169e6b9e3da132769f0ad2b626703cd2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 28 13:29:54 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 28 14:04:12 2016 -0700"
      },
      "message": "Use readdir instead of readdir_r.\n\nhttp://elliotth.blogspot.com/2012/10/how-not-to-use-readdirr3.html\n\nTest: boots.\nChange-Id: If75532e24fe4d17743bf8e8c9590156dee378a63\n"
    },
    {
      "commit": "b6e1d15056f2a9c136a640336d78d36ab58a719d",
      "tree": "5de391aecdda2209bed566b67f5b3d5fbb591a78",
      "parents": [
        "7e74e816460f0c130b6870f5251b03d4218c80da",
        "ed3596aadfe5727752a2e93a8fa2a981dce5e8e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 03 13:29:04 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 03 13:29:04 2016 -0700"
      },
      "message": "resolve merge conflicts of ed3596a to stage-aosp-master\n\nChange-Id: I3c41782e2bf3563d3e3d6232d39eff3da94843fc\n"
    },
    {
      "commit": "171df0a092157deb2cdf868beecc2ca3dcbeb548",
      "tree": "034f8fff3cefd3cd9877e428fdf82e2949f6a9ef",
      "parents": [
        "c97b73aa83fc7b80b60d88d856675d4ab502296d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 02 13:30:30 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 03 09:11:04 2016 -0700"
      },
      "message": "Switch libprocessgroup to libbase logging.\n\nThis lets us see what\u0027s going on in init.\n\nBug: http://b/29751426\nMerged-In: I73432dc7608ca0dc8e421a2f3a750b37c6743f62\nChange-Id: I73432dc7608ca0dc8e421a2f3a750b37c6743f62\n"
    },
    {
      "commit": "8d532e47376859e2ea8f953ebe75d24560e80464",
      "tree": "ea9edc7539e6d0e7ce9515efa57a73a6e93e63e7",
      "parents": [
        "27a68ef007734929a6cfb46c233c5b1757f7786c",
        "cea1d0465b400f25db6a85547381713746d39e36"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 06 21:19:55 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 06 21:19:55 2016 -0700"
      },
      "message": "resolve merge conflicts of cea1d04 to nyc-dev-plus-aosp\n\nChange-Id: I41cdca717664a16f00fd1b28076dd752fa96653d\n"
    },
    {
      "commit": "f7e79b99c1e9e3128dd9921871f7740bebb755e6",
      "tree": "10367b6bcba6ad7061c1362efbc4ef53f0e672b9",
      "parents": [
        "605628d325b003251155b5c5b425028106bf8f29"
      ],
      "author": {
        "name": "Collin Mulliner",
        "email": "collinrm@squareup.com",
        "time": "Wed Jun 01 21:03:55 2016 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 06 16:31:01 2016 -0700"
      },
      "message": "use process groups for processes started by init\n\nPut every service into a process group, kill the process group\nand all child processes created within the group when killing the\nservice. Removed libutil dependency in libprocessgroup.\n\nBug: 25355957\nChange-Id: Ieed60ec41579f638ab9b1e66a7e6330ed578ab05\nSigned-off-by: Collin Mulliner \u003ccollinrm@squareup.com\u003e\n"
    },
    {
      "commit": "c4248ae9a1a3a59d5ef5838a850d7e7898dbe52e",
      "tree": "b9be8bb6db32e03a6fd26758064f72d43ad8eb8e",
      "parents": [
        "b9ce0f10f38c74b468c4bc512b3cc82c4bba0e1b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 30 09:10:07 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 30 09:10:07 2016 -0700"
      },
      "message": "Remove useless #include.\n\nBug: http://b/28432688\nChange-Id: I8982f42b2bf2305168a4ba167e422173f35c69c2\n"
    },
    {
      "commit": "d89cd41bc7f3515133e18231e8f84065f1a9a133",
      "tree": "2efb6e03f310dfe8c92d649a61cda16f4b399b8a",
      "parents": [
        "f50b165a4e64f38b89f1987afa5a7b7776420987",
        "e9ea8db617f52ddaa51e3b6fb9663e2f9b069425"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Mar 18 15:54:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 18 15:54:12 2016 +0000"
      },
      "message": "Merge \"Don\\\u0027t use mem cgroups for pid accounting.\" into nyc-dev\nam: e9ea8db\n\n* commit \u0027e9ea8db617f52ddaa51e3b6fb9663e2f9b069425\u0027:\n  Don\u0027t use mem cgroups for pid accounting.\n"
    },
    {
      "commit": "5bb91ab5530dd002f6021b2177dc2bcf5467eebd",
      "tree": "bcf36c2adf054abd34c93357bafd6fe20672d847",
      "parents": [
        "05d2a9002ef3509efd1a1ab2ebf0a86561e61607"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Mar 18 15:28:31 2016 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Mar 18 15:35:48 2016 +0100"
      },
      "message": "Don\u0027t use mem cgroups for pid accounting.\n\nCommit b82bab66 introduced the use of memory cgroups for keeping track\nof forked PIDs; it basically creates a separate memory cgroup for every\nprocess forked from zygote.\n\nEach such memory cgroup which also have its own LRU with (in)active file\nand anonymous pages. The current theory is this could potentially introduce\ntwo problems:\n1) kswapd runs longer because it has to iterate over the LRUs of all mem\ncgroups, instead of over the LRUs of a single root mem cgroup;\n2) the way kswapd reclaims things will be different also - I think it will\ntend to bias reclaim to smaller mem cgroups, and process private pages\nwill end up on ZRAM swap much sooner.\n\nUntil we figure this out, fall back to the CPU accounting cgroup for keeping\ntrack of forked PIDs. This leaves us with a single root mem cgroup again. We\ncan also keep userspace lmkd enabled because it only requires the root mem\ncgroup.\n\nBug: 27381069\nChange-Id: Ife397a6ac232761f2adfe6f5056582be0d1b4ff1\n"
    },
    {
      "commit": "22b6f7a559e02f44442a1f5079d790884971d7f2",
      "tree": "e81614a7a604616a0fff892f26b1f316664cec26",
      "parents": [
        "fb516c2e635677cf7f7ad8c0eee27329b245cc54",
        "0f5d443d0ccc3d3d95604b241cdd23117363f849"
      ],
      "author": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Fri Feb 19 11:10:30 2016 -0800"
      },
      "committer": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Fri Feb 19 11:10:30 2016 -0800"
      },
      "message": "resolve merge conflicts of 0f5d443d0c to nyc-dev-plus-aosp\n\nChange-Id: I850bda0808ae17ade5bc0e667211a599d284d6e3\n"
    },
    {
      "commit": "588a2cad7faee54bfb16050d0c7398709f304fea",
      "tree": "5e2a3038be92721e92674078f739e5b91efa3d5b",
      "parents": [
        "d3289ac581816861721b81f7100794fad075c497"
      ],
      "author": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Thu Feb 18 14:52:46 2016 -0800"
      },
      "committer": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Thu Feb 18 14:52:46 2016 -0800"
      },
      "message": "system/core: Cleanup direct calls to opendir by containing in a\nstd::unique_ptr.\n\nBug: 26643633\nChange-Id: Ia3491fdbff086558da694ae949cf08e4c89d0307\n"
    },
    {
      "commit": "623b56af5da59fb57abcb2d984762669c82f57e9",
      "tree": "77bb9cbf8a409a2f264ca8b459854f3b670a813f",
      "parents": [
        "23419e3926459896c5b22666659fd72da2fca63d"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Feb 08 11:42:25 2016 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Feb 08 11:45:27 2016 +0100"
      },
      "message": "Fix libprocessgroup SELinux denials.\n\nlibprocessgroup checks whether it can use memory\ncgroups for keeping track of forked processes by\nseeing whether /dev/memcg/apps is writable. However,\non systems with memory cgroups disabled, SELinux\n(correctly) no longer classifies this directory as a cgroup,\nand starts denying zygote access. To fix this,\nfirst check whether /dev/memcg/apps/tasks exists to\nsee if the cgroup is mounted; only then check whether\nwe can write to the directory.\n\nBug: 27046965\nChange-Id: I6e44cd62d8c396e20ceb162c50606b3e86f2cb3e\n"
    },
    {
      "commit": "b82bab66f318896ebad80c1feee2347c58e3ce37",
      "tree": "ff971f83721d006df7150c8a53f440d246d33c36",
      "parents": [
        "c003b515e9668ee91d14eea124b66f6bcef89377"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 20 16:39:16 2016 -0800"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Feb 01 21:04:24 2016 +0100"
      },
      "message": "Reuse mem cgroups for tracking forked PIDs.\n\nIt turns out we were using the CPU accounting\ncgroups for keeping track of processes that were\nforked by an app without the framework\u0027s knowledge,\nso we could kill all of them reliably (see b/15313911\nfor context).\n\nSince we want to use memory cgroups for other purposes,\nwe might as well use memory cgroups for tracking forked\nPIDs if they\u0027re enabled. This also gets us automatic cleanup\nof empty mem cgroups.\n\nAlso, removed old mem cgroup mount point that is no\nlonger used, as well as cgroup release agent code that\nwe\u0027re not using.\n\nChange-Id: I69d5cc31c162ffa49ef6945755f41381e306cc8b\n"
    },
    {
      "commit": "d50393057a6551c3bb498ed3a3bb7bd9eeb48225",
      "tree": "6d68941cafdecaef89037b6328e81789a651c34b",
      "parents": [
        "d5600fd40fac5e90532ea08e22940965cfdd7710"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Tue Jun 16 13:51:14 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Tue Jun 16 13:59:32 2015 -0700"
      },
      "message": "processgroup: change the polling interval for killProcessGroup()\n\nto make the function faster on average. Since killing a process\ntakes about 40-60ms on a recent device, the previous logic tends\nto sleep too long. This CL does not significantly change the total\ntimeout (old code: 204ms, new code: 200ms).\n\nBug: 21813611\nChange-Id: Ica44b2437ccccaebadcf585d7a09d993ce71a499\n"
    },
    {
      "commit": "d0a793dca3c208ab04b67cd7dc0126a3d394d8dd",
      "tree": "603590d040d6f6c5dd775fa2955be082343a9350",
      "parents": [
        "42f1192273f3d05531c3fcfc8ce0fe5c437f6b7f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 27 11:23:07 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 27 11:24:04 2015 -0700"
      },
      "message": "Remove uses of libcxx.mk.\n\nThis is a no-op.\n\nChange-Id: Iecbcd5f6d818abbf98767a2e996c10f454b652e4\n"
    },
    {
      "commit": "0badbd6565fea17be39d82eba858fa76d28920a4",
      "tree": "8ca328b75740a85cafe6afafde97162569d56dad",
      "parents": [
        "2978ad4c6d660f02ff0a1742749b6818b2616b69"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 29 12:24:25 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 29 12:24:25 2014 -0800"
      },
      "message": "Fix missing #includes in system/core.\n\nChange-Id: I4736e8c4f7bb8bb03640d26d58243efaa67dc75c\n"
    },
    {
      "commit": "fcc8115dcf33b547facab9c6f2f4739f85ab69c1",
      "tree": "fc31071565041c990a79398c95b567dc9faa6103",
      "parents": [
        "07148ea2be8110e2310860c5e6a391e542a656be"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 20 17:05:15 2014 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 20 19:38:26 2014 -0800"
      },
      "message": "Fix format string\n\nMake a format string match the type of the parameter it represents\n\nChange-Id: I0af88636448084b56450996ea9dafdba3c1fd2a3\nSigned-off-by: Bernhard Rosenkränzer \u003cBernhard.Rosenkranzer@linaro.org\n"
    },
    {
      "commit": "758aeb7dadfcd29b11e8648d784ea56f31be05f3",
      "tree": "c1102c2cc452f8d841dccad1389c4c3840b340af",
      "parents": [
        "3ef0460e86f2a7c5442bcf424b8e83fdfb8e3669"
      ],
      "author": {
        "name": "Bernhard Rosenkränzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Mon Nov 17 20:46:00 2014 +0100"
      },
      "committer": {
        "name": "Bernhard Rosenkränzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Mon Nov 17 20:46:00 2014 +0100"
      },
      "message": "Make mkdirAndChown do what it claims to do\n\nCurrently, mkdirAndChown takes parameters for mode, uid and gid, but\nignores them and hardcodes 0750, AID_SYSTEM, AID_SYSTEM instead.\nThis doesn\u0027t matter much because so far its only invocation passes\nexactly those values as parameters -- but clang complains about unused\nparameters.\n\nMight as well make the function do what it claims to do.\n\nChange-Id: I5a8056be3278a0c5d0a576dbc061288aa0956a35\nSigned-off-by: Bernhard Rosenkränzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "67f46cb0e137edbf4a6f7014ca8a3a58484016d1",
      "tree": "a44eaa76b3cccf26e40007630989e28eb3c0d576",
      "parents": [
        "2c5e7e102bc2059d22f8457db68c567b64cec963"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Oct 15 11:36:28 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Oct 15 11:36:28 2014 -0700"
      },
      "message": "Fix issue #18000467: processgroup truncates buffer\n\nChange-Id: I3d98a4da9c47d83d25a11ff0ef94cfcab1feabea\n"
    },
    {
      "commit": "2c5e7e102bc2059d22f8457db68c567b64cec963",
      "tree": "520bb9860e196dfcb130fc99a4bc7958e68669ab",
      "parents": [
        "8218b6aae9cd4a19fa074a8a8203fe9275b35447"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 13 17:45:22 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 13 17:52:32 2014 -0700"
      },
      "message": "Maybe fix issue #17969789: Shamu FR: Runtime restart while scrolling Instagram\n\nIt looks like there were a couple problems in the code:\n\n- It would not 0-terminate the string it read, to make sure we didn\u0027t\n  see garbage at the end.\n- It didn\u0027t reduce buf_len as it processes data in the buffer, so if\n  we need to read more we will increase the buffer length to be longer\n  than the actual available data.\n\nAlso put in some logs about every thing we kill, so we can see what\nis going on when debugging.  And add a special check for us trying\nto kill pid 0 for any reason, since doing so seem to be terminal to\nthe caller.\n\nChange-Id: I2fe29bfef08938b8a2eb182475c0705c14d8d84f\n"
    },
    {
      "commit": "c15dd044705aa86f63b2642c1439d5f943a80d18",
      "tree": "f9e818f6742117f94440c219f71d0d8521a586fc",
      "parents": [
        "342a2264b96ab05dc8fdbfa8bbe354ce2f4b06ca"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 20 14:11:13 2014 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 20 14:11:13 2014 -0700"
      },
      "message": "processgroup: close directories opened by removeAllProcessGroups()\n\nremoveAllProcessGroups and removeUidProcessGroups were calling\nopendir, but never called closedir.  This would leave a leaked\nfile descriptor for every /acct/uid_* directory that existed\nat boot.\n\nChange-Id: Ia08eccd42d6ad7a6c1c78402519ac2e53b4fc83a\n"
    },
    {
      "commit": "cf8d1c22f7e239f502a7d209e2255d2997dbeb8b",
      "tree": "31ada62605f66b16c7963aedc7c8fc45974c1aef",
      "parents": [
        "038975a5c85caa758294102d4577d063d7e02651"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 03 13:24:21 2014 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 09 17:24:39 2014 -0700"
      },
      "message": "Add libprocessgroup\n\nlibprocessgroup will allow Zygote to place processes\nin a cgroup, and then kill the process and all forked processes\nlater.  lmkd will also kill all forked processes.\n\nBug: 15313911\nChange-Id: I20404d0dbe448f1c475d2f4c61cccca462f9e544\n"
    }
  ]
}
