aboutsummaryrefslogtreecommitdiffstats
path: root/syz-ci
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-05-22 09:32:53 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-05-22 08:43:11 +0000
commit4d098039e09f95a4767fe001c5fd244e6eaeef28 (patch)
tree47eb209d81c978f5b4d3b82c120d6be572150f37 /syz-ci
parent6d22fe32b1dab5eb3ed693cfdcc0a63ccd886e96 (diff)
syz-ci: use unique ports for test instances
Currently they can collide with the main instance and fail. Use unique ports for test instances.
Diffstat (limited to 'syz-ci')
-rw-r--r--syz-ci/manager.go3
-rw-r--r--syz-ci/syz-ci.go10
2 files changed, 13 insertions, 0 deletions
diff --git a/syz-ci/manager.go b/syz-ci/manager.go
index 65b5385ef..2f4e872f8 100644
--- a/syz-ci/manager.go
+++ b/syz-ci/manager.go
@@ -549,6 +549,9 @@ func (mgr *Manager) createTestConfig(imageDir string, info *BuildInfo) (*mgrconf
*mgrcfg = *mgr.managercfg
mgrcfg.Name += "-test"
mgrcfg.Tag = info.KernelCommit
+ // Use random free ports to not collide with the actual manager.
+ mgrcfg.HTTP = fmt.Sprintf("localhost:%v", mgr.mgrcfg.testHTTPPort)
+ mgrcfg.RPC = fmt.Sprintf("localhost:%v", mgr.mgrcfg.testRPCPort)
mgrcfg.Workdir = filepath.Join(imageDir, "workdir")
if err := instance.SetConfigImage(mgrcfg, imageDir, true); err != nil {
return nil, err
diff --git a/syz-ci/syz-ci.go b/syz-ci/syz-ci.go
index e9e12e0e6..d27db6c6c 100644
--- a/syz-ci/syz-ci.go
+++ b/syz-ci/syz-ci.go
@@ -86,8 +86,10 @@ type Config struct {
Name string `json:"name"`
HTTP string `json:"http"`
// If manager http address is not specified, give it an address starting from this port. Optional.
+ // This is also used to auto-assign ports for test instances.
ManagerPort int `json:"manager_port_start"`
// If manager rpc address is not specified, give it addresses starting from this port. By default 30000.
+ // This is also used to auto-assign ports for test instances.
RPCPort int `json:"rpc_port_start"`
DashboardAddr string `json:"dashboard_addr"` // Optional.
DashboardClient string `json:"dashboard_client"` // Optional.
@@ -208,6 +210,10 @@ type ManagerConfig struct {
// By default it's 30 days.
MaxKernelLagDays int `json:"max_kernel_lag_days"`
managercfg *mgrconfig.Config
+
+ // Auto-assigned ports used by test instances.
+ testHTTPPort int
+ testRPCPort int
}
type ManagerJobs struct {
@@ -440,6 +446,10 @@ func loadManagerConfig(cfg *Config, mgr *ManagerConfig) error {
managercfg.RPC = fmt.Sprintf(":%v", cfg.RPCPort)
cfg.RPCPort++
}
+ mgr.testHTTPPort = cfg.ManagerPort
+ cfg.ManagerPort++
+ mgr.testRPCPort = cfg.RPCPort
+ cfg.RPCPort++
// Note: we don't change Compiler/Ccache because it may be just "gcc" referring
// to the system binary, or pkg/build/netbsd.go uses "g++" and "clang++" as special marks.
mgr.Userspace = osutil.Abs(mgr.Userspace)