CodeQL Analysis crash with out of memory

Open
#1,641 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
github-actions, typescript
Domain
ci-cd, security

Research direction

Start with the linked CodeQL Actions run and the extraction failure for packages/gizmo/ts/define.define_deps.spec.ts. Compare it with the type-plus pull request example and the reported spec-file workaround; done means TypeScript CodeQL analysis completes without the parser running out of memory, or the supported workaround is clearly documented.

Written by the indexing model from the issue text.

Description

https://github.com/unional/async-fp/actions/runs/4653860071/jobs/8235098420

[2023-04-10 02:21:17] [build-stdout] Extracting /home/runner/work/async-fp/async-fp/packages/gizmo/ts/define.define_deps.spec.ts
  [2023-04-10 02:43:15] [build-stderr] <--- Last few GCs --->
  [2023-04-10 02:43:15] [build-stderr] [2032:0x6de5530]  1319634 ms: Mark-sweep 3160.3 (3390.9) -> 3143.5 (3389.8) MB, 2799.8 / 0.0 ms  (average mu = 0.119, current mu = 0.046) allocation failure; scavenge might not succeed
  [2023-04-10 02:43:15] [build-stderr] [2032:0x6de5530]  1319773 ms: Scavenge 3159.3 (3389.8) -> 3144.1 (3389.8) MB, 20.2 / 0.0 ms  (average mu = 0.119, current mu = 0.046) allocation failure; 
  [2023-04-10 02:43:15] [build-stderr] <--- JS stacktrace --->
  [2023-04-10 02:43:15] [build-stderr] FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
  [2023-04-10 02:43:15] [build-stderr]  1: 0xb7b3e0 node::Abort() [node]
  [2023-04-10 02:43:15] [build-stderr]  2: 0xa8c8aa  [node]
  [2023-04-10 02:43:15] [build-stderr]  3: 0xd69100 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
  [2023-04-10 02:43:15] [build-stderr]  4: 0xd694a7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
  [2023-04-10 02:43:15] [build-stderr]  5: 0xf46ba5  [node]
  [2023-04-10 02:43:15] [build-stderr]  6: 0xf47aa8 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [node]
  [2023-04-10 02:43:15] [build-stderr]  7: 0xf57fb3  [node]
  [2023-04-10 02:43:15] [build-stderr]  8: 0xf58e28 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
  [2023-04-10 02:43:15] [build-stderr]  9: 0xf3378e v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
  [2023-04-10 02:43:15] [build-stderr] 10: 0xf34b57 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
  [2023-04-10 02:43:15] [build-stderr] 11: 0xf15d2a v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node]
  [2023-04-10 02:43:15] [build-stderr] 12: 0x12dacdf v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
  [2023-04-10 02:43:15] [build-stderr] 13: 0x1707b79  [node]
  [2023-04-10 02:43:16] [build-stderr] Exception while extracting /home/runner/work/async-fp/async-fp/packages/gizmo/ts/define.define_deps.spec.ts.
  [2023-04-10 02:43:16] [build-stderr] The TypeScript parser wrapper crashed, possibly from running out of memory.
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.ts.extractor.TypeScriptParser.getExceptionFromMalformedResponse(TypeScriptParser.java:413)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.ts.extractor.TypeScriptParser.talkToParserWrapper(TypeScriptParser.java:381)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.ts.extractor.TypeScriptParser.parse(TypeScriptParser.java:451)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.TypeScriptExtractor.extract(TypeScriptExtractor.java:24)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.FileExtractor.extractContents(FileExtractor.java:547)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.FileExtractor.extract(FileExtractor.java:454)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.AutoBuild.doExtract(AutoBuild.java:1234)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.AutoBuild.extract(AutoBuild.java:1220)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.AutoBuild.extractTypeScriptFiles(AutoBuild.java:1173)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.AutoBuild.extractTypeScript(AutoBuild.java:1051)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.AutoBuild.extractSource(AutoBuild.java:752)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.AutoBuild.run(AutoBuild.java:459)
  [2023-04-10 02:43:16] [build-stderr] 	at com.semmle.js.extractor.AutoBuild.main(AutoBuild.java:1329)
  Error: 4-10 02:43:16] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/opt/hostedtoolcache/CodeQL/2.12.6-20230403/x[64](https://github.com/unional/async-fp/actions/runs/4653860071/jobs/8235098420#step:5:65)/codeql/javascript/tools/autobuild.sh])

This tends to happen on TypeScript project.

I have also seen this on type-plus

And a workaround is to ignore the spec files.

Dominant language
TypeScript
Stars
1.6k
Forks
493
Avg merge
1d 13h
Merged PRs (30d)
44

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/codeql-action

All issues in github/codeql-action

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.