You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[receiver/kafkametrics] Using unique container networks and container names and attempt to fix flaky tests (open-telemetry#28903)
**Description:** <Describe what has changed.>
Using unique container networks and container names and attempt to fix
flaky tests
**Link to tracking Issue:**
open-telemetry#26293
**Testing:**
**Preparation:**
DIR = receiver/kafkametricsreceiver
CMD = go test -v -count=1 -race -timeout 360s -parallel 4
-tags=integration,"" -run=Integration ./...
**Tests:**
1. If we manually modify the code(as shown below) and use invalid kafka
broker, such as `localhost:invalid-port`, the same error as shown in the
issue may occur.
```
// receiver/kafkametricsreceiver/integration_test.go
scraperinttest.WithCustomConfig(
func(t *testing.T, cfg component.Config, ci
*scraperinttest.ContainerInfo) {
rCfg := cfg.(*Config)
rCfg.CollectionInterval = 5 * time.Second
rCfg.Brokers = []string{"localhost:invalid-port"}
rCfg.Scrapers = []string{"brokers", "consumers", "topics"}
}),
```
2. If we execute the test commands **sequentially** , it seems that the
execution results are all correct.
```
# all result are correct
for i in {1..100}; do echo "Run $i"; ./${CMD} ; done
```
3. If we execute the commands in **parallel** end with **`&`**,
sometimes the error shown in the issue may occur.
```
# sometimes result occur error
for i in {1..20}; do echo "Run $i"; ./${CMD} &; done
```
**Inference:**
I have found that duplicate container networks and container names can
cause container creation to fail or result in successfully created
containers with unavailable ports, which may lead to issues similar to
the one shown.
**Additional information:**
Since Kafka's startup relies on ZooKeeper (which waits for the default
`zookeeper.connection.timeout.ms=18000`), if Kafka starts first and
ZooKeeper fails to start properly after the timeout duration, it will
cause the Kafka container to fail to start correctly. I found the issue
testcontainers/testcontainers-go#1791 wants to
support that.
**Documentation:**
---------
Signed-off-by: sakulali <sakulali@126.com>
0 commit comments