Skip to content

Commit

Permalink
Build Packetbeat packages serially (#25340)
Browse files Browse the repository at this point in the history
Relates: #24304

Try building Packetbeat packages serially as opposed to concurrent cross-compiles for various goos/goarch combos.
Test this to see if it impacts some of the spurious failures we see. I've never been able to reproduce the failure locally so
it's hard to know if this will fix it.
  • Loading branch information
andrewkroh authored Apr 27, 2021
1 parent be1841c commit 9fb519f
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 23 deletions.
23 changes: 1 addition & 22 deletions packetbeat/magefile.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,28 +63,7 @@ func BuildGoDaemon() error {

// CrossBuild cross-builds the beat for all target platforms.
func CrossBuild() error {
// These Windows builds write temporary .s and .o files into the packetbeat
// dir so they cannot be run in parallel. Changing to a different CWD does
// not change where the temp files get written so that cannot be used as a
// fix.
if err := devtools.CrossBuild(devtools.ForPlatforms("windows"), devtools.Serially()); err != nil {
return err
}

return devtools.CrossBuild(devtools.ForPlatforms("!windows"))
}

// CrossBuildXPack cross-builds the beat with XPack for all target platforms.
func CrossBuildXPack() error {
// These Windows builds write temporary .s and .o files into the packetbeat
// dir so they cannot be run in parallel. Changing to a different CWD does
// not change where the temp files get written so that cannot be used as a
// fix.
if err := devtools.CrossBuildXPack(devtools.ForPlatforms("windows"), devtools.Serially()); err != nil {
return err
}

return devtools.CrossBuildXPack(devtools.ForPlatforms("!windows"))
return packetbeat.CrossBuild()
}

// CrossBuildGoDaemon cross-builds the go-daemon binary using Docker.
Expand Down
27 changes: 27 additions & 0 deletions packetbeat/scripts/mage/build.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

package mage

import devtools "github.com/elastic/beats/v7/dev-tools/mage"

// CrossBuild cross-builds the beat for all target platforms.
func CrossBuild() error {
// Run all builds serially to try to address failures that might be caused
// by concurrent builds. See https://github.com/elastic/beats/issues/24304.
return devtools.CrossBuild(devtools.Serially())
}
2 changes: 1 addition & 1 deletion x-pack/packetbeat/magefile.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ func GolangCrossBuild() error {

// CrossBuild cross-builds the beat for all target platforms.
func CrossBuild() error {
return devtools.CrossBuild()
return packetbeat.CrossBuild()
}

// BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon).
Expand Down

0 comments on commit 9fb519f

Please sign in to comment.