Skip to content

hubble-relay: implement flows reordering#11397

Merged
aanm merged 6 commits intomasterfrom
pr/rolinh/hubble-relay-flows-reordering
May 14, 2020
Merged

hubble-relay: implement flows reordering#11397
aanm merged 6 commits intomasterfrom
pr/rolinh/hubble-relay-flows-reordering

Conversation

@rolinh
Copy link
Copy Markdown
Member

@rolinh rolinh commented May 7, 2020

Please, see individual commits for details (this PR also includes 2 fixes for hubble observer).

$ ./hubble observe --server "localhost:4245" -o json --last 2 | jq '. | .node_name + ": "+ .time'
"k8s3: 2020-05-07T12:49:29.222075019Z"
"k8s3: 2020-05-07T12:49:29.222075979Z"
"k8s2: 2020-05-07T12:49:33.829701160Z"
"k8s2: 2020-05-07T12:49:33.829750769Z"
"k8s1: 2020-05-07T12:49:34.438317991Z"
"k8s1: 2020-05-07T12:49:34.479443887Z"

Closes #11223.

@rolinh rolinh added kind/feature This introduces new functionality. release-note/minor This PR changes functionality that users may find relevant to operating Cilium. area/hubble labels May 7, 2020
@rolinh rolinh requested review from a team and aanm May 7, 2020 12:50
@tgraf tgraf mentioned this pull request May 7, 2020
7 tasks
@coveralls
Copy link
Copy Markdown

coveralls commented May 7, 2020

Coverage Status

Coverage increased (+0.02%) to 37.859% when pulling faca702 on pr/rolinh/hubble-relay-flows-reordering into f5537c2 on master.

Copy link
Copy Markdown
Member

@gandro gandro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The implementation looks good to me, one change requested (and one nit).

While I agree with the commit description that we want to test this in CI, it seems to me that this is also something that should be very easily testable by unit tests as well. This probably needs a bit of boiler-plate first (i.e. we want to be able to mock the different peers and the gRPC client), so I'm fine with merging this feature without unit tests, but I do believe that we should add unit tests for this.

Comment thread pkg/hubble/relay/observer.go Outdated
}
}
pq.Push(flow)
case <-time.After(1 * time.Second): // make sure to drain the queue when no new flow responses are received
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Since we are calling this for each flow and it is presumably creating a channel each time, I wonder if creating a time.NewTimer and calling Reset at the end of the loop might be slightly more efficient. But I actually don't know, just something that stood out to me.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could add a benchmark in the tests and actually measure this.

Comment thread pkg/hubble/relay/observer.go Outdated
@rolinh
Copy link
Copy Markdown
Member Author

rolinh commented May 7, 2020

While I agree with the commit description that we want to test this in CI, it seems to me that this is also something that should be very easily testable by unit tests as well. This probably needs a bit of boiler-plate first (i.e. we want to be able to mock the different peers and the gRPC client), so I'm fine with merging this feature without unit tests, but I do believe that we should add unit tests for this.

I'll mark this PR as draft while I implement unit tests. We're not in a hurry to merge it so I can dedicate time for that.

@rolinh rolinh marked this pull request as draft May 7, 2020 15:16
Comment thread pkg/hubble/relay/queue/priority_queue.go
Comment thread pkg/hubble/relay/observer.go Outdated
Comment thread pkg/hubble/relay/observer.go
@rolinh rolinh force-pushed the pr/rolinh/hubble-relay-flows-reordering branch from 99caa70 to fda1329 Compare May 8, 2020 14:27
@rolinh
Copy link
Copy Markdown
Member Author

rolinh commented May 8, 2020

@gandro I started to give a go at implementing unit tests but it would require a lot of refactoring as the existing code is not easily mockable. I'll create an issue and implement tests for the whole pkg/hubble/relay package in a follow-up PR as this work goes typically beyond the scope of this PR.

@rolinh rolinh marked this pull request as ready for review May 8, 2020 14:32
@rolinh rolinh requested a review from gandro May 8, 2020 15:49
Comment thread pkg/hubble/relay/observer.go Outdated
Comment thread pkg/hubble/relay/observer.go Outdated
Comment thread pkg/hubble/relay/queue/priority_queue.go
Comment on lines +1 to +2
// Copyright 2019 Authors of Hubble
// Copyright 2020 Authors of Cilium
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this a new thing?

Copy link
Copy Markdown
Member

@gandro gandro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cancellation logic looks good to me now, I don't see any point which can block forever.

There is one case where the ctx.Done() check will be delayed (see comment) however.

Comment thread pkg/hubble/relay/observer.go
Comment thread pkg/hubble/relay/observer.go
@rolinh rolinh force-pushed the pr/rolinh/hubble-relay-flows-reordering branch from fda1329 to 893ffe5 Compare May 11, 2020 09:18
@rolinh rolinh requested a review from gandro May 11, 2020 09:33
@rolinh
Copy link
Copy Markdown
Member Author

rolinh commented May 11, 2020

@glibsm I made these values configurable (see WithBufferMaxLen and WithBufferDrainTimeout) but IMHO this is implementation details that an end user shouldn't be concerned about. Also, setting bad values will have unfortunate consequences (such as rendering sorting ineffective). Thus, I have no plans to make these values configurable via the CLI.

@rolinh
Copy link
Copy Markdown
Member Author

rolinh commented May 11, 2020

test-me-please

@glibsm
Copy link
Copy Markdown
Member

glibsm commented May 11, 2020

@glibsm I made these values configurable (see WithBufferMaxLen and WithBufferDrainTimeout) but IMHO this is implementation details that an end user shouldn't be concerned about. Also, setting bad values will have unfortunate consequences (such as rendering sorting ineffective). Thus, I have no plans to make these values configurable via the CLI.

I disagree with that.

We can provide sane defaults and have documentation for what these values do, but fine tuning is a per-environment thing. There is no way we can provide a default that works for everybody

Copy link
Copy Markdown
Member

@glibsm glibsm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exposing through CLI is not blocking this particular PR though

@gandro
Copy link
Copy Markdown
Member

gandro commented May 12, 2020

test-me-please

rolinh added 4 commits May 13, 2020 09:35
This priority queue implementation is not yet used and only relevant for
hubble-relay.

Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
Hubble-relay needs a priority queue for GetFlowsResponse objects, not
Events.

Note that making this priority queue more generic by using an interface
instead is not possible as one would have to perform nil checks on an
interface type (which would be asking for trouble).

Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
This field is pretty useless if not set.

Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
rolinh added 2 commits May 13, 2020 09:35
This field is pretty useless if not set.

Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
This commits implements flows reordering for hubble-relay. The goal is
to reorder flows based on their timestamp in a "best-effort" basis as
waiting for all flows and buffering would have serious drawbacks such as
extreme memory usage in some scenarios (and it would not work in
follow-mode anyway as the number of flows is virtually infinite in such
a case).

This implementation uses a priority queue where Pop() returns the oldest
element in the queue. In order to ensure that elements are popped out
from the queue even when the queue is not full (typically for requests
in follow-mode that don't result in a large number of flows), an element
is tentatively popped out from the queue at least every second.

I have tested this implementation on a 3 nodes cluster and both in
follow-mode and non follow-mode. Unit tests need to be implemented but
this is true for the relay package in general which is not easily
mockable with the current implementation.

Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
@rolinh rolinh force-pushed the pr/rolinh/hubble-relay-flows-reordering branch from 893ffe5 to faca702 Compare May 13, 2020 07:36
@rolinh
Copy link
Copy Markdown
Member Author

rolinh commented May 13, 2020

test-me-please

@errordeveloper
Copy link
Copy Markdown
Contributor

errordeveloper commented May 13, 2020

@rolinh this is definitely #11395 in case of GKE.

@errordeveloper
Copy link
Copy Markdown
Contributor

test-gke

@gandro
Copy link
Copy Markdown
Member

gandro commented May 13, 2020

retest-4.9

@gandro
Copy link
Copy Markdown
Member

gandro commented May 13, 2020

retest-runtime

@gandro
Copy link
Copy Markdown
Member

gandro commented May 13, 2020

retest-net-next

@errordeveloper
Copy link
Copy Markdown
Contributor

In case of runtime tests, there is something else going on:

10:42:04  • Failure [212.421 seconds]
10:42:04  RuntimePrivilegedUnitTests
10:42:04  /home/jenkins/workspace/Cilium-PR-Runtime-4.9/runtime-gopath/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:436
10:42:04    Run Tests [It]
10:42:04    /home/jenkins/workspace/Cilium-PR-Runtime-4.9/runtime-gopath/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:471
10:42:04  
10:42:04    Failed to run privileged unit tests
[2020-05-13T09:42:04.242Z]   Expected command: sudo make -C /home/vagrant/go/src/github.com/cilium/cilium/ tests-privileged 
[2020-05-13T09:42:04.242Z]   To succeed, but it failed:
[2020-05-13T09:42:04.242Z]   Exitcode: 2 
[2020-05-13T09:42:04.242Z]   Stdout:
[2020-05-13T09:42:04.242Z]    	 make: Entering directory '/home/vagrant/go/src/github.com/cilium/cilium'
[2020-05-13T09:42:04.242Z]   	 # cilium-map-migrate is a dependency of some unit tests.
[2020-05-13T09:42:04.242Z]   	 make  -C bpf cilium-map-migrate
[2020-05-13T09:42:04.242Z]   	 make[1]: Entering directory '/home/vagrant/go/src/github.com/cilium/cilium/bpf'
[2020-05-13T09:42:04.242Z]   	 make[1]: 'cilium-map-migrate' is up to date.
[2020-05-13T09:42:04.242Z]   	 make[1]: Leaving directory '/home/vagrant/go/src/github.com/cilium/cilium/bpf'
[2020-05-13T09:42:04.242Z]   	 make init-coverage
[2020-05-13T09:42:04.242Z]   	 make[1]: Entering directory '/home/vagrant/go/src/github.com/cilium/cilium'
[2020-05-13T09:42:04.242Z]   	 echo "mode: count" > coverage-all-tmp.out
[2020-05-13T09:42:04.242Z]   	 echo "mode: count" > coverage.out
[2020-05-13T09:42:04.242Z]   	 make[1]: Leaving directory '/home/vagrant/go/src/github.com/cilium/cilium'
[2020-05-13T09:42:04.242Z]   	 for pkg in github.com/cilium/cilium/cilium/cmd github.com/cilium/cilium/daemon/cmd github.com/cilium/cilium/pkg/aws/eni/routing github.com/cilium/cilium/pkg/bpf github.com/cilium/cilium/pkg/datapath/link github.com/cilium/cilium/pkg/datapath/linux github.com/cilium/cilium/pkg/datapath/linux/config github.com/cilium/cilium/pkg/datapath/linux/ipsec github.com/cilium/cilium/pkg/datapath/linux/probes github.com/cilium/cilium/pkg/datapath/linux/route github.com/cilium/cilium/pkg/datapath/loader github.com/cilium/cilium/pkg/fqdn/dnsproxy github.com/cilium/cilium/pkg/maps/ctmap github.com/cilium/cilium/pkg/maps/eppolicymap github.com/cilium/cilium/pkg/maps/policymap github.com/cilium/cilium/pkg/modules github.com/cilium/cilium/pkg/mtu github.com/cilium/cilium/pkg/sysctl; do \
[2020-05-13T09:42:04.242Z]   	 	PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/vagrant/go/src/github.com/cilium/cilium/bpf go test  -mod=vendor -ldflags "-X github.com/cilium/cilium/pkg/kvstore.consulDummyAddress=https://consul:8443 -X github.com/cilium/cilium/pkg/kvstore.etcdDummyAddress=http://etcd:4002 -X github.com/cilium/cilium/pkg/testutils.CiliumRootDir=/home/vagrant/go/src/github.com/cilium/cilium -X github.com/cilium/cilium/pkg/datapath.DatapathSHA=1234567890abcdef7890" $pkg -test.v -timeout 360s -check.vv -tags=privileged_tests -coverprofile=coverage.out -covermode=count -coverpkg ./... \
[2020-05-13T09:42:04.242Z]   	 	|| exit 1; \
[2020-05-13T09:42:04.242Z]   	 	tail -n +2 coverage.out >> coverage-all-tmp.out; \
[2020-05-13T09:42:04.242Z]   	 done
[2020-05-13T09:42:04.242Z]   	 === RUN   Test
[2020-05-13T09:42:04.242Z]   	 START: bpf_ipcache_get_test.go:58: BPFIPCacheGetSuite.TestGetLPMValue
[2020-05-13T09:42:04.242Z]   	 PASS: bpf_ipcache_get_test.go:58: BPFIPCacheGetSuite.TestGetLPMValue	0.001s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 START: bpf_ipcache_get_test.go:32: BPFIPCacheGetSuite.TestGetPrefix
[2020-05-13T09:42:04.242Z]   	 PASS: bpf_ipcache_get_test.go:32: BPFIPCacheGetSuite.TestGetPrefix	0.001s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 START: helpers_test.go:39: CMDHelpersSuite.TestExpandNestedJSON
[2020-05-13T09:42:04.242Z]   	 PASS: helpers_test.go:39: CMDHelpersSuite.TestExpandNestedJSON	0.001s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 START: helpers_test.go:576: CMDHelpersSuite.TestParsePolicyUpdateArgsHelper
[2020-05-13T09:42:04.242Z]   	 PASS: helpers_test.go:576: CMDHelpersSuite.TestParsePolicyUpdateArgsHelper	0.000s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 START: helpers_test.go:551: CMDHelpersSuite.TestParseTrafficString
[2020-05-13T09:42:04.242Z]   	 PASS: helpers_test.go:551: CMDHelpersSuite.TestParseTrafficString	0.000s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 OK: 5 passed
[2020-05-13T09:42:04.242Z]   	 --- PASS: Test (0.00s)
[2020-05-13T09:42:04.242Z]   	 PASS
[2020-05-13T09:42:04.242Z]   	 coverage: 2.6% of statements in ./...
[2020-05-13T09:42:04.242Z]   	 ok  	github.com/cilium/cilium/cilium/cmd	0.085s	coverage: 2.6% of statements in ./...
[2020-05-13T09:42:04.242Z]   	 === RUN   Test
[2020-05-13T09:42:04.242Z]   	 START: nodeport_linux_test.go:51: NodePortSuite.TestCheckNodePortAndEphemeralPortRanges
[2020-05-13T09:42:04.242Z]   	 START: nodeport_linux_test.go:35: NodePortSuite.SetUpTest
[2020-05-13T09:42:04.242Z]   	 PASS: nodeport_linux_test.go:35: NodePortSuite.SetUpTest	0.000s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 START: nodeport_linux_test.go:44: NodePortSuite.TearDownTest
[2020-05-13T09:42:04.242Z]   	 PASS: nodeport_linux_test.go:44: NodePortSuite.TearDownTest	0.000s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 PASS: nodeport_linux_test.go:51: NodePortSuite.TestCheckNodePortAndEphemeralPortRanges	0.001s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 START: sysctl_linux_test.go:34: DaemonPrivilegedSuite.TestEnableIPForwarding
[2020-05-13T09:42:04.242Z]   	 PASS: sysctl_linux_test.go:34: DaemonPrivilegedSuite.TestEnableIPForwarding	0.000s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 OK: 2 passed
[2020-05-13T09:42:04.242Z]   	 --- PASS: Test (0.00s)
[2020-05-13T09:42:04.242Z]   	 PASS
[2020-05-13T09:42:04.242Z]   	 coverage: 2.0% of statements in ./...
[2020-05-13T09:42:04.242Z]   	 ok  	github.com/cilium/cilium/daemon/cmd	0.617s	coverage: 2.0% of statements in ./...
[2020-05-13T09:42:04.242Z]   	 === RUN   Test
[2020-05-13T09:42:04.242Z]   	 START: routing_test.go:40: ENIRoutingSuite.TestConfigure
[2020-05-13T09:42:04.242Z]   	 Inside new network ns NS(3:4026532384)
[2020-05-13T09:42:04.242Z]   	 Added dummy device
[2020-05-13T09:42:04.242Z]   	 Cleaned up dummy device
[2020-05-13T09:42:04.242Z]   	 Closed new network ns NS(3:4026532384)
[2020-05-13T09:42:04.242Z]   	 Inside new network ns NS(3:4026532451)
[2020-05-13T09:42:04.242Z]   	 Added dummy device
[2020-05-13T09:42:04.242Z]   	 Cleaned up dummy device
[2020-05-13T09:42:04.242Z]   	 Closed new network ns NS(3:4026532451)
[2020-05-13T09:42:04.242Z]   	 Set back to previous network ns
[2020-05-13T09:42:04.242Z]   	 PASS: routing_test.go:40: ENIRoutingSuite.TestConfigure	0.042s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 START: routing_test.go:54: ENIRoutingSuite.TestConfigureRoutewithIncompatibleIP
[2020-05-13T09:42:04.242Z]   	 level=warning msg="Unable to configure rules and routes because IP is not an IPv4 address" endpointIP="fd00::2" subsys=eni-routing
[2020-05-13T09:42:04.242Z]   	 PASS: routing_test.go:54: ENIRoutingSuite.TestConfigureRoutewithIncompatibleIP	0.000s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 START: routing_test.go:71: ENIRoutingSuite.TestDelete
[2020-05-13T09:42:04.242Z]   	 valid IP addr matching rules
[2020-05-13T09:42:04.242Z]   	 Inside new network ns NS(3:4026532384)
[2020-05-13T09:42:04.242Z]   	 Added dummy device
[2020-05-13T09:42:04.242Z]   	 routing_test.go:130:
[2020-05-13T09:42:04.242Z]   	     runFuncInNetNS(c, func() {
[2020-05-13T09:42:04.242Z]   	         ip := tt.preRun()
[2020-05-13T09:42:04.242Z]   	         err := Delete(ip)
[2020-05-13T09:42:04.242Z]   	         c.Assert((err != nil), Equals, tt.wantErr)
[2020-05-13T09:42:04.242Z]   	     }, masterMAC)
[2020-05-13T09:42:04.242Z]   	 routing_test.go:178:
[2020-05-13T09:42:04.242Z]   	     c.Assert(err, IsNil)
[2020-05-13T09:42:04.242Z]   	 ... value *errors.errorString = &errors.errorString{s:"unable to find ifindex for interface MAC: interface with MAC 00:11:22:33:44:55 not found"} ("unable to find ifindex for interface MAC: interface with MAC 00:11:22:33:44:55 not found")
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 routing_test.go:130:
[2020-05-13T09:42:04.242Z]   	     runFuncInNetNS(c, func() {
[2020-05-13T09:42:04.242Z]   	         ip := tt.preRun()
[2020-05-13T09:42:04.242Z]   	         err := Delete(ip)
[2020-05-13T09:42:04.242Z]   	         c.Assert((err != nil), Equals, tt.wantErr)
[2020-05-13T09:42:04.242Z]   	     }, masterMAC)
[2020-05-13T09:42:04.242Z]   	 routing_test.go:224:
[2020-05-13T09:42:04.242Z]   	     c.Assert(netlink.LinkDel(dummy), IsNil)
[2020-05-13T09:42:04.242Z]   	 ... value syscall.Errno = 0x16 ("invalid argument")
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 Closed new network ns NS(3:4026532384)
[2020-05-13T09:42:04.242Z]   	 FAIL: routing_test.go:71: ENIRoutingSuite.TestDelete
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 START: routing_test.go:63: ENIRoutingSuite.TestDeleteRoutewithIncompatibleIP
[2020-05-13T09:42:04.242Z]   	 level=warning msg="Unable to delete rules because IP is not an IPv4 address" endpointIP="fd00::2" subsys=eni-routing
[2020-05-13T09:42:04.242Z]   	 PASS: routing_test.go:63: ENIRoutingSuite.TestDeleteRoutewithIncompatibleIP	0.000s
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   	 OOPS: 3 passed, 1 FAILED
[2020-05-13T09:42:04.242Z]   	 --- FAIL: Test (0.21s)
[2020-05-13T09:42:04.242Z]   	 FAIL
[2020-05-13T09:42:04.242Z]   	 coverage: 3.5% of statements in ./...
[2020-05-13T09:42:04.242Z]   	 FAIL	github.com/cilium/cilium/pkg/aws/eni/routing	0.248s
[2020-05-13T09:42:04.242Z]   	 FAIL
[2020-05-13T09:42:04.242Z]   	 Makefile:121: recipe for target 'tests-privileged' failed
[2020-05-13T09:42:04.242Z]   	 make: Leaving directory '/home/vagrant/go/src/github.com/cilium/cilium'
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   Stderr:
[2020-05-13T09:42:04.242Z]    	 make: *** [tests-privileged] Error 1
[2020-05-13T09:42:04.242Z]   	 
[2020-05-13T09:42:04.242Z]   
10:42:04  
10:42:04    /home/jenkins/workspace/Cilium-PR-Runtime-4.9/runtime-gopath/src/github.com/cilium/cilium/test/runtime/privileged_tests.go:47

@errordeveloper
Copy link
Copy Markdown
Contributor

And in case of oldest-net-next, it's this:

12:47:44  FAIL: k8s1 host can not connect to service "http://[::ffff:10.10.0.219]:32347" (failed in request 8/10)
12:47:44  Expected command: kubectl exec -n kube-system log-gatherer-md5rp -- curl --path-as-is -s -D /dev/stderr --fail --connect-timeout 5 --max-time 8 http://[::ffff:10.10.0.219]:32347 -w "time-> DNS: '%{time_namelookup}(%{remote_ip})', Connect: '%{time_connect}',Transfer '%{time_starttransfer}', total '%{time_total}'" 
12:47:44  To succeed, but it failed:
12:47:44  Exitcode: -1 
12:47:44  Stdout:
12:47:44   	 
12:47:44  Stderr:
12:47:44   	 
12:47:44  

@errordeveloper
Copy link
Copy Markdown
Contributor

No runtime tests are failing with this:

13:38:11  • Failure [107.203 seconds]
13:38:11  RuntimePolicies
13:38:11  /home/jenkins/workspace/Cilium-PR-Runtime-4.9/runtime-gopath/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:436
13:38:11    Tests Egress To World [It]
13:38:11    /home/jenkins/workspace/Cilium-PR-Runtime-4.9/runtime-gopath/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:471
13:38:11  
13:38:11    3 of 1  pings to "8.8.8.8" failed
[2020-05-13T12:38:11.546Z]   Expected
[2020-05-13T12:38:11.546Z]       <int>: 3
[2020-05-13T12:38:11.546Z]   to be <=
[2020-05-13T12:38:11.546Z]       <int>: 1
13:38:11  
13:38:11    /home/jenkins/workspace/Cilium-PR-Runtime-4.9/runtime-gopath/src/github.com/cilium/cilium/test/runtime/Policies.go:1036

And oldest-net-next seems to fail to get Alpine package index:

13:39:34  fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
13:39:34  fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
13:39:34  ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.11/main: temporary error (try again later)
[2020-05-13T12:39:34.735Z] WARNING: Ignoring APKINDEX.70f61090.tar.gz: No such file or directory
[2020-05-13T12:39:34.735Z] ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.11/community: temporary error (try again later)
[2020-05-13T12:39:34.735Z] WARNING: Ignoring APKINDEX.ca2fea5b.tar.gz: No such file or directory
[2020-05-13T12:39:34.735Z] ERROR: unsatisfiable constraints:
[2020-05-13T12:39:34.735Z]   ca-certificates (missing):
13:39:34      required by: world[ca-certificates]

@rolinh
Copy link
Copy Markdown
Member Author

rolinh commented May 13, 2020

In case of runtime tests, there is something else going on:

@errordeveloper I think this one is #11512

The other one seems to be a transient failure (alpine pkg database could not be reached thus building the docker image failed).

@aanm
Copy link
Copy Markdown
Member

aanm commented May 13, 2020

retest-netnext

@aanm
Copy link
Copy Markdown
Member

aanm commented May 13, 2020

retest-net-next

@gandro
Copy link
Copy Markdown
Member

gandro commented May 14, 2020

retest-runtime

@aanm aanm merged commit 6ef9cc5 into master May 14, 2020
@aanm aanm deleted the pr/rolinh/hubble-relay-flows-reordering branch May 14, 2020 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/feature This introduces new functionality. release-note/minor This PR changes functionality that users may find relevant to operating Cilium.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hubble-relay: implement flows re-ordering

6 participants