Skip to content
This repository has been archived by the owner on Apr 20, 2021. It is now read-only.

Commit

Permalink
integration test: restart EbpfTracker
Browse files Browse the repository at this point in the history
  • Loading branch information
alban committed Aug 17, 2017
1 parent 9c53653 commit af14cf7
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 4 deletions.
55 changes: 55 additions & 0 deletions integration/315_ebpf_restart_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#! /bin/bash

# shellcheck disable=SC1091
. ./config.sh

start_suite "Test with ebpf restarts and proc fallback"

weave_on "$HOST1" launch
# Manually start scope in order to start EbpfTracker in debug mode
DOCKER_HOST=tcp://${HOST1}:${DOCKER_PORT} CHECKPOINT_DISABLE=true \
WEAVESCOPE_DOCKER_ARGS="-e SCOPE_DEBUG_BPF=1" \
"${SCOPE}" launch

server_on "$HOST1"
client_on "$HOST1"

wait_for_containers "$HOST1" 60 nginx client

has_container "$HOST1" nginx
has_container "$HOST1" client
has_connection containers "$HOST1" client nginx

# shellcheck disable=SC2016
run_on "$HOST1" 'echo stop | sudo tee /proc/$(pidof scope-probe)/root/var/run/scope/debug-bpf'
sleep 5

server_on "$HOST1" "nginx2"
client_on "$HOST1" "client2" "nginx2"

wait_for_containers "$HOST1" 60 nginx2 client2

has_container "$HOST1" nginx2
has_container "$HOST1" client2
has_connection containers "$HOST1" client2 nginx2

# Save stdout for debugging output
exec 3>&1
assert_raises "docker_on $HOST1 logs weavescope 2>&1 | grep 'ebpf tracker died, restarting it' || (docker_on $HOST1 logs weavescope 2>&3 ; false)"

# shellcheck disable=SC2016
run_on "$HOST1" 'echo stop | sudo tee /proc/$(pidof scope-probe)/root/var/run/scope/debug-bpf'
sleep 5

server_on "$HOST1" "nginx3"
client_on "$HOST1" "client3" "nginx3"

wait_for_containers "$HOST1" 60 nginx3 client3

has_container "$HOST1" nginx3
has_container "$HOST1" client3
has_connection containers "$HOST1" client3 nginx3

assert_raises "docker_on $HOST1 logs weavescope 2>&1 | grep 'ebpf tracker died again, gently falling back to proc scanning' || (docker_on $HOST1 logs weavescope 2>&3 ; false)"

scope_end_suite
13 changes: 9 additions & 4 deletions integration/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,18 @@ weave_proxy_on() {
}

server_on() {
weave_proxy_on "$1" run -d --name nginx nginx
local host=$1
local name=${2:-nginx}
weave_proxy_on "$1" run -d --name "$name" nginx
}

client_on() {
weave_proxy_on "$1" run -d --name client alpine /bin/sh -c "while true; do \
wget http://nginx.weave.local:80/ -O - >/dev/null || true; \
sleep 1; \
local host=$1
local name=${2:-client}
local server=${3:-nginx}
weave_proxy_on "$1" run -d --name "$name" alpine /bin/sh -c "while true; do \
wget http://$server.weave.local:80/ -O - >/dev/null || true; \
sleep 1; \
done"
}

Expand Down

0 comments on commit af14cf7

Please sign in to comment.