Set fuzzer author as reporter for bugs from external fuzzers - #5312
Set fuzzer author as reporter for bugs from external fuzzers#5312jr2bg wants to merge 15 commits into
Conversation
dylanjew
left a comment
There was a problem hiding this comment.
Great job overall!
A couple things:
-
Change the branch to merge this into
master -
Please run
python butler.py formatandpython butler.py lint -
Could you add a section to your description explaining the steps that you went through to test this? It would be great to include screenshots of this is in dev and then verifying the field in the Datastore. Let me know if you have any questions
-
Similarly, the backfill script component of this bug probably warrants another section in the PR description. It should cover the order of operations for rolling out this change and how you're going to get the primary owner data for the backfill. Again, lmk if I can help with this. The state of our blackbox fuzzers is not great, and there are many that we need to track down their status/owners.
71a3845 to
1c3affd
Compare
1c3affd to
e4b33cd
Compare
| # Intercept new_issue so we can capture the saved issue object. | ||
| original_new_issue = issue_tracker.new_issue | ||
|
|
||
| def mock_new_issue(): |
There was a problem hiding this comment.
I'd prefer to mock as little as possible and keep the mocks to the external calls, e.g. the _execute request in test_filed_issue_google_issue_tracker
|
|
||
| issue.reporter = user_email | ||
| if fuzzer and getattr(fuzzer, 'primary_owner', None): | ||
| issue.reporter = fuzzer.primary_owner |
There was a problem hiding this comment.
We sometimes use the reporter to determine whether clusterfuzz filed the bug. Is there another place where we are setting metadata of some kind, e.g. a label/hotlist that stays on the bug so that we can continue to track clusterfuzz filed bugs?
e4b33cd to
4eb3238
Compare
- issue_filer.py Get fuzzer from DataStore query, handles cases when no `primary_owner` is found, does not consider yet `external_contribution. - migrate_fuzzer_owners.py Removes the owner
4921ce2 to
5c0f78e
Compare
hunsche
left a comment
There was a problem hiding this comment.
Your branch is out of date with the main branch, and the tests are failing. Please update your branch and fix the issues.
Also, how did you test these changes?
Sorry, the test is failing because I had a bad commit last week during the outage. It should pass once the branch is rebased.
@hunsche, There's a description of how @jr2bg tested the changes with screenshots in the description |
decoNR
left a comment
There was a problem hiding this comment.
I was wondering if changing the reporter has any implications regarding the ClusterFuzz service account losing access to the issue. I imagine that is not the case because ClusterFuzz has a workflow that allows a user to create an issue and link it to a test case, and ClusterFuzz is still able to interact with the issue. I am okay with merging, given that this can only fail for fuzzers where you have set the primary_owner, which are the ones you are monitoring closely and have control over.
I am waiting for comments to be resolved before approving.
Thanks for thinking about this! Totally agree with your conclusion. We're going to separate the actual roll out of this feature from the logic in this PR. I think there are going to be a couple systems that rely on the clusterfuzz service account as the reporter to detect that the bug came from Clusterfuzz. |
c011f99 to
8d34bb4
Compare
Changes:
primary_ownerfield toFuzzermodel indata_types.py.edit-form.html.fuzzers.pyhandler to save theprimary_ownerfield.file_issueinissue_filer.pyto usefuzzer.primary_owneras the reporter if available.issue_filer_test.pyto verify the new behavior.Feature tests
Show “owner” textbox
Preconditions
devinstanceSteps
Evidence
Step 3

Show owner entry on Pantheon Audit Logs
Preconditions
Steps
new_fuzzer_with_owner_jabglibfuzzer_chrome_asanNoneNoneTruenew_fuzzer_with_owner_jabgEvidence
Step 6

Step 10
