microsoft / PullRequestQuantifier

A highly customizable framework to quantify a pull request within a repository context.
MIT License
57 stars 36 forks source link

Possible recursion/memory issue crashes OS #172

Open qayshp opened 3 years ago

qayshp commented 3 years ago

I really don't know what other data to provide, so please let me know what would be helpful.

Environment details: macOS 11.5.2, vscode 1.61.0
``` Version: 1.61.0 Commit: ee8c7def80afc00dd6e593ef12f37756d8f504ea Date: 2021-10-07T18:11:58.853Z Electron: 13.5.1 Chrome: 91.0.4472.164 Node.js: 14.16.0 V8: 9.1.269.39-electron.0 OS: Darwin x64 20.6.0 ```

Created a new c# solution and project from the terminal in vscode, then opened that project and closed the original window. A few edits and minutes later, my computer reported being low on memory but I didn't have time to quit anything before it all froze. I had 10 jetsamevent 298, system memory critical, logs over the course of 2 minutes, and all of them show:

  "largestProcess" : "PullRequestQuantifier.VsCode.Cli",

with three corresponding records in the list of processes, which are also the three largest by far when the json is sorted:

``` "name": "PullRequestQuantifier.VsCode.Cli" "lifetimeMax": 16263673 "lifetimeMax": 14144970 "lifetimeMax": 2330702 "name": "REDACTED" "lifetimeMax": 319721 .... ```
``` {"bug_type":"298","timestamp":"2021-10-11 11:07:09.23 -0700","os_version":"macOS 11.5.2 (20G95)","incident_id":"REDACTED"} { "crashReporterKey": "REDACTED", "kernel": "Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:31 PDT 2021; root:xnu-7195.141.2~5/RELEASE_X86_64", "product": "MacBookPro16,1", "incident": "REDACTED", "build": "macOS 11.5.2 (20G95)", "date": "2021-10-11 11:07:09.20 -0700", "timeDelta": 4, "memoryStatus": { "compressorSize": 2293517, "compressions": 91106891, "decompressions": 27273941, "zoneMapCap": 6442450944, "largestZone": "data.kalloc.2048", "largestZoneSize": 322801664, "pageSize": 4096, "uncompressed": 33642290, "zoneMapSize": 1383854080, "memoryPages": { "active": 527459, "throttled": 0, "fileBacked": 87792, "wired": 844895, "anonymous": 965837, "purgeable": 0, "inactive": 494108, "free": 32841, "speculative": 32062 } }, "largestProcess": "PullRequestQuantifier.VsCode.Cli", "genCounter": 1, "processes": [ { "uuid": "9ce1aee5-5da2-317f-a8e9-fb3514705103", "states": [], "age": 167849369562, "purgeable": 0, "fds": 200, "coalition": 15739, "rpages": 16263673, "priority": 18, "physicalPages": { "internal": [ 217, 16263456 ] }, "pid": 3526, "cpuTime": 78.956257, "name": "PullRequestQuantifier.VsCode.Cli", "lifetimeMax": 16263673 }, { "uuid": "9ce1aee5-5da2-317f-a8e9-fb3514705103", "states": [], "age": 158485953368, "purgeable": 0, "fds": 200, "coalition": 15739, "rpages": 14144970, "priority": 18, "physicalPages": { "internal": [ 208, 14144762 ] }, "pid": 4114, "cpuTime": 70.34071, "name": "PullRequestQuantifier.VsCode.Cli", "lifetimeMax": 14144970 }, { "uuid": "9ce1aee5-5da2-317f-a8e9-fb3514705103", "states": [], "age": 81600459582, "purgeable": 0, "fds": 200, "coalition": 15739, "rpages": 2330702, "priority": 18, "physicalPages": { "internal": [ 154144, 2176558 ] }, "pid": 7158, "cpuTime": 11.358675999999999, "name": "PullRequestQuantifier.VsCode.Cli", "lifetimeMax": 2330702 }, { "uuid": "d452390a-f0a3-3ef0-a182-b092580e9f08", "states": [], "age": 74500371822796, "purgeable": 0, "fds": 800, "coalition": 256, "rpages": 315956, "priority": 3, "physicalPages": { "internal": [ 16945, 299085 ] }, "pid": 289, "cpuTime": 12792.165035, "name": "REDACTED", "lifetimeMax": 319721 }, .... ] ```
qayshp commented 3 years ago

Confirmed (unfortunately) that in my environment, I can repro this. Within a minute of saving a .cs (C#) file, the memory footprint ballooned to over 30 GB.

Not sure what other data to gather, but I have a Sample from Activity Monitor of the runaway process. I also have exthost.logs and [\d]+-CodeStream (Agent).logs that may contain more personal data.

Seeing the CodeStream name, I'm wondering if I should take this to a different project. Please let me know if this is the wrong place.

qayshp commented 3 years ago

I disabled the CodeStream extension and still see this behavior.

DragosDanielBoia commented 3 years ago

Thanks for reporting this, feel free to contribute to the vscode extension (code path https://github.com/microsoft/PullRequestQuantifier/tree/main/src/Clients/PullRequestQuantifier.VsCode.Client).Will review the code and update the marketplace.