ITADN

[Robustness tests] Race in robustness code

#21858Closedserathius 创建于 2026-05-30
type/flakearea/robustness-testing
S
serathiuscommented
### What happened? From https://linuxfoundation.antithesis.com/report/x6VlZaQY9FhPDx-RZLaCCHNM/zdLcrrXYTg3NZDHRMkmb18X6DE8LntuvgOBM2WqDQzM.html?auth=v2.public.eyJzY29wZSI6eyJSZXBvcnRTY29wZVYxIjp7ImFzc2V0IjoiemRMY3JyWFlUZzNOWkRIUk1rbWIxOFg2REU4TG50dXZnT0JNMldxRFF6TS5odG1sIiwicmVwb3J0X2lkIjoieDZWbFphUVk5RmhQRHgtUlpMYUNDSE5NIn19LCJuYmYiOiIyMDI2LTA1LTMwVDExOjU3OjEzLjA0NjI3NDE4OVoiffj72dftRpL-5Zc2fTNfZKddUwW88zM3VhBElw6yHonKLZTnDSoygVQoJ89h0cbxIxCOjSNf3zyk2MIqW4oYigQ#/run/054f01aaf66a11519b4e89c1d8c1123e-54-8/finding/3bd2e6116a7ccd58016fc95f078ac1f356a3db28 ``` WARNING: DATA RACE Read at 0x00c000928448 by main goroutine: go.etcd.io/etcd/tests/v3/robustness/report.persistWatchOperations() /build/tests/robustness/report/client.go:185 +0x404 go.etcd.io/etcd/tests/v3/robustness/report.persistClientReports() /build/tests/robustness/report/client.go:59 +0x446 go.etcd.io/etcd/tests/v3/robustness/report.(*TestReport).Report() /build/tests/robustness/report/report.go:72 +0x975 main.main.func1() /build/tests/antithesis/test-template/robustness/traffic/main.go:81 +0x57 runtime.deferreturn() /usr/local/go/src/runtime/panic.go:668 +0x5d main.main() /build/tests/antithesis/test-template/robustness/traffic/main.go:87 +0x80b Previous write at 0x00c000928448 by goroutine 1601: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch.func1() /build/tests/robustness/client/client.go:357 +0x54f Goroutine 1601 (finished) created at: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch() /build/tests/robustness/client/client.go:352 +0x7bb go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).Watch() /build/tests/robustness/client/client.go:324 +0x275 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatch() /build/tests/robustness/traffic/traffic.go:456 +0x1a6 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatchLoop() /build/tests/robustness/traffic/traffic.go:436 +0xcb go.etcd.io/etcd/tests/v3/robustness/traffic.kubernetesTraffic.RunWatchLoop() /build/tests/robustness/traffic/kubernetes.go:140 +0x184 go.etcd.io/etcd/tests/v3/robustness/traffic.(*kubernetesTraffic).RunWatchLoop() <autogenerated>:1 +0x1d go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.func1() /build/tests/robustness/traffic/traffic.go:225 +0x1e7 go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.gowrap1() /build/tests/robustness/traffic/traffic.go:226 +0x38 ================== ================== WARNING: DATA RACE Read at 0x00c00073d3c8 by main goroutine: reflect.Value.Len() /usr/local/go/src/reflect/value.go:1853 +0xd4 encoding/json.isEmptyValue() /usr/local/go/src/encoding/json/encode.go:355 +0xe0 encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:735 +0x289 encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.arrayEncoder.encode() /usr/local/go/src/encoding/json/encode.go:890 +0x102 encoding/json.arrayEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.sliceEncoder.encode() /usr/local/go/src/encoding/json/encode.go:863 +0x502 encoding/json.sliceEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:747 +0x4dd encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.(*encodeState).reflectValue() /usr/local/go/src/encoding/json/encode.go:367 +0x83 encoding/json.(*encodeState).marshal() /usr/local/go/src/encoding/json/encode.go:343 +0xdb encoding/json.Marshal() /usr/local/go/src/encoding/json/encode.go:209 +0x11e encoding/json.MarshalIndent() /usr/local/go/src/encoding/json/encode.go:222 +0x6b go.etcd.io/etcd/tests/v3/robustness/report.persistWatchOperations() /build/tests/robustness/report/client.go:186 +0x466 go.etcd.io/etcd/tests/v3/robustness/report.persistClientReports() /build/tests/robustness/report/client.go:59 +0x446 go.etcd.io/etcd/tests/v3/robustness/report.(*TestReport).Report() /build/tests/robustness/report/report.go:72 +0x975 main.main.func1() /build/tests/antithesis/test-template/robustness/traffic/main.go:81 +0x57 runtime.deferreturn() /usr/local/go/src/runtime/panic.go:668 +0x5d main.main() /build/tests/antithesis/test-template/robustness/traffic/main.go:87 +0x80b Previous write at 0x00c00073d3c8 by goroutine 1601: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch.func1() /build/tests/robustness/client/client.go:355 +0x3f5 Goroutine 1601 (finished) created at: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch() /build/tests/robustness/client/client.go:352 +0x7bb go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).Watch() /build/tests/robustness/client/client.go:324 +0x275 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatch() /build/tests/robustness/traffic/traffic.go:456 +0x1a6 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatchLoop() /build/tests/robustness/traffic/traffic.go:436 +0xcb go.etcd.io/etcd/tests/v3/robustness/traffic.kubernetesTraffic.RunWatchLoop() /build/tests/robustness/traffic/kubernetes.go:140 +0x184 go.etcd.io/etcd/tests/v3/robustness/traffic.(*kubernetesTraffic).RunWatchLoop() <autogenerated>:1 +0x1d go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.func1() /build/tests/robustness/traffic/traffic.go:225 +0x1e7 go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.gowrap1() /build/tests/robustness/traffic/traffic.go:226 +0x38 ================== ================== WARNING: DATA RACE Read at 0x00c00073d3d8 by main goroutine: reflect.Value.Bool() /usr/local/go/src/reflect/value.go:286 +0x91 reflect.Value.IsZero() /usr/local/go/src/reflect/value.go:1666 +0xa1 encoding/json.isEmptyValue() /usr/local/go/src/encoding/json/encode.go:361 +0x85 encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:735 +0x289 encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.arrayEncoder.encode() /usr/local/go/src/encoding/json/encode.go:890 +0x102 encoding/json.arrayEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.sliceEncoder.encode() /usr/local/go/src/encoding/json/encode.go:863 +0x502 encoding/json.sliceEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:747 +0x4dd encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.(*encodeState).reflectValue() /usr/local/go/src/encoding/json/encode.go:367 +0x83 encoding/json.(*encodeState).marshal() /usr/local/go/src/encoding/json/encode.go:343 +0xdb encoding/json.Marshal() /usr/local/go/src/encoding/json/encode.go:209 +0x11e encoding/json.MarshalIndent() /usr/local/go/src/encoding/json/encode.go:222 +0x6b go.etcd.io/etcd/tests/v3/robustness/report.persistWatchOperations() /build/tests/robustness/report/client.go:186 +0x466 go.etcd.io/etcd/tests/v3/robustness/report.persistClientReports() /build/tests/robustness/report/client.go:59 +0x446 go.etcd.io/etcd/tests/v3/robustness/report.(*TestReport).Report() /build/tests/robustness/report/report.go:72 +0x975 main.main.func1() /build/tests/antithesis/test-template/robustness/traffic/main.go:81 +0x57 runtime.deferreturn() /usr/local/go/src/runtime/panic.go:668 +0x5d main.main() /build/tests/antithesis/test-template/robustness/traffic/main.go:87 +0x80b Previous write at 0x00c00073d3d8 by goroutine 1601: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch.func1() /build/tests/robustness/client/client.go:355 +0x3f5 Goroutine 1601 (finished) created at: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch() /build/tests/robustness/client/client.go:352 +0x7bb go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).Watch() /build/tests/robustness/client/client.go:324 +0x275 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatch() /build/tests/robustness/traffic/traffic.go:456 +0x1a6 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatchLoop() /build/tests/robustness/traffic/traffic.go:436 +0xcb go.etcd.io/etcd/tests/v3/robustness/traffic.kubernetesTraffic.RunWatchLoop() /build/tests/robustness/traffic/kubernetes.go:140 +0x184 go.etcd.io/etcd/tests/v3/robustness/traffic.(*kubernetesTraffic).RunWatchLoop() <autogenerated>:1 +0x1d go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.func1() /build/tests/robustness/traffic/traffic.go:225 +0x1e7 go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.gowrap1() /build/tests/robustness/traffic/traffic.go:226 +0x38 ================== ================== WARNING: DATA RACE Read at 0x00c00073d3e0 by main goroutine: reflect.Value.Int() /usr/local/go/src/reflect/value.go:1469 +0x165 reflect.Value.IsZero() /usr/local/go/src/reflect/value.go:1668 +0xeb encoding/json.isEmptyValue() /usr/local/go/src/encoding/json/encode.go:361 +0x85 encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:735 +0x289 encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.arrayEncoder.encode() /usr/local/go/src/encoding/json/encode.go:890 +0x102 encoding/json.arrayEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.sliceEncoder.encode() /usr/local/go/src/encoding/json/encode.go:863 +0x502 encoding/json.sliceEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:747 +0x4dd encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.(*encodeState).reflectValue() /usr/local/go/src/encoding/json/encode.go:367 +0x83 encoding/json.(*encodeState).marshal() /usr/local/go/src/encoding/json/encode.go:343 +0xdb encoding/json.Marshal() /usr/local/go/src/encoding/json/encode.go:209 +0x11e encoding/json.MarshalIndent() /usr/local/go/src/encoding/json/encode.go:222 +0x6b go.etcd.io/etcd/tests/v3/robustness/report.persistWatchOperations() /build/tests/robustness/report/client.go:186 +0x466 go.etcd.io/etcd/tests/v3/robustness/report.persistClientReports() /build/tests/robustness/report/client.go:59 +0x446 go.etcd.io/etcd/tests/v3/robustness/report.(*TestReport).Report() /build/tests/robustness/report/report.go:72 +0x975 main.main.func1() /build/tests/antithesis/test-template/robustness/traffic/main.go:81 +0x57 runtime.deferreturn() /usr/local/go/src/runtime/panic.go:668 +0x5d main.main() /build/tests/antithesis/test-template/robustness/traffic/main.go:87 +0x80b Previous write at 0x00c00073d3e0 by goroutine 1601: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch.func1() /build/tests/robustness/client/client.go:355 +0x3f5 Goroutine 1601 (finished) created at: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch() /build/tests/robustness/client/client.go:352 +0x7bb go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).Watch() /build/tests/robustness/client/client.go:324 +0x275 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatch() /build/tests/robustness/traffic/traffic.go:456 +0x1a6 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatchLoop() /build/tests/robustness/traffic/traffic.go:436 +0xcb go.etcd.io/etcd/tests/v3/robustness/traffic.kubernetesTraffic.RunWatchLoop() /build/tests/robustness/traffic/kubernetes.go:140 +0x184 go.etcd.io/etcd/tests/v3/robustness/traffic.(*kubernetesTraffic).RunWatchLoop() <autogenerated>:1 +0x1d go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.func1() /build/tests/robustness/traffic/traffic.go:225 +0x1e7 go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.gowrap1() /build/tests/robustness/traffic/traffic.go:226 +0x38 ================== ================== WARNING: DATA RACE Read at 0x00c00073d3f8 by main goroutine: reflect.Value.lenNonSlice() /usr/local/go/src/reflect/value.go:1869 +0x135 reflect.Value.Len() /usr/local/go/src/reflect/value.go:1855 +0xf0 encoding/json.isEmptyValue() /usr/local/go/src/encoding/json/encode.go:355 +0xe0 encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:735 +0x289 encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.arrayEncoder.encode() /usr/local/go/src/encoding/json/encode.go:890 +0x102 encoding/json.arrayEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.sliceEncoder.encode() /usr/local/go/src/encoding/json/encode.go:863 +0x502 encoding/json.sliceEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:747 +0x4dd encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.(*encodeState).reflectValue() /usr/local/go/src/encoding/json/encode.go:367 +0x83 encoding/json.(*encodeState).marshal() /usr/local/go/src/encoding/json/encode.go:343 +0xdb encoding/json.Marshal() /usr/local/go/src/encoding/json/encode.go:209 +0x11e encoding/json.MarshalIndent() /usr/local/go/src/encoding/json/encode.go:222 +0x6b go.etcd.io/etcd/tests/v3/robustness/report.persistWatchOperations() /build/tests/robustness/report/client.go:186 +0x466 go.etcd.io/etcd/tests/v3/robustness/report.persistClientReports() /build/tests/robustness/report/client.go:59 +0x446 go.etcd.io/etcd/tests/v3/robustness/report.(*TestReport).Report() /build/tests/robustness/report/report.go:72 +0x975 main.main.func1() /build/tests/antithesis/test-template/robustness/traffic/main.go:81 +0x57 runtime.deferreturn() /usr/local/go/src/runtime/panic.go:668 +0x5d main.main() /build/tests/antithesis/test-template/robustness/traffic/main.go:87 +0x80b Previous write at 0x00c00073d3f8 by goroutine 1601: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch.func1() /build/tests/robustness/client/client.go:355 +0x3f5 Goroutine 1601 (finished) created at: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch() /build/tests/robustness/client/client.go:352 +0x7bb go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).Watch() /build/tests/robustness/client/client.go:324 +0x275 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatch() /build/tests/robustness/traffic/traffic.go:456 +0x1a6 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatchLoop() /build/tests/robustness/traffic/traffic.go:436 +0xcb go.etcd.io/etcd/tests/v3/robustness/traffic.kubernetesTraffic.RunWatchLoop() /build/tests/robustness/traffic/kubernetes.go:140 +0x184 go.etcd.io/etcd/tests/v3/robustness/traffic.(*kubernetesTraffic).RunWatchLoop() <autogenerated>:1 +0x1d go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.func1() /build/tests/robustness/traffic/traffic.go:225 +0x1e7 go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.gowrap1() /build/tests/robustness/traffic/traffic.go:226 +0x38 ================== ================== WARNING: DATA RACE Read at 0x00c00073d3f0 by main goroutine: reflect.Value.String() /usr/local/go/src/reflect/value.go:2444 +0x5fa encoding/json.stringEncoder() /usr/local/go/src/encoding/json/encode.go:632 +0x54d encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:747 +0x4dd encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.arrayEncoder.encode() /usr/local/go/src/encoding/json/encode.go:890 +0x102 encoding/json.arrayEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.sliceEncoder.encode() /usr/local/go/src/encoding/json/encode.go:863 +0x502 encoding/json.sliceEncoder.encode-fm() <autogenerated>:1 +0x72 encoding/json.structEncoder.encode() /usr/local/go/src/encoding/json/encode.go:747 +0x4dd encoding/json.structEncoder.encode-fm() <autogenerated>:1 +0xdc encoding/json.(*encodeState).reflectValue() /usr/local/go/src/encoding/json/encode.go:367 +0x83 encoding/json.(*encodeState).marshal() /usr/local/go/src/encoding/json/encode.go:343 +0xdb encoding/json.Marshal() /usr/local/go/src/encoding/json/encode.go:209 +0x11e encoding/json.MarshalIndent() /usr/local/go/src/encoding/json/encode.go:222 +0x6b go.etcd.io/etcd/tests/v3/robustness/report.persistWatchOperations() /build/tests/robustness/report/client.go:186 +0x466 go.etcd.io/etcd/tests/v3/robustness/report.persistClientReports() /build/tests/robustness/report/client.go:59 +0x446 go.etcd.io/etcd/tests/v3/robustness/report.(*TestReport).Report() /build/tests/robustness/report/report.go:72 +0x975 main.main.func1() /build/tests/antithesis/test-template/robustness/traffic/main.go:81 +0x57 runtime.deferreturn() /usr/local/go/src/runtime/panic.go:668 +0x5d main.main() /build/tests/antithesis/test-template/robustness/traffic/main.go:87 +0x80b Previous write at 0x00c00073d3f0 by goroutine 1601: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch.func1() /build/tests/robustness/client/client.go:355 +0x3f5 Goroutine 1601 (finished) created at: go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).watch() /build/tests/robustness/client/client.go:352 +0x7bb go.etcd.io/etcd/tests/v3/robustness/client.(*RecordingClient).Watch() /build/tests/robustness/client/client.go:324 +0x275 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatch() /build/tests/robustness/traffic/traffic.go:456 +0x1a6 go.etcd.io/etcd/tests/v3/robustness/traffic.runWatchLoop() /build/tests/robustness/traffic/traffic.go:436 +0xcb go.etcd.io/etcd/tests/v3/robustness/traffic.kubernetesTraffic.RunWatchLoop() /build/tests/robustness/traffic/kubernetes.go:140 +0x184 go.etcd.io/etcd/tests/v3/robustness/traffic.(*kubernetesTraffic).RunWatchLoop() <autogenerated>:1 +0x1d go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.func1() /build/tests/robustness/traffic/traffic.go:225 +0x1e7 go.etcd.io/etcd/tests/v3/robustness/traffic.SimulateWatchTraffic.gowrap1() /build/tests/robustness/traffic/traffic.go:226 +0x38 ``` ### What did you expect to happen? No race
关闭于 2026-05-30 0 条评论