aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/rpcserver
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2026-01-27 12:31:49 +0000
committerAleksandr Nogikh <nogikh@google.com>2026-02-17 14:55:28 +0000
commit72e0f1b67bdd3f89cf51e89a3c17dd4a7cb575f1 (patch)
treec7e29b0a56ad5f81ed82f2bf47531c0d0b52812d /pkg/rpcserver
parent21b4b9b6789f7b255eb115d3757e82652bb33eaa (diff)
all: add a DumpMemory feature
On Linux, verify that makedumpfile and the second kernel are present, then set up a kernel to be used on panic.
Diffstat (limited to 'pkg/rpcserver')
-rw-r--r--pkg/rpcserver/rpcserver.go4
-rw-r--r--pkg/rpcserver/rpcserver_test.go14
2 files changed, 18 insertions, 0 deletions
diff --git a/pkg/rpcserver/rpcserver.go b/pkg/rpcserver/rpcserver.go
index 04c5d877f..385c0350d 100644
--- a/pkg/rpcserver/rpcserver.go
+++ b/pkg/rpcserver/rpcserver.go
@@ -162,6 +162,9 @@ func New(cfg *RemoteConfig) (Server, error) {
if !cfg.Experimental.RemoteCover {
features &= ^flatrpc.FeatureExtraCoverage
}
+ if !cfg.MemoryDump {
+ features &= ^flatrpc.FeatureMemoryDump
+ }
return newImpl(&Config{
Config: vminfo.Config{
Target: cfg.Target,
@@ -170,6 +173,7 @@ func New(cfg *RemoteConfig) (Server, error) {
Syscalls: cfg.Syscalls,
Debug: cfg.Debug,
Cover: cfg.Cover,
+ MemoryDump: cfg.MemoryDump,
Sandbox: sandbox,
SandboxArg: cfg.SandboxArg,
},
diff --git a/pkg/rpcserver/rpcserver_test.go b/pkg/rpcserver/rpcserver_test.go
index 429b275ac..86dddcf76 100644
--- a/pkg/rpcserver/rpcserver_test.go
+++ b/pkg/rpcserver/rpcserver_test.go
@@ -72,6 +72,20 @@ func TestNew(t *testing.T) {
},
expectedServCheck: func(srv Server) {
s := srv.(*server)
+ assert.Equal(t, s.cfg.Config.Features,
+ flatrpc.AllFeatures&(^flatrpc.FeatureExtraCoverage)&(^flatrpc.FeatureMemoryDump))
+ assert.Nil(t, s.serv)
+ },
+ },
+ {
+ name: "memory dump enabled",
+ modifyCfg: func() *mgrconfig.Config {
+ cfg := defaultCfg
+ cfg.MemoryDump = true
+ return &cfg
+ },
+ expectedServCheck: func(srv Server) {
+ s := srv.(*server)
assert.Equal(t, s.cfg.Config.Features, flatrpc.AllFeatures&(^flatrpc.FeatureExtraCoverage))
assert.Nil(t, s.serv)
},