[Robustness tests] Race in robustness code
type/flakearea/robustness-testing
### 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 条评论