aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-22 17:38:37 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-22 17:38:37 +0200
commitb5323c280fc9dd0ed10db3b4b9e7c44e56c60d07 (patch)
tree8a49a5ed298caa7ac5e02ecf3c2ce53b4355916c /pkg
parentc97f0d7a863bbb63de5dca44ad75c5ae7b4a154d (diff)
pkg/report: add more gvisor formats
Diffstat (limited to 'pkg')
-rw-r--r--pkg/report/gvisor.go20
-rw-r--r--pkg/report/testdata/gvisor/report/109
-rw-r--r--pkg/report/testdata/gvisor/report/119
3 files changed, 37 insertions, 1 deletions
diff --git a/pkg/report/gvisor.go b/pkg/report/gvisor.go
index fa1c8476e..f690db285 100644
--- a/pkg/report/gvisor.go
+++ b/pkg/report/gvisor.go
@@ -59,7 +59,7 @@ func (ctx *gvisor) Parse(output []byte) *Report {
return nil
}
title, corrupted, _ := extractDescription(output[rep.StartPos:], oops, nil)
- rep.Title = title
+ rep.Title = replaceTable(gvisorTitleReplacement, title)
rep.Report = ctx.shortenReport(output[rep.StartPos:])
rep.Corrupted = corrupted != ""
rep.corruptedReason = corrupted
@@ -97,6 +97,13 @@ func (ctx *gvisor) Symbolize(rep *Report) error {
return nil
}
+var gvisorTitleReplacement = []replacement{
+ {
+ regexp.MustCompile(`container ".*"`),
+ "container NAME",
+ },
+}
+
var gvisorOopses = []*oops{
&oops{
[]byte("panic:"),
@@ -165,6 +172,17 @@ var gvisorOopses = []*oops{
[]*regexp.Regexp{},
},
&oops{
+ []byte("FATAL ERROR:"),
+ []oopsFormat{
+ {
+ title: compile("FATAL ERROR:(.*)"),
+ fmt: "FATAL ERROR:%[1]v",
+ noStackTrace: true,
+ },
+ },
+ []*regexp.Regexp{},
+ },
+ &oops{
[]byte("WARNING: DATA RACE"),
[]oopsFormat{
{
diff --git a/pkg/report/testdata/gvisor/report/10 b/pkg/report/testdata/gvisor/report/10
new file mode 100644
index 000000000..1850b5d4f
--- /dev/null
+++ b/pkg/report/testdata/gvisor/report/10
@@ -0,0 +1,9 @@
+TITLE: FATAL ERROR: error running container: err waiting on container NAME: EOF
+
+request_key(&(0x7f0000005e80)='trusted\x00', &(0x7f0000005ec0)={0x73, 0x79, 0x7a, 0x0}, &(0x7f0000005f00)='(selinuxppp0eth0proc\x00', 0xfffffffffffffff8)
+add_key(&(0x7f0000005f40)='dns_resolver\x00', &(0x7f0000005f80)={0x73, 0x79, 0x7a, 0x0}, &(0x7f0000005fc0)="786015083dc3dbe94536578dc260891f45c4b3713a210099", 0x18, 0xffffffffffffffff)
+
+W0622 11:59:19.138728 18712 x:0] FATAL ERROR: error running container: err waiting on container "syz-8": EOF
+error running container: err waiting on container "syz-8": EOF
+W0622 11:59:19.138713 19300 x:0] FATAL ERROR: error getting processes for container: error executing in sandbox: EOF
+error getting processes for container: error executing in sandbox: EOF
diff --git a/pkg/report/testdata/gvisor/report/11 b/pkg/report/testdata/gvisor/report/11
new file mode 100644
index 000000000..dbe8eb1a4
--- /dev/null
+++ b/pkg/report/testdata/gvisor/report/11
@@ -0,0 +1,9 @@
+TITLE: FATAL ERROR: error getting processes for container: error executing in sandbox: EOF
+
+r1 = creat(&(0x7f0000000800)='./file0\x00', 0x80)
+accept(r1, &(0x7f0000000b00)=@rc, &(0x7f0000000b80)=0x80)
+
+W0622 12:13:40.386697 9726 x:0] FATAL ERROR: error getting processes for container: error executing in sandbox: EOF
+error getting processes for container: error executing in sandbox: EOF
+W0622 12:13:40.386737 9188 x:0] FATAL ERROR: error running container: err waiting on container "ci-gvisor-main-10": EOF
+error running container: err waiting on container "ci-gvisor-main-10": EOF