Skip to content

Conversation

@edoardopirovano
Copy link
Contributor

A recent change the CodeQL engine caused a major performance regression in the Java dataflow library due to a change in join ordering. This PR adds two pragma[only_bind_into] annotations which should fix the performance issue.

cc. @github/codeql-core

@edoardopirovano edoardopirovano added Java no-change-note-required This PR does not need a change note labels Jun 23, 2021
@edoardopirovano edoardopirovano requested review from a team as code owners June 23, 2021 16:43
@smowton
Copy link
Contributor

smowton commented Jun 23, 2021

This needs a config/sync-files.py --latest

@smowton
Copy link
Contributor

smowton commented Jun 23, 2021

Don't wait on this PR -- Go is behind a few other recent dataflow lib changes anyhow, so we'll check out the performance of them all combined and bring it forwards when some spare time presents itself.

@aschackmull
Copy link
Contributor

Stages 2, 3, and 4 in DataFlowImpl.qll should be synced - i.e. DataFlowImpl::Stage3::parameterMayFlowThrough and DataFlowImpl::Stage4::parameterMayFlowThrough should be updated as well. These are manually desugared parameterised module applications, so keeping them synced is completely manual.

@edoardopirovano
Copy link
Contributor Author

Stages 2, 3, and 4 in DataFlowImpl.qll should be synced - i.e. DataFlowImpl::Stage3::parameterMayFlowThrough and DataFlowImpl::Stage4::parameterMayFlowThrough should be updated as well. These are manually desugared parameterised module applications, so keeping them synced is completely manual.

Ah I see, thank you. I've done this and squashed the commits to keep the commit log tidier.

@github-actions
Copy link
Contributor

⚠️ The head of this PR and the base branch were compared for differences in the framework coverage reports. A recent commit removed the previously reported differences.

@aschackmull
Copy link
Contributor

The head of this PR and the base branch were compared for differences in the framework coverage reports. A recent commit removed the previously reported differences.

@tamasvajk This looks like a bug in the action: There were no previously reported differences, no commits on this PR ever affected framework coverage.

@hvitved
Copy link
Contributor

hvitved commented Jun 24, 2021

Please run LANG-Differences jobs. Thanks.

@tamasvajk
Copy link
Contributor

The head of this PR and the base branch were compared for differences in the framework coverage reports. A recent commit removed the previously reported differences.

@tamasvajk This looks like a bug in the action: There were no previously reported differences, no commits on this PR ever affected framework coverage.

@aschackmull Yes, sorry for this noise. The previous PR analysis was done with an earlier version of the workflow, and one of the artifacts is missing, which is now expected by the job. This will impact PRs that were opened before the current version of the workflow was merged. I'll adjust the script to be backwards compatible.

@aschackmull
Copy link
Contributor

@edoardopirovano
Copy link
Contributor Author

Differences jobs look good to me! Java has a massive speedup (as expected since this change was targetted to fix a performance regression there), and the other languages look mostly unchanged.

@aschackmull aschackmull merged commit 2d24387 into github:main Jun 25, 2021
@edoardopirovano edoardopirovano deleted the fix-java-regression branch June 25, 2021 09:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C# C++ Java no-change-note-required This PR does not need a change note Python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants