Skip to content

panic in shim is not logged #4274

@AkihiroSuda

Description

@AkihiroSuda

Description

panic in shim is not logged

Steps to reproduce the issue:

  • Checkout 4e08c2d
  • Add the following changes:
diff --git a/runtime/v2/shim/shim.go b/runtime/v2/shim/shim.go
index 026ebb4e..446c7354 100644
--- a/runtime/v2/shim/shim.go
+++ b/runtime/v2/shim/shim.go
@@ -146,6 +146,10 @@ func setLogger(ctx context.Context, id string) error {
 
 // Run initializes and runs a shim server
 func Run(id string, initFunc Init, opts ...BinaryOpts) {
+       go func() {
+               time.Sleep(3 * time.Second)
+               panic("test20200520")
+       }()
        var config Config
        for _, o := range opts {
                o(&config)
  • sudo containerd -l debug
  • sudo ctr run -t --rm docker.io/library/alpine:latest foo
  • Wait for 3 seconds

Describe the results you received:

Client log:

/ # ctr: rpc error: code = Unknown desc = ttrpc: closed: unknown

Daemon log:

DEBU[2020-05-20T18:10:21.227260443+09:00] stat snapshot                                 key="sha256:3e207b409db364b595ba862cdc12be96dcdad8e36c59a03b7b3b61c946a5741a"
DEBU[2020-05-20T18:10:21.231059892+09:00] prepare snapshot                              key=foo parent="sha256:3e207b409db364b595ba862cdc12be96dcdad8e36c59a03b7b3b61c946a5741a"
DEBU[2020-05-20T18:10:21.232886266+09:00] event published                               ns=default topic=/snapshot/prepare type=containerd.events.SnapshotPrepare
DEBU[2020-05-20T18:10:21.239970957+09:00] get snapshot mounts                           key=foo
DEBU[2020-05-20T18:10:21.257106464+09:00] event published                               ns=default topic=/containers/create type=containerd.events.ContainerCreate
DEBU[2020-05-20T18:10:21.261141482+09:00] get snapshot mounts                           key=foo
time="2020-05-20T18:10:21.268935307+09:00" level=info msg="starting signal loop" namespace=default path=/run/containerd/io.containerd.runtime.v2.task/default/foo pid=3874
DEBU[2020-05-20T18:10:21.296976405+09:00] garbage collected                             d=8.162005ms
DEBU[2020-05-20T18:10:21.343554990+09:00] event forwarded                               ns=default topic=/tasks/create type=containerd.events.TaskCreate
DEBU[2020-05-20T18:10:21.354678894+09:00] event forwarded                               ns=default topic=/tasks/start type=containerd.events.TaskStart
INFO[2020-05-20T18:10:24.274182871+09:00] shim disconnected                             id=foo
WARN[2020-05-20T18:10:24.274289627+09:00] cleaning up after shim disconnected           id=foo namespace=default
INFO[2020-05-20T18:10:24.274326862+09:00] cleaning up dead shim                        
DEBU[2020-05-20T18:10:24.277669022+09:00] remove snapshot                               key=foo
DEBU[2020-05-20T18:10:24.279204938+09:00] event published                               ns=default topic=/snapshot/remove type=containerd.events.SnapshotRemove
DEBU[2020-05-20T18:10:24.280867012+09:00] event published                               ns=default topic=/containers/delete type=containerd.events.ContainerDelete
WARN[2020-05-20T18:10:24.404555888+09:00] cleanup warnings time="2020-05-20T18:10:24+09:00" level=info msg="starting signal loop" namespace=default pid=3928 
DEBU[2020-05-20T18:10:24.404788417+09:00] event published                               ns=default topic=/tasks/exit type=containerd.events.TaskExit
DEBU[2020-05-20T18:10:24.404848793+09:00] event published                               ns=default topic=/tasks/delete type=containerd.events.TaskDelete
DEBU[2020-05-20T18:10:24.445476058+09:00] schedule snapshotter cleanup                  snapshotter=overlayfs
DEBU[2020-05-20T18:10:24.453806808+09:00] removed snapshot                              key=default/47/foo snapshotter=overlayfs
DEBU[2020-05-20T18:10:24.454828832+09:00] snapshot garbage collected                    d=9.25067ms snapshotter=overlayfs
DEBU[2020-05-20T18:10:24.455422398+09:00] garbage collected                             d=1.364699ms

panic("test20200520") is logged in nowhere.

Describe the results you expected:

panic("test20200520") should be logged

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions