Project

General

Profile

Actions

coordination #93883

closed

[epic] Speedup openQA coverage tests with running minion jobs synchronously using new upstream "perform_jobs_in_foreground" mojo function

Added by okurz over 3 years ago. Updated over 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Feature requests
Target version:
Start date:
2021-07-07
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)

Description

Motivation

With #93086 we found a way to speedup t/10-jobs.t by running minion jobs synchronously from the main process instead of spawning subprocesses and collecting coverage from these because it takes ages. We should apply the same functionality to other test modules, e.g. t/42-df-based-cleanup.t, at best using the new (to come) upstream mojo feature "perform_jobs_in_foreground" and remove workaround for collecting coverage from forked subprocesses. In the end we might want to have only "unit tests" collecting coverage and ensuring complete statement coverage with these while having integration tests simulating more realistic multi-process behaviours.

Acceptance criteria

  • AC1: All tests have been reviewed to apply the above
  • AC2: We are not using the workaround to collect coverage from any subprocesses anywhere by default (could still have a switch which is disabled by default)

Suggestions

  • Remove t/10-jobs.t from heavy jobs
  • We could have an environment variable to switch between "perform_jobs" or "perform_jobs_in_foreground" and combine that with coverage analysis or not
  • Remove the workarounds

Subtasks 3 (0 open3 closed)

action #95170: Increase code coverage of critical component OpenQA::Worker::Job without introducing slow-down due to subprocess coverage collectionResolvedmkittler2021-07-07

Actions
action #96561: Speed up `t/25-cache-service.t` by avoiding forking to run Minion jobsResolvedkraih2021-08-04

Actions
action #96564: Speed up `t/ui/12-needle-edit.t` and `t/ui/21-admin-needles.t` by avoiding forking to run Minion jobs size:MResolvedkraih2021-08-04

Actions

Related issues 1 (0 open1 closed)

Copied from openQA Project (public) - action #93086: unstable test in openQA master t/10-jobs.t exceeding runtime of 280sResolvedkraih2021-05-252021-06-23

Actions
Actions #1

Updated by okurz over 3 years ago

  • Copied from action #93086: unstable test in openQA master t/10-jobs.t exceeding runtime of 280s added
Actions #2

Updated by tinita over 3 years ago

  • Subject changed from [epic Speedup openQA coverage tests with running minion jobs synchronously using new upstream "perform_jobs_in_foreground" mojo function to [epic] Speedup openQA coverage tests with running minion jobs synchronously using new upstream "perform_jobs_in_foreground" mojo function
Actions #3

Updated by okurz over 3 years ago

  • Status changed from New to Workable

In the weekly estimation meeting we decided that for an epic it's actually "Workable" because we don't need to estimate the epic itself and the next task is simply to refine and create subtasks

Actions #4

Updated by mkittler over 3 years ago

  • Status changed from Workable to In Progress
  • Assignee set to mkittler

All suggestions have been implemented and there's a utility functions making use of "perform_jobs_in_foreground". So several tests have already been changed and resolving the ticket is just a matter of dealing with the remaining ones. I'll check which tests are remaining. If it can be done quickly, I'll change them right away, otherwise I'll create a ticket (and add it as sub task here).

Actions #5

Updated by mkittler over 3 years ago

Actions #6

Updated by openqa_review over 3 years ago

Setting due date based on mean cycle time of SUSE QE Tools

Actions #7

Updated by openqa_review over 3 years ago

Setting due date based on mean cycle time of SUSE QE Tools

Actions #8

Updated by okurz over 3 years ago

@mkittler what the bot wants to tell you is basically: don't directly "work" on epics :)

Actions #9

Updated by okurz over 3 years ago

  • Status changed from In Progress to Feedback

Both PRs merged, what next?

Actions #10

Updated by mkittler over 3 years ago

I've been creating sub-tasks for the remaining tests (because changing them maybe takes a little effort).

Actions #11

Updated by mkittler over 3 years ago

  • Status changed from Feedback to Blocked
Actions #12

Updated by mkittler over 3 years ago

  • Status changed from Blocked to Resolved

All sub tasks have been resolved so all tests are converted now.

Actions #13

Updated by okurz over 3 years ago

awesome, thank you!

Actions

Also available in: Atom PDF