aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkg/manager/http.go3
-rw-r--r--pkg/mgrconfig/load.go1
-rw-r--r--syz-ci/manager.go3
-rw-r--r--syz-ci/syz-ci.go5
-rw-r--r--syz-manager/manager.go8
-rw-r--r--tools/syz-diff/diff.go24
6 files changed, 25 insertions, 19 deletions
diff --git a/pkg/manager/http.go b/pkg/manager/http.go
index 6d4e2ac40..65f0a5714 100644
--- a/pkg/manager/http.go
+++ b/pkg/manager/http.go
@@ -68,6 +68,9 @@ type HTTPServer struct {
}
func (serv *HTTPServer) Serve() {
+ if serv.Cfg.HTTP == "" {
+ log.Fatalf("starting a disabled HTTP server")
+ }
if serv.Pool != nil {
serv.Pools = map[string]*vm.Dispatcher{"": serv.Pool}
}
diff --git a/pkg/mgrconfig/load.go b/pkg/mgrconfig/load.go
index 602cf4ec8..0624dae00 100644
--- a/pkg/mgrconfig/load.go
+++ b/pkg/mgrconfig/load.go
@@ -145,7 +145,6 @@ func Complete(cfg *Config) error {
cfg.TargetArch, "target",
cfg.Workdir, "workdir",
cfg.Syzkaller, "syzkaller",
- cfg.HTTP, "http",
cfg.Type, "type",
cfg.SSHUser, "ssh_user",
); err != nil {
diff --git a/syz-ci/manager.go b/syz-ci/manager.go
index 784527023..547b5d9cc 100644
--- a/syz-ci/manager.go
+++ b/syz-ci/manager.go
@@ -591,8 +591,7 @@ func (mgr *Manager) createTestConfig(imageDir string, info *BuildInfo) (*mgrconf
*mgrcfg = *mgr.managercfg
mgrcfg.Name += "-test"
mgrcfg.Tag = info.KernelCommit
- // Use designated ports not to collide with the ports of other managers.
- mgrcfg.HTTP = fmt.Sprintf("localhost:%v", mgr.mgrcfg.testHTTPPort)
+ mgrcfg.HTTP = "" // Don't start the HTTP server.
// For GCE VMs, we need to bind to a real networking interface, so no localhost.
mgrcfg.RPC = fmt.Sprintf(":%v", mgr.mgrcfg.testRPCPort)
mgrcfg.Workdir = filepath.Join(imageDir, "workdir")
diff --git a/syz-ci/syz-ci.go b/syz-ci/syz-ci.go
index fdaca59f3..ede3bad17 100644
--- a/syz-ci/syz-ci.go
+++ b/syz-ci/syz-ci.go
@@ -225,8 +225,7 @@ type ManagerConfig struct {
managercfg *mgrconfig.Config
// Auto-assigned ports used by test instances.
- testHTTPPort int
- testRPCPort int
+ testRPCPort int
}
type ManagerJobs struct {
@@ -461,8 +460,6 @@ 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
diff --git a/syz-manager/manager.go b/syz-manager/manager.go
index 1c86668f1..e093f7732 100644
--- a/syz-manager/manager.go
+++ b/syz-manager/manager.go
@@ -282,6 +282,7 @@ func RunManager(mode *Mode, cfg *mgrconfig.Config) {
mgr.cfg.Procs = 1
}
mgr.http = &manager.HTTPServer{
+ // Note that if cfg.HTTP == "", we don't start the server.
Cfg: cfg,
StartTime: time.Now(),
CrashStore: mgr.crashStore,
@@ -355,7 +356,9 @@ func RunManager(mode *Mode, cfg *mgrconfig.Config) {
mgr.http.TogglePause = mgr.pool.TogglePause
ctx := vm.ShutdownCtx()
- go mgr.http.Serve()
+ if mgr.cfg.HTTP != "" {
+ go mgr.http.Serve()
+ }
go mgr.trackUsedFiles()
go mgr.processFuzzingResults(ctx)
mgr.pool.Loop(ctx)
@@ -1437,6 +1440,9 @@ func (mgr *Manager) CoverageFilter(modules []*vminfo.KernelModule) []uint64 {
}
func publicWebAddr(addr string) string {
+ if addr == "" {
+ return ""
+ }
_, port, err := net.SplitHostPort(addr)
if err == nil && port != "" {
if host, err := os.Hostname(); err == nil {
diff --git a/tools/syz-diff/diff.go b/tools/syz-diff/diff.go
index 3707867ae..5e971b1be 100644
--- a/tools/syz-diff/diff.go
+++ b/tools/syz-diff/diff.go
@@ -87,18 +87,19 @@ func main() {
new: new,
store: store,
reproAttempts: map[string]int{},
- http: &manager.HTTPServer{
+ }
+ if newCfg.HTTP != "" {
+ diffCtx.http = &manager.HTTPServer{
Cfg: newCfg,
StartTime: time.Now(),
DiffStore: store,
- },
- }
- diffCtx.http.Pools = map[string]*vm.Dispatcher{
- new.name: new.pool,
- base.name: base.pool,
+ Pools: map[string]*vm.Dispatcher{
+ new.name: new.pool,
+ base.name: base.pool,
+ },
+ }
+ new.http = diffCtx.http
}
- new.http = diffCtx.http
-
diffCtx.Loop(ctx)
}
@@ -116,7 +117,10 @@ type diffContext struct {
func (dc *diffContext) Loop(ctx context.Context) {
reproLoop := manager.NewReproLoop(dc, dc.new.pool.Total()-dc.new.cfg.FuzzingVMs, false)
- dc.http.ReproLoop = reproLoop
+ if dc.http != nil {
+ dc.http.ReproLoop = reproLoop
+ go dc.http.Serve()
+ }
go func() {
// Let both base and patched instances somewhat progress in fuzzing before we take
// VMs away for bug reproduction.
@@ -128,10 +132,8 @@ func (dc *diffContext) Loop(ctx context.Context) {
go dc.base.Loop()
go dc.new.Loop()
- go dc.http.Serve()
runner := &reproRunner{done: make(chan reproRunnerResult, 2), kernel: dc.base}
-
rareStat := time.NewTicker(5 * time.Minute)
for {
select {