New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 692436 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug

Blocked on:
issue 673208



Sign in to add a comment

Do something about buildbot's pickling of objects to disk

Project Member Reported by dsansome@chromium.org, Feb 15 2017

Issue description

Buildbot masters take a long time (sometimes ~an hour) to load all their state from disk on startup.  This state is kept as python pickles.

We should investigate what it's pickling, how much it's pickling, and whether it even makes sense to pickle those things.

An easy fix might be to put a limit on the maximum number of things pickled, if appropriate.
Maybe it can store some of those things in the database instead?
Maybe they can be loaded on demand, rather than all at once on startup (although I suspect they *are* loaded on demand now, and something (API user, etc.) is just iterating through them all).

I'd also like a ts_mon metric for unpickles per second, so at least we can show something on the console that tells us the master's working hard, and not stuck or hung.

Eric: not sure who to assign this to.  Is anyone interested in buildbot now stip has gone?
 

Comment 1 by estaab@chromium.org, Feb 15 2017

Cc: estaab@chromium.org iannucci@chromium.org
Owner: hinoka@chromium.org
Status: Assigned (was: Unconfirmed)
Ryan or Robbie, I think you may know buildbot internals enough to decide on the feasibility of some of these.

Personally, I think if we can limit loading of builds to the last ~50-100 that will mitigate this enough but I'm curious what you think.

Comment 2 by aga...@chromium.org, Feb 15 2017

Notably, I believe that the number of pickles loaded is "limited" to 200 per builder. The problem is that it has so many builders that that number becomes unreasonably large.

They are loaded on-demand, but the demand is "I want to view the Console page", which immediately requires loading builds from every builder. It's not clear to me why it loads 200 builds for every builder, instead of loading them until it reaches 25 revisions worth of builds or whatever it is that the console displays, but it's still all triggered by just a single pageload. (Loading the root json also triggers the same load-from-disk behavior.)

Comment 3 by hinoka@chromium.org, Feb 15 2017

Without knowing the specifics, i know historically we increase the limit because of runtime issues, so any decrease should be done carefully and with an acknowledgement that we may be trading startup time for runtime performance.
Cc: chrishall@chromium.org

Comment 5 by estaab@chromium.org, Feb 21 2017

Blockedon: 673208
I'm inclined not to put too much work into this since Dirk will be splitting up the offending masters. We should try to put checks in place to make sure masters don't get excessive numbers of builders or bots since this isn't the only aspect of buildbot that doesn't scale.

Comment 6 by hinoka@chromium.org, Feb 28 2018

Status: WontFix (was: Assigned)

Sign in to add a comment