Skip to content

In Antithesis Dockerfile build replace contents of MustVerifyIfEnabled function with Unreachable assertion #21775

@serathius

Description

@serathius

What would you like to be added?

The following code

func MustVerifyIfEnabled(cfg Config) {
if err := VerifyIfEnabled(cfg); err != nil {
cfg.Logger.Fatal("Verification failed",
zap.String("data-dir", cfg.DataDir),
zap.Error(err))
}
}
is not recognized by Antithesis. It just seens exit with code zero. We would like to have a nice error

TODO: In Antithesis Dockerfile build replace contents of MustVerifyIfEnabled function with Unreachable assertion

Example log

{"level":"fatal","ts":"2026-05-20T00:35:24.463347Z","caller":"verify/verify.go:105","msg":"Verification failed","data-dir":"/var/etcd/data","error":"backend.ConsistentIndex (76) must be <= WAL.HardState.commit (75)","stacktrace":"go.etcd.io/etcd/server/v3/verify.MustVerifyIfEnabled\n\tserver/verify/verify.go:105\ngo.etcd.io/etcd/server/v3/embed.(*Etcd).Close.func1\n\tserver/embed/etcd.go:425\ngo.etcd.io/etcd/server/v3/embed.(*Etcd).Close\n\tserver/embed/etcd.go:488\ngo.etcd.io/etcd/pkg/v3/osutil.HandleInterrupts.func1\n\tpkg/osutil/interrupt_unix.go:68"}

Source run:
https://linuxfoundation.antithesis.com/search?search=v5veyJxIjp7Im4iOnsiciI6eyJoIjpbeyJoIjpbeyJjIjp0cnVlLCJmIjoibW9tZW50LnZ0aW1lIiwibyI6Im1hdGNoZXMiLCJ2IjoiNDIuNjYzMjUwMTY4Nzg1NDUifV0sIm8iOiJvciJ9LHsiaCI6W3siYyI6dHJ1ZSwiZiI6Im1vbWVudC5pbnB1dF9oYXNoIiwibyI6Im1hdGNoZXMiLCJ2IjoiNTEyOTY4ODEwODM5NTEzNjU1MiJ9XSwibyI6Im9yIn1dLCJvIjoiYW5kIn0sInQiOnsiZyI6ZmFsc2UsIm0iOiIifSwieSI6Im5vbmUifX0sInMiOiJlYmNiNmNmZjZlMzFkZmE0YTEzMmZjNDlmYTQyOWE0ZC01Mi0xMyJ9&get_logs=true&get_logs_event_desc=WyAgICAgICAgNDIuNjYzXSBbICAgICBjb250YWluZXJzX21ldGFdIFsgICBdICAtIHsiY29udGFpbmVyX2V4aXRfY29kZSI6MSwiZXZlbnQiOiJkaWVkIiwiZXZlbnRfZ3JvdXAiOiJjb250YWluZXI6IGV0Y2QxLCBleGl0IGNvZGU6IDEiLCJpbWFnZSI6InVzLWNlbnRyYWwxLWRvY2tlci5wa2cuZGV2L21vbHRlbi12ZXJ2ZS0yMTY3MjAvbGludXhmb3VuZGF0aW9uLXJlcG9zaXRvcnkvZXRjZC1zZXJ2ZXI6bWFpbl9kNTUyN2YyM2VmZTU0NTBkZmU4ZDU5NmE4OTI5Y2JhNTZjZTAzMDllIiwibmFtZSI6ImV0Y2QxIn0&report_name=TGludXggRm91bmRhdGlvbiBDb250aW51b3VzIFRlc3Rpbmc

Why is this needed?

We would like to confirm that not panic here this causes correctness issue.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions