Skip to content

Support upload of large databases (> 2GB) #1383

@aibaars

Description

@aibaars

Currently the codeql-action crashes when trying to upload a CodeQL database bundle that is larger than 2GB. This is because the codeql-action tries to load the entire zip file into a Buffer which is limited to 2GB in Javascript.

We should probably rewrite:

const payload = fs.readFileSync(
await bundleDb(config, language, codeql, language)
);

and supply the payload to the POST request as a streaming input.

Creating zip file at C:\a\_temp\codeql_databases\csharp.zip.
Error: File size (8048141762) is greater than 2 GB
RangeError [ERR_FS_FILE_TOO_LARGE]: File size (8048141762) is greater than 2 GB
    at new NodeError (node:internal/errors:371:5)
    at tryCreateBuffer (node:fs:419:13)
    at Object.readFileSync (node:fs:464:14)
--->at uploadDatabases (C:\a\_actions\github\codeql-action\v2\lib\database-upload.js:51:28)<---
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async run (C:\a\_actions\github\codeql-action\v2\lib\analyze-action.js:184:9)
    at async runWrapper (C:\a\_actions\github\codeql-action\v2\lib\analyze-action.js:235:9) {
  code: 'ERR_FS_FILE_TOO_LARGE'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions