Closed motoki317 closed 7 months ago
これもビルドキャンセルの例です (他にも何回か同じアプリ内で起きている) https://ns.trap.jp/apps/270df450de902552140627/builds/f253e7036794923aebe7ab
一応stacktrace (%+v
でprint可能)
time="2024-04-02T19:52:41Z" level=error msg="Build failed for ec53ca78a89650a34730f6: Canceled: context canceled
github.com/moby/buildkit/util/stack.Enable
/go/pkg/mod/github.com/moby/buildkit@v0.13.1/util/stack/stack.go:77
github.com/moby/buildkit/util/grpcerrors.FromGRPC
/go/pkg/mod/github.com/moby/buildkit@v0.13.1/util/grpcerrors/grpcerrors.go:198
github.com/moby/buildkit/util/grpcerrors.UnaryClientInterceptor
/go/pkg/mod/github.com/moby/buildkit@v0.13.1/util/grpcerrors/intercept.go:41
google.golang.org/grpc.(*ClientConn).Invoke
/go/pkg/mod/google.golang.org/grpc@v1.62.1/call.go:35
github.com/moby/buildkit/api/services/control.(*controlClient).Solve
/go/pkg/mod/github.com/moby/buildkit@v0.13.1/api/services/control/control.pb.go:2234
github.com/moby/buildkit/client.(*Client).solve.func2
/go/pkg/mod/github.com/moby/buildkit@v0.13.1/client/solve.go:274
golang.org/x/sync/errgroup.(*Group).Go.func1
/go/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1695
failed to solve
github.com/moby/buildkit/client.(*Client).solve.func2
/go/pkg/mod/github.com/moby/buildkit@v0.13.1/client/solve.go:290
golang.org/x/sync/errgroup.(*Group).Go.func1
/go/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1695"
https://github.com/moby/buildkit/blob/2ae42e0c0c793d7d66b7a23424af6fd6c2f9c8f3/util/grpcerrors/grpcerrors.go#L182 https://github.com/moby/buildkit/blob/2ae42e0c0c793d7d66b7a23424af6fd6c2f9c8f3/util/grpcerrors/grpcerrors.go#L219-L224 https://github.com/grpc/grpc-go/blob/9952aa83979822b5915c3fcb2bb0f60afe55aa7d/codes/code_string.go#L35-L36
gRPCの向こう側から来ていて、status codeは CANCELLED
, Messageは context canceled
だとわかる
buildkitdのサーバー側
dockerを使って再現しなかったと思ったら、livenessProbeによって再起動されてしまっていたっぽい
livenessProbe:
exec:
command:
- buildctl
- debug
- workers
initialDelaySeconds: 5
periodSeconds: 30
デフォルトのtimeoutSecondsが1なので、ホストがCPU/メモリきつくなるとタイムアウトしちゃってコンテナが再起動してしまうっぽい
livenessProbe:
exec:
command:
- buildctl
- debug
- workers
initialDelaySeconds: 5
periodSeconds: 30
timeoutSeconds: 10
failureThreshold: 5
https://github.com/traPtitech/manifest/commit/96eda7bfc631303e738ef0d9760602a9c04b29e8 ちょっと伸ばして、あとresources.limitsも付けてなかったので付けた
これで改善するか様子を見る
5~7分程度でキャンセルされてしまう場合がある
https://ns.trap.jp/apps/4e1d93846a3f1f70add1e1/builds
などと出てstatus: FAILEDになる