GoogleCloudPlatform / point-of-sale

Anthos Edge Use Cases for bringing apps and computation closer to the location where the action is, to improve response times and save bandwidth.
Apache License 2.0
32 stars 19 forks source link

feat: implementing toxiproxy, testcontainers, and an integration test #270

Open Mukamik opened 7 months ago

Mukamik commented 7 months ago

Adding Testcontainers and Toxiproxy to demonstrate an integration test of database behaviour during network outage.

NimJay commented 7 months ago

Thanks for putting this together, @Mukamik! Looks like the pos-pr-open-to-main GitHub check is failing. I'm re-running to make sure it's not a flaky issue.

18:55:43.155 [main] DEBUG com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.wire - http-outgoing-0 << "[read] I/O error: null"
18:55:43.156 [docker-java-stream--1841746279] DEBUG com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.wire - http-outgoing-0 << "[read] I/O error: null"
18:55:43.161 [main] DEBUG com.github.dockerjava.zerodep.ApacheDockerHttpClientImpl$ApacheResponse - Failed to close the response
java.nio.channels.ClosedChannelException: null
    at java.base/sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected(SocketChannelImpl.java:215)
    at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:403)
    at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:59)
    at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:107)
    at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:101)
    at com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.impl.io.LoggingInputStream.read(LoggingInputStream.java:81)
NimJay commented 7 months ago

@Mukamik after re-running the pos-pr-open-to-main (point-of-sale-ci) GitHub check, we're getting the same error: 😅

20:36:27.088 [docker-java-stream-529698192] DEBUG com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.wire - http-outgoing-0 << "[read] I/O error: null"
20:36:27.090 [main] DEBUG com.github.dockerjava.zerodep.ApacheDockerHttpClientImpl$ApacheResponse - Failed to close the response
java.nio.channels.ClosedChannelException: null
    at java.base/sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected(SocketChannelImpl.java:215)
    at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:403)
    at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:59)
Mukamik commented 7 months ago

It looks like either a timeout during the integration test, which takes ~20 seconds to run outside of Cloud Build, or a slightly different exception than expected.

Either way it does look like the problem is in the branch. I'll address it then request review again.