Proto commits in google/clusterfuzz

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:77a34b5
Author:jonathanmetzman
Committer:Jonathan Metzman

Use corpus backup as base for corpus. (#4721) Use corpus backup as base for corpus when fuzzing. This reduces time to start fuzzing (including signing the URLs in preprocess and downloading the urls in main) from 5 minutes to 20 seconds in tests I did. It should make downloads even faster than they were before the batch migration. TODO: Do this for pruning.

Commit:5d59e5c
Author:jonathanmetzman
Committer:GitHub

Upload crashes to logs bucket in permissionless way (#4400)

The documentation is generated from this commit.

Commit:25243d1
Author:jonathanmetzman
Committer:GitHub

Reapply "Make fuzz task work on a uworker. (#4342)" (#4351) (#4352) This reverts commit https://github.com/google/clusterfuzz/commit/90b87101cee2778bf1cb5a90f606f7273d10571c. 1. Don't assume there is a data bundle. 2. Fix typo.

Commit:90b8710
Author:jonathanmetzman
Committer:GitHub

Revert "Make fuzz task work on a uworker. (#4342)" (#4351) This reverts commit 4a752d6e40bdb06ecfe56cc5b94fe9e6f12b9c9c. Causes these errors: https://pantheon.corp.google.com/errors/detail/CIa_hZWh6JKCHA;locations=global;time=P30D?project=google.com:clusterfuzz&utm_source=error-reporting-notification&utm_medium=email&utm_content=new-error&e=-13802955&mods=logs_tg_prod https://pantheon.corp.google.com/errors/detail/CIa_hZWh6JKCHA;locations=global;time=P30D?project=google.com:clusterfuzz&utm_source=error-reporting-notification&utm_medium=email&utm_content=new-error&e=-13802955&mods=logs_tg_prod

Commit:4a752d6
Author:jonathanmetzman
Committer:GitHub

Make fuzz task work on a uworker. (#4342) This has been verified locally. This involved: * Get data bundle directory in an untrusted manner. * Upload fuzzing engine output in an untrusted manner. * Not checking for last corpus sync on a uworker. This is a trusted operation and is uneeded because uworkers do not outlive the task and thus will never have the corpus. * Refactor upload_log so callers aren't exposed to its internals.

Commit:60143b4
Author:jonathanmetzman
Committer:GitHub

Fix permissions issue in analyze uworker_main (#4348) Close testcases in postprocess. Fixes: crbug.com/374738561

Commit:0a8754d
Author:jonathanmetzman
Committer:GitHub

Make sure we serialize objects before putting them in a proto. (#4323) Follow up on: https://github.com/google/clusterfuzz/pull/4316 Fixes: https://pantheon.corp.google.com/errors/detail/CKnhiqX14viPPw;time=PT1H;locations=global?project=google.com:clusterfuzz

Commit:e7d16e6
Author:jonathanmetzman
Committer:GitHub

Harmonize trusted host and normal corpus pruning code. (#4308) Get rid of CorpusCrash. Use CrashInfo everywhere. Using CrashInfo in some places breaks oss-fuzz corpus pruning when there is a crash in the corpus, because we expect to be using the unit_name which CrashInfo doesn't have. It was kind of crazy to have two totally different objects passed to the same function (only similarity is basically ducktyped).

Commit:37653b3
Author:jonathanmetzman
Committer:GitHub

Reland get fuzz target in preprocess and fix simple issue assuming all jobs have fuzz target (#4259)

Commit:6db190c
Author:Jonathan Metzman

Reapply "[fuzz_task] Get fuzz target weights in preprocess (#4192)" (#4258) This reverts commit ab0ebe16e627caeb4692c0aed70b276afe690082.

Commit:ab0ebe1
Author:jonathanmetzman
Committer:GitHub

Revert "[fuzz_task] Get fuzz target weights in preprocess (#4192)" (#4258) This reverts commit b765e4ad88758522350c8e7c451dbc4be5e139e0. Reverting due to exceptions.

Commit:b765e4a
Author:jonathanmetzman
Committer:GitHub

[fuzz_task] Get fuzz target weights in preprocess (#4192)

Commit:316cb7c
Author:jonathanmetzman
Committer:GitHub

Revert "Revert rearch PRs from today. (#4209)" (#4227) This reverts commit 1b8ca0d94266d741bfd1da8eaaba52c40f768f19. This is safe to land because I am around to fix it.

Commit:aa426a9
Author:Ali HIJAZI
Committer:GitHub

Add the possibility to push tasks to swarming (#3996)

Commit:1b8ca0d
Author:jonathanmetzman
Committer:GitHub

Revert rearch PRs from today. (#4209) They should be working, but I be around to fix them.

Commit:069cad0
Author:jonathanmetzman
Committer:GitHub

Fix exception in build_data (#4206)

Commit:aba10fc
Author:jonathanmetzman
Committer:GitHub

[fuzz_task][rearch] Handle bad builds in postprocess (#4201)

Commit:d6ce764
Author:jonathanmetzman
Committer:GitHub

Handle issue metadata properly (#4174) Since it's a heterogenous dictionary, we must store it as a string representation of a json dict (as unwieldy as this is, it's the only correct way to do this). Fixes: https://pantheon.corp.google.com/errors/detail/CODtycKwtN-pGA;filter=%5B%22Type%22%5D;time=P30D;locations=global?e=-13802955&invt=AbZgCw&mods=logs_tg_prod&project=google.com:cluster-fuzz ``` Bar chart Sample stack trace Parsed Raw TypeError: bad argument type for built-in operation at .update ( <frozen _collections_abc>:949 ) at .find_fixed_range ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/progression_task.py:567 ) at .utask_main ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/progression_task.py:671 ) at .uworker_main_no_io ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/__init__.py:211 ) at .execute_locally ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/task_types.py:63 ) at .execute ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/task_types.py:127 ) at .run_command ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py:218 ) at .process_command_impl ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py:429 ) at .wrapper ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py:159 ) at .process_command ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py:248 ) at .task_loop ( /mnt/scratch0/clusterfuzz/src/python/bot/startup/run_bot.py:146 ) ```

Commit:792fa75
Author:jonathanmetzman
Committer:GitHub

Prevent integer overflow by using int64 instead of int32 (#4184) Fixes: ``` ValueError: Value out of range: 2148226322 at ._extract_coverage_information ( /mnt/scratch0/bots/oss-fuzz-linux-zone5-host-qp4x-2/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/corpus_pruning_task.py:978 ) at .utask_main ( /mnt/scratch0/bots/oss-fuzz-linux-zone5-host-qp4x-2/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/corpus_pruning_task.py:1029 ) ```

Commit:f827e6d
Author:jonathanmetzman
Committer:Jonathan Metzman

Ensure archived field is sent to utask_main (#4180) Follow up to https://github.com/google/clusterfuzz/pull/4173 Fixes https://pantheon.corp.google.com/errors/detail/CNDympvhu7XrzwE;locations=global;time=P30D?project=clusterfuzz-external&utm_source=error-reporting-notification&utm_medium=email&utm_content=new-error&e=-13802955&mods=logs_tg_prod

Commit:cf61fa5
Author:jonathanmetzman
Committer:GitHub

Ensure archived field is sent to utask_main (#4180) Follow up to https://github.com/google/clusterfuzz/pull/4173 Fixes https://pantheon.corp.google.com/errors/detail/CNDympvhu7XrzwE;locations=global;time=P30D?project=clusterfuzz-external&utm_source=error-reporting-notification&utm_medium=email&utm_content=new-error&e=-13802955&mods=logs_tg_prod

Commit:774c35c
Author:jonathanmetzman
Committer:Jonathan Metzman

Fix AttributeError: 'NoneType' object has no attribute 'corpus_pruning_task_input' (#4168) This was caused by the roll forward of oss-fuzz.

Commit:7691c8e
Author:jonathanmetzman
Committer:GitHub

Fix AttributeError: 'NoneType' object has no attribute 'corpus_pruning_task_input' (#4168) This was caused by the roll forward of oss-fuzz.

Commit:6a7df45
Author:Oliver Chang
Committer:Oliver Chang

Propagate fuzz_targets for RemoteRegularBuild. (#4166) This is required for OSS-Fuzz after the uworker refactor. This fixes the following exception: ``` Error occurred while working on task. Traceback (most recent call last): File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/python/bot/startup/run_bot.py", line 146, in task_loop commands.process_command(task) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py", line 249, in process_command task.high_end, task.is_command_override) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py", line 159, in wrapper return func(task_name, task_argument, job_name, *args, **kwargs) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py", line 433, in process_command_impl preprocess) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py", line 218, in run_command result = task.execute(task_argument, job_name, uworker_env) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/task_types.py", line 105, in execute self.execute_locally(task_argument, job_type, uworker_env) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/task_types.py", line 63, in execute_locally uworker_output = utasks.uworker_main_no_io(self.module, uworker_input) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/__init__.py", line 211, in uworker_main_no_io uworker_output = utask_module.utask_main(uworker_input) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/fuzz_task.py", line 1919, in utask_main return session.run() File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/fuzz_task.py", line 1731, in run self.fuzz_task_output.fuzz_targets.extend(build_setup_result.fuzz_targets) TypeError: Value must be iterable ```

Commit:c7c9a8e
Author:Oliver Chang
Committer:GitHub

Propagate fuzz_targets for RemoteRegularBuild. (#4166) This is required for OSS-Fuzz after the uworker refactor. This fixes the following exception: ``` Error occurred while working on task. Traceback (most recent call last): File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/python/bot/startup/run_bot.py", line 146, in task_loop commands.process_command(task) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py", line 249, in process_command task.high_end, task.is_command_override) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py", line 159, in wrapper return func(task_name, task_argument, job_name, *args, **kwargs) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py", line 433, in process_command_impl preprocess) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/commands.py", line 218, in run_command result = task.execute(task_argument, job_name, uworker_env) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/task_types.py", line 105, in execute self.execute_locally(task_argument, job_type, uworker_env) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/task_types.py", line 63, in execute_locally uworker_output = utasks.uworker_main_no_io(self.module, uworker_input) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/__init__.py", line 211, in uworker_main_no_io uworker_output = utask_module.utask_main(uworker_input) File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/fuzz_task.py", line 1919, in utask_main return session.run() File "/mnt/scratch0/bots/oss-fuzz-linux-zone1-host-bsw9-13/clusterfuzz/src/clusterfuzz/_internal/bot/tasks/utasks/fuzz_task.py", line 1731, in run self.fuzz_task_output.fuzz_targets.extend(build_setup_result.fuzz_targets) TypeError: Value must be iterable ```

Commit:f0c2459
Author:jonathanmetzman
Committer:GitHub

Remove unused proto field (#4150)

Commit:e9e7476
Author:jonathanmetzman
Committer:GitHub

Reland "Making crashes uworker safe (#4102)" (#4137) This reverts commit 8c2f3bcebd061dfdd40470ee2e2ddab6bf6637e1.

Commit:8c2f3bc
Author:jonathanmetzman
Committer:GitHub

Revert making crashes uworker safe (#4102)

Commit:8c36134
Author:jonathanmetzman
Committer:GitHub

Add back used field (#4101)

Commit:87f69a2
Author:jonathanmetzman
Committer:GitHub

Fix mismatch between Crash and proto version (#4097)

Commit:97758db
Author:jonathanmetzman
Committer:GitHub

Remove unused field (#4096)

Commit:01a76fc
Author:jonathanmetzman
Committer:GitHub

Dont serialize unneeded field (#4092)

Commit:1fa920c
Author:Vitor Guidi

Revert "Make fuzz crashes uworker safe (#4000)" This reverts commit 4a17b2f82cbfcfef979991df635251d9c22ac4b9.

Commit:4a17b2f
Author:jonathanmetzman
Committer:GitHub

Make fuzz crashes uworker safe (#4000) This is probably the most important part of migrating fuzz_task. This superseeds: #3834 and #3816

Commit:d5fb5f6
Author:Vitor Guidi
Committer:GitHub

Attempting to bump proto/grpcio in Python 3.7 - 3rd attempt (#4066) ### Motivation Last attempted was [reverted](https://github.com/google/clusterfuzz/pull/4064) due to an issue in utask main scheduler, related to protos and gcp batch This PR attempts to fix the following issue: ``` AttributeError: Unknown field for InstancePolicy: boot_disk at .__setattr__ ( /mnt/scratch0/clusterfuzz/src/third_party/proto/message.py:932 ) at ._get_allocation_policy ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/google_cloud_utils/batch.py:182 ) at ._create_job ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/google_cloud_utils/batch.py:225 ) at .create_uworker_main_batch_jobs ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/google_cloud_utils/batch.py:139 ) at .schedule_utask_mains ( /mnt/scratch0/clusterfuzz/src/python/bot/startup/run_bot.py:105 ) at .task_loop ( /mnt/scratch0/clusterfuzz/src/python/bot/startup/run_bot.py:136 ) ``` ### Testing strategy This issue was caused because batch was set to 0.2.0, and the boot_disk proto field was only [introduced in 0.6.0](https://cloud.google.com/python/docs/reference/batch/latest/changelog). Returning the dependency to 0.11.0 solved the issue. This was tested manually through [use_batch.py](https://github.com/google/clusterfuzz/blob/bcae6b19f399a74ca105404284a2cad8e174627e/src/clusterfuzz/_internal/tests/core/google_cloud_utils/use_batch.py#L4), pointing to our internal gcp service. Evidence that a batch job is successfully created: ![image](https://github.com/google/clusterfuzz/assets/5733577/85b8c476-e1c0-4e89-b5ce-3c2d0d1cc578) ![image](https://github.com/google/clusterfuzz/assets/5733577/39469891-0a5c-4d66-ae81-c12240a08c6f)

Commit:bcae6b1
Author:jonathanmetzman
Committer:GitHub

Revert "Chore/py37 proto bump reattempt (#4062)" (#4064) This reverts commit 7e57e8821d35ec2b12c957239ae75c9bf33964f7. New error: ``` AttributeError: Unknown field for InstancePolicy: boot_disk at .__setattr__ ( /mnt/scratch0/clusterfuzz/src/third_party/proto/message.py:932 ) at ._get_allocation_policy ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/google_cloud_utils/batch.py:182 ) at ._create_job ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/google_cloud_utils/batch.py:225 ) at .create_uworker_main_batch_jobs ( /mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/google_cloud_utils/batch.py:139 ) at .schedule_utask_mains ( /mnt/scratch0/clusterfuzz/src/python/bot/startup/run_bot.py:105 ) at .task_loop ( /mnt/scratch0/clusterfuzz/src/python/bot/startup/run_bot.py:136 ) ```

Commit:7e57e88
Author:Vitor Guidi
Committer:GitHub

Chore/py37 proto bump reattempt (#4062) Reattempt at #4029 This PR belongs to [this initiative](https://github.com/google/clusterfuzz/issues/4059)

Commit:62090e4
Author:jonathanmetzman
Committer:GitHub

Revert changes to upgrade packages. (#4061) They are broken in prod causing this error: https://pantheon.corp.google.com/errors/detail/CPv0x-n-iqv-jQE?e=-13802955&mods=logs_tg_prod&project=google.com:clusterfuzz ``` Unable to update heartbeat. Traceback (most recent call last): File "/mnt/scratch0/clusterfuzz/src/clusterfuzz/_internal/datastore/data_handler.py", line 1130, in update_heartbeat heartbeat = ndb.Key(data_types.Heartbeat, bot_name).get() File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/_options.py", line 102, in wrapper return wrapped(*pass_args, **kwargs) File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/utils.py", line 150, in positional_wrapper return wrapped(*args, **kwds) File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/key.py", line 859, in get return self.get_async(_options=_options).result() File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/tasklets.py", line 210, in result self.check_success() File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/tasklets.py", line 157, in check_success raise self._exception File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/tasklets.py", line 319, in _advance_tasklet yielded = self.generator.throw(type(error), error, traceback) File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/key.py", line 944, in get entity_pb = yield _datastore_api.lookup(self._key, _options) File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/tasklets.py", line 323, in _advance_tasklet yielded = self.generator.send(send_value) File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/_datastore_api.py", line 165, in lookup entity_pb = yield batch.add(key) File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/ndb/_datastore_api.py", line 217, in add todo_key = key.to_protobuf()._pb.SerializeToString() File "/mnt/scratch0/clusterfuzz/src/third_party/google/cloud/datastore/key.py", line 324, in to_protobuf key.path.append(element) TypeError: Parameter to MergeFrom() must be instance of same class: expected google.datastore.v1.Key.PathElement got PathElement. ``` Vitor says this isn't a deterministic bug.

Commit:a16f837
Author:Vitor Guidi
Committer:GitHub

Chore/bump py37 deps (#4029) *** Motivation This PR complements #4005 by bumping the gcp clients, grpcio and protobuf, and fixing the code to accomodate for breaking changes.

Commit:e530a29
Author:Vitor Guidi

Dropping entity proto headers for protobuf.Any, recompiling

Commit:b9cf5e5
Author:jonathanmetzman
Committer:GitHub

Make crash_revision an int64 (#3990) Fixes: https://pantheon.corp.google.com/errors/detail/CPquw-3h_ueTvQE;service=;version=?project=google.com:cluster-fuzz

Commit:180453c
Author:Ali HIJAZI
Committer:GitHub

Store the backup corpus using a signed url (#3946)

Commit:d7f54e3
Author:Ali HIJAZI
Committer:GitHub

Migrate corpus pruning [3/N] (#3905) Move `process_corpus_crashes` to postprocess: 1- From `utask_main`: Pack the crash.unit_path into a zip file and upload using a signed url 2- From `utask_postprocess`: get the zip, unpack individual files and upload necessary ones to blob storage, store the blob key in the created Testcase's `fuzzed_keys` attribute.

Commit:88c8c3a
Author:Jonathan Metzman

Fix

Commit:4307ddb
Author:jonathanmetzman
Committer:GitHub

Handle fuzz target metadata correctly and in an untrusted manner. (#3894) Previously analyze task was not retrieving the fuzz target metadata properly (this needs the build, analyze was doing it in postprocess) and progression was doing it in an unprivileged way (using the db in utask_main). Change this so we can retrieve the metadata in utask_main and save it in postprocess. Leave a TODO in corpus_pruning which isn't migrated yet.

Commit:25bf084
Author:jonathanmetzman
Committer:GitHub

Move privileged operation in minimize to preprocess. (#3896) Move argument retreival to preprocess. Related: #3008 Fixes: #3888

Commit:07c559b
Author:Jonathan Metzman

Set data bundles properly in preprocess.

Commit:8fb0877
Author:jonathanmetzman
Committer:GitHub

Reland 00c0b532ef5a2ccd4b390304db11cb62414b378d (#3870) Most of the failures were either unrelated or temporary due to change in proto and updated clients not using the new proto.

Commit:00c0b53
Author:jonathanmetzman
Committer:GitHub

Revert "Make data bundles uworker safe (#3868) Causing exceptions.

Commit:a46bc97
Author:jonathanmetzman
Committer:GitHub

Make data bundles uworker safe (#3862)

Commit:e6e1462
Author:jonathanmetzman
Committer:GitHub

Make test_for_crash_with_retries uworker_safe (#3865)

Commit:a7f2ce6
Author:jonathanmetzman
Committer:GitHub

Make test_for_reproducibility uworker safe. (#3864) All tasks that take a testcase as an argument use this function.

Commit:bc8305a
Author:jonathanmetzman
Committer:GitHub

[rearchitecture] Upload more stats in postprocess (#3829)

Commit:cc81ff2
Author:jonathanmetzman
Committer:GitHub

Make LSAN blacklist uworker safe (#3844)

Commit:843bd2c
Author:Oliver Chang
Committer:Oliver Chang

fuzz_task: Migrate crashes to uworker. - Add proto definitions for crash groups. - Have uworkers return serialized CrashGroups, with the input testcases uploaded via signed URLs. - Handle checking if crash is new, testcase creation etc in postprocess. - Remove old uworker_msg.CrashInfo conversion and move the job_run crash group computation to postprocess, as it relies on querying the Datastore to know if the crash is new or not. - Also handle uploading file handles in storage.upload_signed_url - Add bot_name, platform_id to uworker output. TODO: tests.

Commit:6768056
Author:Jonathan Metzman

fix

Commit:b89d9fc
Author:jonathanmetzman
Committer:GitHub

Dont make proto backwards incompatible. (#3806)

Commit:d56f8d7
Author:Ali HIJAZI
Committer:GitHub

Migrate corpus pruning [2/N] (#3763)

Commit:7dac253
Author:Jonathan Metzman

Revert "Use signed URLs for corpus (#3651)" This reverts commit d65125cd0e15c9786e0c2421eff8880a8a777395.

Commit:77bbf11
Author:jonathanmetzman
Committer:GitHub

Improve logging so we can see tasks postprocess and execute (#3774)

Commit:ac362af
Author:jonathanmetzman
Committer:GitHub

Do fuzzer selection in preprocess (#3760) Handle fuzzer selection in a way that is compatible with the fact that corpus access doesn't happen during uworker_main. This means we will not be able to record fuzz targets during main or access the corpus then, so fuzzer selection must happen first.

Commit:774e37d
Author:Ali HIJAZI
Committer:GitHub

[Minimize] Use signed urls within utask_main and cleanup unused blobs in (#3766) postprocess. --------- Co-authored-by: jonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com>

Commit:d65125c
Author:jonathanmetzman
Committer:GitHub

Use signed URLs for corpus (#3651)

Commit:ea4fcce
Author:Ali HIJAZI
Committer:GitHub

[Progression] call filter_stacktrace with a signed_url within utask_main (#3730)

Commit:7edf640
Author:Ali HIJAZI
Committer:GitHub

[Minimize] upload testcase using signed url (#3701)

Commit:76d1367
Author:Ali HIJAZI
Committer:GitHub

Migrate corpus pruning 2 (#3675) Co-authored-by: jonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com>

Commit:7c8b676
Author:Jonathan Metzman

merge

Commit:048c2e6
Author:Ali HIJAZI
Committer:GitHub

[Progression] Store testcase for regression testing using a signed url. (#3695) The testcase is now stored under a randomly generated filename instead of the testcase file hash of contents.

Commit:ecd05ef
Author:Ali Hijazi

Migrate corpus pruning 2

Commit:396eec0
Author:jonathanmetzman
Committer:GitHub

[rearchitecture] Record how long utasks take (#3679) Record how long utasks take in two ways: 1. From start to finish 2. How long each part takes. So we can figure out why batch seems to fall behind the queue-based system.

Commit:88108ae
Author:Ali HIJAZI
Committer:GitHub

Migrate corpus pruning task [1/N] (#3670)

Commit:d113591
Author:Ali HIJAZI
Committer:GitHub

Migrate regression task. (#3652)

Commit:d9bf6c8
Author:Jonathan Metzman

Update to python3.11

Commit:fc4150e
Author:jonathanmetzman
Committer:GitHub

Handle trusted parts of store_fuzzer_run_results in pre/postprocess (#3406)

Commit:ef9321c
Author:Ali HIJAZI
Committer:GitHub

Migrate Minimize task (#3600)

Commit:f58d65a
Author:Ali HIJAZI
Committer:GitHub

[Progression] Move update_build_metadata to postprocess (#3595)

Commit:e890da7
Author:jonathanmetzman
Committer:GitHub

Revert "[Progression] Move update_build_metadata to postprocess (#3463)" (#3593) This reverts commit d6742919725dd09c6f11e2ae9b2d874412418de8.

Commit:d674291
Author:Ali HIJAZI
Committer:GitHub

[Progression] Move update_build_metadata to postprocess (#3463)

Commit:69b3c3c
Author:Ali HIJAZI
Committer:GitHub

[Symbolize] Move get_stacktrace to preprocess (#3556)

Commit:ab4dbb6
Author:Ali HIJAZI
Committer:GitHub

Use protos directly in utasks (#3536) This change removes the uworker_io wrappers and uses protos directly within the utasks. This change also removes the Json user defined proto.

Commit:211bd6e
Author:Ali HIJAZI
Committer:GitHub

[symbolize] Split symbolize task to trusted/untrusted parts (#3538)

Commit:41a011f
Author:Ali HIJAZI
Committer:GitHub

Pass testcase fields/metadata updated in utask_main to postprocess (#3537)

Commit:0cf0eb3
Author:jonathanmetzman
Committer:GitHub

Revert "Temporarily revert changes to output (#3533)" (#3535) This reverts commit 17139689903d9b5645d0ce80600b727a71ff834f. Relands changes to output.

Commit:1713968
Author:jonathanmetzman
Committer:GitHub

Temporarily revert changes to output (#3533) They are breaking postprocess for older tasks. https://pantheon.corp.google.com/errors/detail/CO6x7d-czdTsWA;filter=%5B%5D;time=PT6H?project=google.com:clusterfuzz

Commit:4d6e8df
Author:Ali HIJAZI
Committer:GitHub

[Analyze] Don't pass the testcase back thru UworkerOutput (#3511) Also stops passing testcase_upload_metadata back through UworkerOuput.

Commit:dcd9de2
Author:Ali HIJAZI
Committer:GitHub

[Variant] Don't pass the testcase and variant back thru UworkerOutput (#3513)

Commit:f049629
Author:Ali HIJAZI
Committer:GitHub

[Progression] pass issue metadata to postprocess and update (#3498) Co-authored-by: jonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com>

Commit:56a8472
Author:Jonathan Metzman

Fix

Commit:441a918
Author:Titouan Rigoudy
Committer:GitHub

[Rearch] Migrate regression task #3. (#3477) This PR moves "build not found" error handling to postprocess. Along the way, it attempts to provide clearer error messages to be logged in testcase comments.

Commit:8b3d1d9
Author:Ali Hijazi

[Progression] pass issue metadata to postprocess and update

Commit:ad60498
Author:Jonathan Metzman

fast

Commit:b004f60
Author:jonathanmetzman
Committer:GitHub

Make symbolize a utask (#3470)

Commit:b34c9ee
Author:Titouan Rigoudy
Committer:GitHub

[Rearch] Migrate regression task #2 (#3469) Handle empty revision list errors in `utask_postprocess` instead of `utask_main`. Introduce a new error type to represent this error. As I wrote tests, I ran into serialization errors that confused me until I understood that my mental model of types, and the corresponding type annotations I had written, were wrong. Turns out that the arguments to `utask_main` and `utask_postprocess` are not `UworkerInput` and `UworkerOutput` as I has thought, but instead generic `DeserializedUworkerMsg` objects. I find this unfortunate, but I guess the input as created by `utask_preprocess` should not be the same type as the input passed to `utask_main` due to the change detection logic required for `utask_main`'s argument?

Commit:3603c4a
Author:jonathanmetzman
Committer:GitHub

Fix issues using TASK_NAME in postprocess (#3461)

Commit:a7a1bb2
Author:Ali HIJAZI
Committer:GitHub

Adapt check bad builds (#3441) Reland of https://github.com/google/clusterfuzz/pull/3416 So basically, what I changed is that we're now returning `False, True, None` when `'BAD_BUILD_CHECK'` is not set. This leads `update_build_metadata` to return early. --------- Co-authored-by: jonathanmetzman

Commit:a53284d
Author:Titouan Rigoudy
Committer:GitHub

[Rearch] Migrate regression task #1 (#3420) Move a couple things out of `utask_main` into `utask_preprocess` and `utask_postprocess`, add a bunch of tests. @jonathanmetzman PTAL. I would appreciate some guidance on the TODOs in unit tests, specifically around how to set up the environment so that we do not need to mock out so much code. --------- Co-authored-by: jonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com>

Commit:01f392b
Author:Ali HIJAZI
Committer:GitHub

[Corpus Pruning] Move fuzz target fetching and task status update to … (#3444) @jonathanmetzman Could you please take a look?

Commit:a9dcb11
Author:Ali HIJAZI
Committer:GitHub

[Progression] Move get_job_bad_revisions to utask_preprocess (#3451)

Commit:b920c5f
Author:Jonathan Metzman

Fix

Commit:e1061cc
Author:Ali HIJAZI
Committer:GitHub

Rename uworker_output.error to uworker_output.error_type (#3440) Co-authored-by: jonathanmetzman <31354670+jonathanmetzman@users.noreply.github.com>