Skip to content

more prep before moving to device farm#72429

Draft
davidsbailey wants to merge 9 commits intostagingfrom
expand-mobile-device-pool
Draft

more prep before moving to device farm#72429
davidsbailey wants to merge 9 commits intostagingfrom
expand-mobile-device-pool

Conversation

@davidsbailey
Copy link
Copy Markdown
Member

Links

  • Jira:

Testing story

Deployment notes

Privacy and security

davidsbailey and others added 9 commits April 29, 2026 16:52
Set OS_ACTIVITY_MODE=disable and OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
on Darwin at the top of runner.rb, before any require can initialize
libsystem_trace or the ObjC runtime. Without this, Parallel.map's
in_processes workers crash on macOS in libsystem_trace
_os_log_preferences_refresh during their first AWS S3 log upload.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
create_mobile_session now also returns the picked Aws::DeviceFarm::Types::Device,
so connect.rb can identify the provisioned device alongside the existing
visual-log line in the cucumber HTML output.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirror the runner's $options.device_farm and $options.force_db_access
flags into the haml render context, and emit them in the rerun command
only when set. Also switch the rerun-command construction to a flag
array so non-Eyes builds no longer have a double-space artifact.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Switch the Aws::DeviceFarm::Client to retry_mode: 'adaptive' with
retry_limit: 10 to absorb ThrottlingException bursts when many forked
workers call create_test_grid_url near-simultaneously under high
--parallel desktop runs. The token bucket is per-process post-fork, so
this is per-worker absorption rather than cross-worker coordination.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
During the SauceLabs-to-Device-Farm migration we run both providers
concurrently on the chef-managed test machine, where they collide on
shared per-feature output filenames (Chrome_<feature>_output.html, the
matching .rerun file, and the same-key S3 uploads). Append _df to the
test_run_identifier when --device-farm is set, mirroring the existing
_eyes pattern, and teach test_status.js to read a new haml-emitted
hidden input so each provider's status page only matches its own keys.

To remove once we settle on a single provider per browser, the change
is the inverse of these three edits.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A run with --parallel 50 still hit Aws::DeviceFarm::Errors::ThrottlingException
on CreateTestGridUrl ~78s into the suite, where the existing 10-retry
budget (worst-case ~150s of full-jitter backoff capped at 20s/attempt)
isn't enough to ride out a multi-minute sustained throttle. 20 retries
extends the worst-case window to ~350s without otherwise changing the
retry policy. A separate AWS support ticket has been filed to raise the
per-account TPS limit on CreateTestGridUrl.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant