]> granicus.if.org Git - pdns/commitdiff
Improve dnsbulktest experience in travis for more robustness
authorbert hubert <bert.hubert@netherlabs.nl>
Fri, 29 Sep 2017 20:40:53 +0000 (22:40 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 11 Oct 2017 13:58:52 +0000 (15:58 +0200)
This commit changes our dnsbulktest source from Alexa to Cisco Umbrella, but this turned out not to be as important as we thought.
In addition, it turns out we had been installing pdns-tools incorrectly because of wrong apt-settings. We now install pdns-tools from the master repo at repo.powerdns.com
This commit also tunes pdns_recursor to use less simultaneous outbound connections during testing, which appears to make Travis NAT happier, leading to less errors.
Finally, we use new features of dnsbulktest to extract more statistics for how well we are doing. Success is now dependent on errors and timeouts, and less on NXDOMAIN.

(cherry picked from commit 8a27076c38e2d399204d41928374e1bb9c45969c)

build-scripts/test-recursor-bulk
build-scripts/travis.sh
regression-tests/recursor-test

index 3f80646fc1727d13afbfbac7af0d67de3ba25627..4b853ef22e8b7b59f557931bfefdaa53700ce982 100755 (executable)
@@ -12,7 +12,7 @@ set -x
 
 cd regression-tests
 
-wget -c -N http://s3.amazonaws.com/alexa-static/top-1m.csv.zip
+wget -c -N https://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip
 
 unzip top-1m.csv.zip
 
index f9276bc3b089d1e53a86aee6e09316cba2a35a5a..64df85ced07ebff9168d81792425bfd58dd736d2 100755 (executable)
@@ -333,11 +333,11 @@ install_recursor() {
     moreutils \
     jq"
   run "cd .."
-  run "wget https://s3.amazonaws.com/alexa-static/top-1m.csv.zip"
+  run "wget https://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip"
   run "unzip top-1m.csv.zip -d ${TRAVIS_BUILD_DIR}/regression-tests"
-  run 'echo -e "deb [arch=amd64] http://repo.powerdns.com/ubuntu trusty-auth-40 main" | sudo tee /etc/apt/sources.list.d/pdns.list'
-  run 'echo -e "Package: pdns-*\nPin: origin PowerDNS\nPin-Priority: 600" | sudo tee /etc/apt/preferences.d/pdns.list'
-  run 'curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo apt-key add - '
+  run 'echo -e "deb [arch=amd64] http://repo.powerdns.com/ubuntu trusty-auth-master main" | sudo tee /etc/apt/sources.list.d/pdns.list'
+  run 'echo -e "Package: pdns-*\nPin: origin repo.powerdns.com\nPin-Priority: 9001" | sudo tee /etc/apt/preferences.d/pdns'
+  run 'curl https://repo.powerdns.com/CBC8B383-pub.asc | sudo apt-key add - '
   run 'sudo apt-get update'
   run 'sudo apt-get -y install pdns-server pdns-tools'
   run "sudo service pdns stop"
@@ -537,7 +537,7 @@ test_recursor() {
   run "./build-scripts/test-recursor"
   export RECURSOR="${PDNSRECURSOR}"
   run "cd regression-tests"
-  run "THRESHOLD=90 TRACE=no ./timestamp ./recursor-test 5300 25000"
+  run "THRESHOLD=90 TRACE=no ./timestamp ./recursor-test 5300 50000"
   run "cd .."
 
   run "cd regression-tests.api"
index aec804485ec180d7d2dd9724d6d585d113f19959..e0cfddc18e5de5bcdc83866afa391de2e833c1d4 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh -ex
+#!/bin/bash -ex
 port=$1
 [ -z "$port" ] && port=5300
 limit=$2
@@ -6,7 +6,7 @@ limit=$2
 
 : ${RECURSOR:="../pdns/recursordist/pdns_recursor"}
 : ${CSV:="top-1m.csv"}
-: ${IPv6:="1"}
+: ${IPv6:="0"}
 : ${TRACE:="fail"}
 : ${DNSBULKTEST:="../pdns/dnsbulktest"}
 
@@ -24,9 +24,9 @@ rm -f recursor.pid pdns_recursor.pid
 <measurement><name>system CPU seconds</name><value>%S</value></measurement>
 <measurement><name>wallclock seconds</name><value>%e</value></measurement>
 <measurement><name>%% CPU used</name><value>%P</value></measurement>
-'         ${RECURSOR} --daemon=no --local-port=$port --socket-dir=./ --trace=$TRACE --config-dir=. --query-local-address6="${QLA6}" > recursor.log 2>&1 &
+'         ${RECURSOR} --daemon=no --local-port=$port --socket-dir=./ --trace=$TRACE --config-dir=. --max-mthreads=100 --query-local-address6="${QLA6}" > recursor.log 2>&1 &
 sleep 3
-${DNSBULKTEST} -qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results
+${DNSBULKTEST} --www=false -qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results
 kill $(cat pdns_recursor.pid)
 sleep 5
 
@@ -36,7 +36,10 @@ mkdir -p recursor-bulktest
 rm -f failed_tests passed_tests
 touch failed_tests passed_tests
 : ${THRESHOLD:="95"}
-if [ "$DBT_OKPERCENTAGEINT" -ge $THRESHOLD ]
+
+ANANSWER=$[(100*(${DBT_QUEUED}-${DBT_ERRORS}-${DBT_TIMEOUTS}) )/${DBT_QUEUED}]
+
+if [ "$ANANSWER" -ge $THRESHOLD ]
 then
        echo recursor-bulktest >> passed_tests
        RETVAL=0