Closed
Bug 464103
Opened 17 years ago
Closed 17 years ago
Running all different branches in the slaves is going to make us run out of space
Categories
(Release Engineering :: General, defect, P2)
Release Engineering
General
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: armenzg, Assigned: catlee)
References
Details
Attachments
(4 files, 12 obsolete files)
|
2.85 KB,
patch
|
bhearsum
:
review+
bhearsum
:
checked-in+
|
Details | Diff | Splinter Review |
|
9.84 KB,
patch
|
bhearsum
:
review+
bhearsum
:
checked-in+
|
Details | Diff | Splinter Review |
|
30.02 KB,
patch
|
bhearsum
:
review+
bhearsum
:
checked-in+
|
Details | Diff | Splinter Review |
|
981 bytes,
patch
|
nthomas
:
checked-in+
|
Details | Diff | Splinter Review |
You can look at bug 464093 and see how the macs actually need manual intervention
Since we added unittest and l10n repackages the inodes and the disk usage of the mac slaves has gone crazy high and hopefully it won't give us problems on windows and linux any time soon
Comment 1•17 years ago
|
||
We did some calculations during the onsite and we *can* support unittests and the Firefox 3.1 maintenance branch without bumping up disk sizes. However, l10n might push us over the edge.
What's the action item here, Armen?
| Reporter | ||
Comment 2•17 years ago
|
||
The l10n nightly work basically has the "mozilla-central" repo and a subset of the "l10n-central" depending on how many locales a specific slave dealt with and a maximum of the whole "l10n-central" repo if all locales were done by the same slave.
NOTE: The installers are normally deleted in each iteration since they are moved from the folder "dist" to "dist/upload" which is deleted in the first step of each iteration
If we want to minimize the disk usage we could:
1) Delete every time "mozilla-central" and "l10n-central" - Checking out both for each locale will be a high performance hit specially with "mozilla-central"
2) Delete every time the "l10n-central" - It will be a performance hit but will keep the size the "l10n-central" folder the size reduced from "size of all repos" to the size of "only one locale"
NOTE: I believe that the major problem that the mac slaves were hiting was that the iNodes capacity was full
Comment 3•17 years ago
|
||
Yes, I understand the problem here. I don't understand what you want us to _do_ about it. Are you asking for disks to be added to the Macs, and the disks on the VMs to be increased?
| Reporter | ||
Comment 4•17 years ago
|
||
I think this is more of "are we going to hit this on production?" and "can we assess the impact on staging?"
If we are running out of space in staging we have to be able to see if there is any changes we have to do like the one if being commented in 464093#c9 to don't hit the same problem.
| Reporter | ||
Updated•17 years ago
|
Summary: Running all different branches in the slaves is going to makes run out of space → Running all different branches in the slaves is going to make us run out of space
Comment 5•17 years ago
|
||
Some numbers would really help here.
| Assignee | ||
Updated•17 years ago
|
Assignee: nobody → catlee
| Assignee | ||
Comment 6•17 years ago
|
||
on bm-xserve19, sizes of directories in /builds/moz2_slave (in MB)
25 mozilla-central-macosx-nightly
38 tracemonkey-macosx-nightly
1707 mozilla-central-macosx-debug
13357 mozilla-central-macosx
14735 tracemonkey-macosx
on moz2-linux-slave15:
8 tracemonkey-linux-nightly
15 mozilla-central-linux-nightly
699 mozilla-central-linux-l10n-nightly
909 mozilla-central-linux-unittest
2001 mozilla-central-linux-debug
3568 tracemonkey-linux
3574 mozilla-central-linux
on moz2-win32-slave11:
200 mozilla-central-win32-nightly
257 tracemonkey-win32-nightly
2109 mozilla-central-win32-debug
2259 tracemonkey-win32
4870 mozilla-central-win32
Comment 7•17 years ago
|
||
One thing I noticed on win32 is that the size on disk can be bigger than the sum of all the file sizes (thanks FAT!). Eg mozilla-central-win32/ has Size of 4.37GB, and Size on disk of 5.61GB (according to the properties dialog for that dir). Similarly 2.0/3.22GB for tracemonkey-win32, 1.82/3.02GB for debug, nightly about 4.56/5.79GB.
| Assignee | ||
Comment 8•17 years ago
|
||
(In reply to comment #7)
> One thing I noticed on win32 is that the size on disk can be bigger than the
> sum of all the file sizes (thanks FAT!). Eg mozilla-central-win32/ has Size of
> 4.37GB, and Size on disk of 5.61GB (according to the properties dialog for that
> dir). Similarly 2.0/3.22GB for tracemonkey-win32, 1.82/3.02GB for debug,
> nightly about 4.56/5.79GB.
Yes, this is going to be a big problem actually. I looked at one of the windows slaves in staging yesterday, it had 15 GB of data, but 25 GB of used disk space. That's 10 GB of filesystem overhead!
We'll definitely need to expand the size of these drives.
| Assignee | ||
Comment 9•17 years ago
|
||
I think we also need a script that can be run before each build that can clean out other builds. Something smarter than what's used in #464093.
It should be able to free up a configurable amount of space, e.g. 6 GB for a windows build. It should delete builds in the following order:
- Old nightlies
- Old release builds
- Dependent builds in order from oldest to newest
This should stop builds from failing because of insufficient disk space. We could end up clobbering dependent builds too frequently, thus slowing things down, but that's better than failing to complete!
| Assignee | ||
Comment 10•17 years ago
|
||
Attachment #351384 -
Flags: review?(bhearsum)
| Assignee | ||
Comment 11•17 years ago
|
||
Attachment #351386 -
Flags: review?(bhearsum)
| Assignee | ||
Comment 12•17 years ago
|
||
Attachment #351387 -
Flags: review?(bhearsum)
| Assignee | ||
Comment 13•17 years ago
|
||
Attachment #351386 -
Attachment is obsolete: true
Attachment #351415 -
Flags: review?(bhearsum)
Attachment #351386 -
Flags: review?(bhearsum)
| Assignee | ||
Comment 14•17 years ago
|
||
Attachment #351387 -
Attachment is obsolete: true
Attachment #351417 -
Flags: review?(bhearsum)
Attachment #351387 -
Flags: review?(bhearsum)
Comment 15•17 years ago
|
||
Comment on attachment 351384 [details] [diff] [review]
python script to delete other build directories
>+ parser = OptionParser(__doc__)
>+
According to the OptionParser reference page you should pass this with the argument name. eg, description=__doc__
Other than that, this looks great.
Attachment #351384 -
Flags: review?(bhearsum) → review+
| Assignee | ||
Comment 16•17 years ago
|
||
uses win32file module on windows, since os.statvfs doesn't work
Attachment #351384 -
Attachment is obsolete: true
Attachment #351583 -
Flags: review?(bhearsum)
| Assignee | ||
Updated•17 years ago
|
Attachment #351415 -
Attachment is obsolete: true
Attachment #351415 -
Flags: review?(bhearsum)
| Assignee | ||
Comment 17•17 years ago
|
||
Attachment #351583 -
Attachment is obsolete: true
Attachment #351583 -
Flags: review?(bhearsum)
| Assignee | ||
Comment 18•17 years ago
|
||
Attachment #352119 -
Flags: review?(bhearsum)
Comment 19•17 years ago
|
||
Comment on attachment 352119 [details] [diff] [review]
Create a MozillaBuildFactory base class that runs build cleanup steps
>Index: factory.py
>===================================================================
>+class MozillaBuildFactory(BuildFactory):
>+ ignore_dirs = []
We should be ignoring the release directories - does it make sense to put that here and append others from the subclasses?
>+ self.addStep(ShellCommand,
>+ command=['bash', '-c', 'hg pull -u'],
>+ description=['update', 'build tools'],
>+ workdir='tools',
>+ )
No need to run this through bash, just ['hg', 'pull', '-u']
>-class UnittestBuildFactory(BuildFactory):
>- def __init__(self, platform, config_repo_url, config_dir, branch, **kwargs):
>- BuildFactory.__init__(self, **kwargs)
>-
>+class UnittestBuildFactory(MozillaBuildFactory):
>+ def __init__(self, platform, config_repo_url, config_dir, branch,
>+ buildToolsRepo, buildSpace, **kwargs):
style nit: indent the second line up to the start of the first lines arguments, eg:
def __init__(foo, bar,
blah, crap)
This looks fine overall - I assume it's been running well in staging?
r-'ing because release directories aren't being excluded.
Attachment #352119 -
Flags: review?(bhearsum) → review-
Updated•17 years ago
|
Attachment #351417 -
Flags: review?(bhearsum) → review-
Comment 20•17 years ago
|
||
Comment on attachment 351417 [details] [diff] [review]
Updates to mozilla2-staging to use the new purge_builds script
>diff -r 529a2eaf2c09 mozilla2-staging/config.py
>--- a/mozilla2-staging/config.py Tue Dec 02 14:04:52 2008 -0500
>+++ b/mozilla2-staging/config.py Thu Dec 04 14:48:56 2008 -0500
>+BRANCHES['mozilla-central']['platforms']['linux']['build_space'] = 5
>+BRANCHES['mozilla-central']['platforms']['linux64']['build_space'] = 5
>+BRANCHES['mozilla-central']['platforms']['win32']['build_space'] = 6
>+BRANCHES['mozilla-central']['platforms']['macosx']['build_space'] = 15
Now that we have DWARF support we can lower this to 10.
>+BRANCHES['mozilla-central']['platforms']['linux-debug']['build_space'] = 5
>+BRANCHES['mozilla-central']['platforms']['win32-debug']['build_space'] = 6
>+BRANCHES['mozilla-central']['platforms']['macosx-debug']['build_space'] = 15
These builds only use 1.5GB of space. Let's bump this to 2GB to be safe.
>diff -r 529a2eaf2c09 mozilla2-staging/release_master.py
>--- a/mozilla2-staging/release_master.py Tue Dec 02 14:04:52 2008 -0500
>+++ b/mozilla2-staging/release_master.py Thu Dec 04 14:48:56 2008 -0500
Now that we have BUILD_TOOL_REPO_URL can you switch the rest of this file to use it and drop the buildToolsRepo entry in release_config.py?
This is fine overall. r=bhearsum with the changes mentioned above.
| Assignee | ||
Comment 21•17 years ago
|
||
Attachment #351913 -
Attachment is obsolete: true
| Assignee | ||
Comment 22•17 years ago
|
||
Attachment #352119 -
Attachment is obsolete: true
Attachment #352181 -
Flags: review?(bhearsum)
| Assignee | ||
Comment 23•17 years ago
|
||
Attachment #351417 -
Attachment is obsolete: true
Attachment #352182 -
Flags: review?(bhearsum)
| Assignee | ||
Updated•17 years ago
|
Priority: -- → P2
Comment 24•17 years ago
|
||
Comment on attachment 352181 [details] [diff] [review]
Create a MozillaBuildFactory base class that runs build cleanup steps
>Index: factory.py
>===================================================================
>+class MozillaBuildFactory(BuildFactory):
>+ ignore_dirs = [
>+ 'info',
>+ 'mac_build',
>+ 'mac_verify',
>+ 'mac_update',
>+ 'linux_build',
>+ 'linux_verify',
>+ 'linux_update',
>+ 'win32_build',
>+ 'win32_verify',
>+ 'win32_update',
>+ 'l10n_verification',
>+ ]
>
Some of these are wrong. You don't want win32_verify or win32_update - you want win32_update_verify. Also added: tag, source, updates, final_verification
>+class MercurialBuildFactory(MozillaBuildFactory):
>+ def __init__(self, env, objdir, platform, branch, sourceRepo, buildToolsRepo,
>+ configRepo, configSubDir, profiledBuild, mozconfig,
'mozconfig' is probably a remnant from my staging patches - it's not currently an argument to this factory. Please remove it.
r=bhearsum with those changes.
Attachment #352181 -
Flags: review?(bhearsum) → review-
Comment 25•17 years ago
|
||
Comment on attachment 352182 [details] [diff] [review]
Updates to mozilla2-staging to use the new purge_builds script
>diff -r b76bbdd5af57 mozilla2-staging/config.py
>--- a/mozilla2-staging/config.py Mon Dec 08 09:39:30 2008 -0500
>+++ b/mozilla2-staging/config.py Tue Dec 09 16:03:07 2008 -0500
>@@ -9,16 +9,18 @@ STAGE_BASE_PATH = '/home/ftp/pub/firefox
> STAGE_BASE_PATH = '/home/ftp/pub/firefox'
> STAGE_GROUP = None
> STAGE_SSH_KEY = 'ffxbld_dsa'
> AUS2_USER = 'cltbld'
> AUS2_HOST = 'staging-stage.build.mozilla.org'
> DOWNLOAD_BASE_URL = 'ftp://ftp.mozilla.org/pub/mozilla.org/firefox'
> GRAPH_SERVER = 'graphs-stage.mozilla.org'
> GRAPH_SELECTOR = 'server'
>+BUILD_TOOLS_REPO_URL = 'http://hg.mozilla.org/users/bhearsum_mozilla.com/tools'
This should be http://hg.mozilla.org/build/tools. (Obviously you need to set it to this locally until the script is checked in there, though.)
>+BRANCHES['mozilla-1.9.1']['platforms']['macosx']['build_space'] = 10
We still need 15GB for this and tracemonkey - they don't have dwarf support yet.
>
>-from buildbot.process import factory
>+from buildbotcustom.process import factory
Please import/reload this module.
r=bhearsum with those changes.
Attachment #352182 -
Flags: review?(bhearsum) → review-
| Assignee | ||
Comment 26•17 years ago
|
||
Attachment #352181 -
Attachment is obsolete: true
Attachment #352559 -
Flags: review?(bhearsum)
| Assignee | ||
Comment 27•17 years ago
|
||
Attachment #352182 -
Attachment is obsolete: true
Attachment #352562 -
Flags: review?(bhearsum)
Updated•17 years ago
|
Attachment #352559 -
Flags: review?(bhearsum) → review+
Updated•17 years ago
|
Attachment #352562 -
Flags: review?(bhearsum) → review+
| Assignee | ||
Comment 28•17 years ago
|
||
Updated against latest changes to factory.py
Attachment #352559 -
Attachment is obsolete: true
Attachment #352589 -
Flags: review?(bhearsum)
Comment 29•17 years ago
|
||
FWIW, Tracemonkey merged from m-c at Wed Dec 10 15:41:24 2008 PST, picking up Ted's dwarf fixes and the followups
| Assignee | ||
Comment 30•17 years ago
|
||
This should apply cleanly on top of Ben's changes.
Attachment #352562 -
Attachment is obsolete: true
Attachment #352612 -
Flags: review?(bhearsum)
Comment 31•17 years ago
|
||
Comment on attachment 352612 [details] [diff] [review]
Updates to mozilla2, mozilla2-staging to use the new purge_builds script
This is fine, I'll push it tomorrow along with my change.
Attachment #352612 -
Flags: review?(bhearsum) → review+
Updated•17 years ago
|
Attachment #352589 -
Flags: review?(bhearsum)
Attachment #352589 -
Flags: review-
Attachment #352589 -
Flags: review+
Comment 32•17 years ago
|
||
Comment on attachment 352589 [details] [diff] [review]
Create a MozillaBuildFactory base class that runs build cleanup steps
Checking in factory.py;
/cvsroot/mozilla/tools/buildbotcustom/process/factory.py,v <-- factory.py
new revision: 1.59; previous revision: 1.58
done
Updated•17 years ago
|
Attachment #352589 -
Flags: review- → checked‑in+
Comment 33•17 years ago
|
||
Comment on attachment 352179 [details] [diff] [review]
python script to delete other build directories
changeset: 31:9a6f40559579
Attachment #352179 -
Flags: review+
Attachment #352179 -
Flags: checked‑in+
Comment 34•17 years ago
|
||
Comment on attachment 352612 [details] [diff] [review]
Updates to mozilla2, mozilla2-staging to use the new purge_builds script
changeset: 595:d9b530399c44
Attachment #352612 -
Flags: checked‑in+
Comment 35•17 years ago
|
||
Are we all done here?
| Assignee | ||
Comment 36•17 years ago
|
||
Yup, done for now. Possible future work would be notifying us when dependent build directories are getting deleted too often, which will slow them down considerably.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Comment 37•17 years ago
|
||
I noticed a win32_update_verify dir getting removed, traced it back to
... -n mac_buildwin32_update_verify ...
in the call to purge_builds.py, and to this missing comma.
new revision: 1.76; previous revision: 1.75
Attachment #356434 -
Flags: checked‑in+
Updated•12 years ago
|
Product: mozilla.org → Release Engineering
You need to log in
before you can comment on or make changes to this bug.
Description
•