Skip to content

GitLab Next

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
gitlab-runner
gitlab-runner
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 2,026
    • Issues 2,026
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 190
    • Merge Requests 190
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.org
  • gitlab-runnergitlab-runner
  • Merge Requests
  • !1292

Merged
Opened Apr 06, 2019 by Kamil Trzciński@ayufan🔴Maintainer0 of 3 tasks completed0/3 tasks

Optimise trace handling for big traces

  • Overview 35
  • Commits 1
  • Pipelines 9
  • Changes 11

What does this MR do?

This greatly optimizes handling of build traces and logic behind the handling of build traces in Runner. This should effectively allow a runner to send traces of 100MB to GitLab freely.

I reworked the current networking code for PatchTrace to simplify its implementation, and make it less dependent on other code. This results in great code reduction.

I also reworked the update loop to have a very simple logic for update of trace and general update. We do not re-send trace, as this is redundant operation now. We rather perform incremental patching of trace, in chunks.

The PUT is used only to update the general state of CI job.

This also have serious impact on Memory of GitLab. We limit size of chunk, and we limit the runtime memory on Rails side. We also do not re-send trace as this is redundant operation.

Why was this MR needed?

Make GitLab Runner capable of running AOSP build that can generate 100MB of traces.

Does this MR meet the acceptance criteria?

  • Documentation created/updated
  • Added tests for this feature/bug
  • In case of conflicts with master - branch was rebased

What are the relevant issue numbers?

Edited Apr 16, 2019 by Kamil Trzciński
Assignee
Assign to
Reviewer
Request review from
11.11
Milestone
11.11 (Past due)
Assign milestone
Time tracking
Reference: gitlab-org/gitlab-runner!1292
Source branch: improve-support-for-big-traces