The other keyserver is consistently timing out on travis: https://travis-ci.org/bitcoin/bitcoin/jobs/512689710#L405
Attempt to fix it by using a different server.
Also:
The other keyserver is consistently timing out on travis: https://travis-ci.org/bitcoin/bitcoin/jobs/512689710#L405
Attempt to fix it by using a different server.
Also:
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--174a7506f384e20aa4161008e828411d-->
No conflicts as of last run.
Concept ACK
Isn't there something better we can do instead of probe the keyserver for every run, every platform? It seems pretty much a DoS attack.
Unless I am mistaken it should only run once per day for only our repo:
"$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_EVENT_TYPE" = "cron"
32 | @@ -33,8 +33,8 @@ install: 33 | before_script: 34 | - set -o errexit; source .travis/test_05_before_script.sh 35 | script: 36 | - - if [ $SECONDS -gt 1200 ]; then set +o errexit; echo "Travis early exit to cache current state"; false; else set -o errexit; source .travis/test_06_script_a.sh; fi 37 | - - if [ $SECONDS -gt 1800 ]; then set +o errexit; echo "Travis early exit to cache current state"; false; else set -o errexit; source .travis/test_06_script_b.sh; fi 38 | + - if [ $SECONDS -gt 1200 ]; then set +o errexit; echo "Early exit to cache current state. Please re-run job"; false; else set -o errexit; source .travis/test_06_script_a.sh; fi
I don't understand what "early exit to cache state means." Is this a timeout trying to create a cache, or a timeout waiting for something else to create a cache? What cache is being referring to? Where is the cache stored? Where can I find the code that creates the cache? Where I can I find the code or config that determines whether the cache needs to be updated and recreates the cache?
@ryanofsky Travis stores a ccache to speed up the builds. If the build takes too long Travis will kill the job and I don't think it keeps the cache around when it does that. So, in order to keep the cache for future builds, we kill the job ourselves. Then on a rerun we should have that cache so it runs faster.
You can see the cache config for Travis here: https://github.com/bitcoin/bitcoin/blob/master/.travis.yml#L4-L9
If any of that is incorrect someone please tell me, but that's how I understand it.
Correct, aside from ccache, we also cache depends
re: #15693 (review)
Thanks, that's really helpful. Would suggest prefixing the error message with Error: and also explaining more:
echo "Error: Initial build successful, but not enough time remains to run tests. Please manually re-run job by using the travis restart button or asking a bitcoin maintainer to restart. The next run should not time out because ccache build outputs have been saved."
Added some more documentation to .travis.yml
See:
19 | +# Travis CI uploads the cache after the script phase of the build [1]. 20 | +# However, the build is terminated without saving the chache if it takes over 21 | +# 50 minutes [2]. Thus, if we spent too much time in early build stages, fail 22 | +# with an error and save the cache. 23 | +# 24 | +# [0] https://travis-ci.org/bitcoin/bitcoin/caches
Wow, I had no idea. Really tempting to click on all the trashcans.
utACK fa2056af1c71aded3a821a07ec4de71c4be0bca3. All good changes (changing keyserver, getting rid of keyserver while loop, clarifying travis error, moving travis documentation to code comment).