Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add nightly exchange fuzzer. #8862

Closed

Conversation

kgpai
Copy link
Contributor

@kgpai kgpai commented Feb 27, 2024

This PR adds a nightly fuzzer run for the exchange fuzzer. It runs along with the other scheduled nightly jobs and the failure repros are saved to artifacts. The job runs for 30 minutes and locally I saw 100 odd iterations.

@kgpai kgpai requested a review from assignUser February 27, 2024 01:03
@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Feb 27, 2024
Copy link

netlify bot commented Feb 27, 2024

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit 1c1c17f
🔍 Latest deploy log https://app.netlify.com/sites/meta-velox/deploys/65fcb6072c70e60008560cb8

@facebook-github-bot
Copy link
Contributor

@kgpai has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

Copy link
Contributor

@mbasmanova mbasmanova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kgpai Thank you for adding this job. Will it be running as experimental job? If not, why? Have we ran this as experimental job earlier and determined that it is stable enough?

Please, update the PR description to clarify for how long ExchangeFuzzer runs and how many iterations it goes through in that time.

- name: "Install dependencies"
run: source ./scripts/setup-ubuntu.sh

- name: Download join fuzzer
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

join -> Exchange

with:
name: exchange

- name: "Run Join Fuzzer"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Join -> Exchange

Why are some step names are in double quotes and others are not?

- name: Download join fuzzer

vs.

- name: "Run Join Fuzzer"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dont think it really matters : https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions , but we can remove the quotes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. Would be nice to pick one way and use it consistently (in a follow-up PR).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yaml can do some fun things with unquoted strings so it's usually good practice to quote all strings. But of course normal step names are normally not affected by these.

@@ -113,6 +113,14 @@ jobs:
name: join
path: velox/_build/debug/velox/exec/tests/velox_join_fuzzer_test

- name: Upload Exchange fuzzer
uses: actions/upload-artifact@v3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does @V3 mean here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

with:
name: exchange-fuzzer-failure-artifacts
path: |
/tmp/exchange_fuzzer_repro
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's in that directory? I tried to look up documentation for this fuzzer, but couldn't. Does it exist? If not, it would be nice to add.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will add documentation in a subsequent PR.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

@kgpai kgpai force-pushed the exchange_fuzzer_nightly_run branch from b977c2f to 2cfe5cc Compare February 27, 2024 18:25
&& echo -e "\n\Exchange fuzzer run finished successfully."

- name: Archive Exchange production artifacts
if: always()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need this statement? Isn't it always true?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, because typically the artifact mechanism is used when the job produces some artifact at the end of the run (think you are building a package etc) that you want to upload . When the job fails most jobs dont want to upload half built packages etc, however in our case its the opposite as when we fail we want to save the repro and thus the always flag.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. Thank you for explaining.

@kgpai
Copy link
Contributor Author

kgpai commented Feb 27, 2024

@mbasmanova I ran it locally for 20 - 30 minutes and did not see any failure (more than 100 iterations), my understanding was that this was mostly stable. However I see that on CI it seems to be failing , and have created an issue : #8876 .

Copy link
Contributor

@mbasmanova mbasmanova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

@kgpai
Copy link
Contributor Author

kgpai commented Feb 27, 2024

Note: I think its better to not land this till we fix issue : #8876.

@bikramSingh91 bikramSingh91 force-pushed the exchange_fuzzer_nightly_run branch from 2cfe5cc to ed58863 Compare February 28, 2024 00:54
@bikramSingh91
Copy link
Contributor

The mmapAllocator mmaps address space equal to allocatorCapacity for all page size classes (there are total of 9 classes) Since it runs fine everywhere my best guess is that the container in github actions seems to not allow large mmaps. Since we dont have direct ssh access to the container (which would have helped me poke the kernel or play around with allocatorCapacity's value), I am instead changing the PR and reducing the allocatorCapacity to see if the job now succeeds.

@assignUser
Copy link
Collaborator

This will need to be rebased on #8734 as well.

@kgpai kgpai force-pushed the exchange_fuzzer_nightly_run branch 5 times, most recently from a9471d2 to 8a2d18f Compare March 19, 2024 16:18
@kgpai
Copy link
Contributor Author

kgpai commented Mar 19, 2024

@bikramSingh91 Setting exchange fuzzer to 8 gb seems to work.

@facebook-github-bot
Copy link
Contributor

@kgpai has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

1 similar comment
@facebook-github-bot
Copy link
Contributor

@kgpai has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@kgpai
Copy link
Contributor Author

kgpai commented Mar 20, 2024

This is pending #8734

@kgpai kgpai force-pushed the exchange_fuzzer_nightly_run branch from 4903e7f to cf8884e Compare March 21, 2024 00:26
@kgpai kgpai force-pushed the exchange_fuzzer_nightly_run branch from cf8884e to e2244d6 Compare March 21, 2024 17:17
Copy link
Collaborator

@assignUser assignUser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor comments :)

.github/workflows/scheduled.yml Outdated Show resolved Hide resolved
.github/workflows/scheduled.yml Outdated Show resolved Hide resolved
.github/workflows/scheduled.yml Outdated Show resolved Hide resolved
@kgpai kgpai force-pushed the exchange_fuzzer_nightly_run branch from e2244d6 to 1df832a Compare March 21, 2024 22:31
@kgpai kgpai force-pushed the exchange_fuzzer_nightly_run branch from 1df832a to 1c1c17f Compare March 21, 2024 22:34
@facebook-github-bot
Copy link
Contributor

@kgpai has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

@kgpai merged this pull request in 5578357.

Copy link

Conbench analyzed the 1 benchmark run on commit 5578357d.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

Joe-Abraham pushed a commit to Joe-Abraham/velox that referenced this pull request Jun 7, 2024
Summary:
This PR adds a nightly fuzzer run for the exchange fuzzer. It runs along with the other scheduled nightly jobs and the failure repros are  saved to artifacts. The job runs for 30 minutes and locally I saw 100 odd iterations.

Pull Request resolved: facebookincubator#8862

Reviewed By: mbasmanova

Differential Revision: D54230287

Pulled By: kgpai

fbshipit-source-id: 31543026678227038b85fc632beb8475fa42db1e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants