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

tasks: add support for both 'jobs-android' and device specific subqueues #4013

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

paulsemel
Copy link
Collaborator

@paulsemel paulsemel commented Jun 3, 2024

In chrome, we need to have generic jobs that can be scheduled on any devices. This PR will make sure generic tasks keep getting pulled even when subqueues are set-up. This PR is preliminary work for us to add subqueues on our android devices.

@paulsemel paulsemel force-pushed the add-android-generic-queue-support branch from 399e8f2 to 2581fe9 Compare June 3, 2024 14:44
@jonathanmetzman
Copy link
Collaborator

Mark do you understand how this is different from Haiku's queing system for Android?

In chrome, we need to have generic jobs that can be scheduled on any
devices. This PR will make sure generic tasks keep getting pulled even
when subqueues are set-up.
@paulsemel paulsemel force-pushed the add-android-generic-queue-support branch from 2581fe9 to c076299 Compare June 4, 2024 09:04
def get_android_regular_task():
"""Get an android regular task."""
if not environment.get_value('CF_ALLOWS_LISTENING_GENERIC_QUEUE') or \
not environment.get_value('QUEUE_OVERRIDE'):
Copy link
Collaborator

Choose a reason for hiding this comment

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

I don't believe we set the QUEUE_OVERRIDE var anywhere in our tests. Unless it's done via some environment init, should this be OS_OVERRIDE?

task = get_regular_task(queue=regular_queue())
if not task:
# We then try the generic queue.
task = get_regular_task(queue=generic_android_queue())
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm concerned that pulling from the generic queue will lead to incompatible testcases being picked up (like the error log shows below).

platform (android:coral_hwasan:master) does not match with ours (android:redfin_hwasan:master), exiting-

Is that right? If so, the testcase ("task") will be re-added to the top of the queue and continue in a cycle, meaning the bot will never move on to fuzzing tasks, which only occur when no testcases are left.

@@ -190,6 +195,21 @@ def get_regular_task(queue=None):
return task


def get_android_regular_task():
"""Get an android regular task."""
if not environment.get_value('CF_ALLOWS_LISTENING_GENERIC_QUEUE') or \
Copy link
Collaborator

Choose a reason for hiding this comment

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

As discussed in meet, let's make this default as opposed to introducing new env var

svasudevprasad added a commit to svasudevprasad/clusterfuzz that referenced this pull request Jul 9, 2024
add support for both 'jobs-android' and device specific subqueues
This is a port of google#4013
for Android platform
jonathanmetzman pushed a commit that referenced this pull request Jul 9, 2024
add support for both 'jobs-android' and device specific subqueues This
is a port of #4013 for Android
platform
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants