Skip to content

Conversation

maflcko
Copy link
Member

@maflcko maflcko commented Jun 13, 2020

Generally developers compile with recent compilers, so bumping the ci configs to a recent OS should be uncontroversial. Older OSes (especially with compiler sanitizers) need workarounds that can be dropped by running on a more recent OS.

This pull changes the asan sanitizer and the experimental multiprocess build to use focal.
Also, it runs the no_wallet config on xenial to test against python 3.5, according to doc/dependencies.md.

Finally, all configs that mimic gitian (win and mac) will stay at bionic.

@@ -129,13 +115,12 @@ jobs:
FILE_ENV="./ci/test/00_setup_env_native_fuzz.sh"

- stage: test
name: 'x86_64 Linux [GOAL: install] [bionic] [multiprocess]'
if: type != pull_request OR commit_message =~ /depends:|multiprocess:/ # Skip on non-depends, non-multiprocess PRs
Copy link
Member

Choose a reason for hiding this comment

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

Why this if: removed?

Copy link
Member Author

Choose a reason for hiding this comment

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

I think it is not worth the risk of having the build go broken unnoticed as opposed to the cost of needing one more vm. The travis contract is expiring this month and we will either renew it or buy a contract at a different provider.

@maflcko
Copy link
Member Author

maflcko commented Jun 13, 2020

For some reason this doesn't link:

/usr/bin/ld: qt/libbitcoinqt.a(libbitcoinqt_a-bitcoin.o): in function `GuiMain(int, char**)':

/home/travis/build/bitcoin/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/qt/bitcoin.cpp:444: undefined reference to `qInitResources_bitcoin()'

/usr/bin/ld: /home/travis/build/bitcoin/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/qt/bitcoin.cpp:445: undefined reference to `qInitResources_bitcoin_locale()'

clang: error: linker command failed with exit code 1 (use -v to see invocation)

locally everything works fine, but on travis not: https://travis-ci.org/github/bitcoin/bitcoin/jobs/697962112#L4091

@hebasto
Copy link
Member

hebasto commented Jun 13, 2020

For some reason this doesn't link:

/usr/bin/ld: qt/libbitcoinqt.a(libbitcoinqt_a-bitcoin.o): in function `GuiMain(int, char**)':

/home/travis/build/bitcoin/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/qt/bitcoin.cpp:444: undefined reference to `qInitResources_bitcoin()'

/usr/bin/ld: /home/travis/build/bitcoin/bitcoin/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/qt/bitcoin.cpp:445: undefined reference to `qInitResources_bitcoin_locale()'

clang: error: linker command failed with exit code 1 (use -v to see invocation)

locally everything works fine, but on travis not: https://travis-ci.org/github/bitcoin/bitcoin/jobs/697962112#L4091

Could you try to add #include <QDir> into bitcoin.cpp?

@DrahtBot
Copy link
Contributor

DrahtBot commented Jun 13, 2020

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

Reviewers, this pull request conflicts with the following ones:

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

kiminuo added a commit to kiminuo/bitcoin that referenced this pull request Jun 13, 2020
@kiminuo
Copy link
Contributor

kiminuo commented Jun 13, 2020

(@hebasto Different PR but similar error. However, your suggestion did not help me: https://travis-ci.com/github/kiminuo/bitcoin/jobs/348750106 https://travis-ci.com/github/kiminuo/bitcoin/jobs/348750106#L4065)

@hebasto
Copy link
Member

hebasto commented Jun 13, 2020

@MarcoFalke
It seems the root is here:
https://travis-ci.org/github/bitcoin/bitcoin/jobs/697962112#L3568
and
https://travis-ci.org/github/bitcoin/bitcoin/jobs/697962112#L3928

@maflcko
Copy link
Member Author

maflcko commented Jun 13, 2020

Nice catch. Though,

  • Why does this error not abort the build immediately?
  • Why does it not reproduce locally?

@hebasto
Copy link
Member

hebasto commented Jun 13, 2020

Travis is happy with 17dc996 :)

@fanquake
Copy link
Member

Concept ACK.

Generally developers compile with recent compilers, so bumping the ci configs to a recent OS should be uncontroversial.

If we're going to do this I think we should make a decision in #18921. Otherwise the way we compile and test in our CI (as well as the way some developers are compiling locally) is starting to diverge from the way we actually build releases.

For 0.21 this will be Ubuntu Bionic with python3.6.

Is the minimum supported Python being bumped to 3.6 for 0.21, or are we just not going to test Python 3.5 compat any more? You said here:

https://packages.ubuntu.com/xenial/python3 is still supported and not EOL until April next year, so we can't bump to python 3.6 yet.

maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Jun 14, 2020
Also, bump the travis env to bionic. This shouldn't matter at all
because all ci configs run inside a docker, but it does seem to fix a
bug. See
bitcoin#19267 (comment)
maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Jun 14, 2020
Also, bump the travis env to bionic. This shouldn't matter at all
because all ci configs run inside a docker, but it does seem to fix a
bug. See
bitcoin#19267 (comment)
@maflcko
Copy link
Member Author

maflcko commented Jun 14, 2020

starting to diverge from the way we actually build releases.

I don't mind bumping gitian to focal, but I think that discussion should happen elsewhere. I kept the three gitian-mimic configs at bionic (win64, mac, and the C++17 linux build). Though, sanitizers are not supported by gitian, so I think requiring them to use the older LTS and patch them with workarounds might not be the best way forward.

Is the minimum supported Python being bumped to 3.6 for 0.21, or are we just not going to test Python 3.5 compat any more?

I am testing python 3.5 compat, but most of my testing has moved out of this repo. Though, I've switched the existing no_wallet config to xenial in the last commit to make it a bit more explicit that python3.5 compat is not changed by this pull.

maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Jun 14, 2020
Also, bump the travis env to bionic. This shouldn't matter at all
because all ci configs run inside a docker, but it does seem to fix a
bug. See
bitcoin#19267 (comment)
@practicalswift
Copy link
Contributor

Concept ACK

maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Jun 15, 2020
Also, bump the travis env to bionic. This shouldn't matter at all
because all ci configs run inside a docker, but it does seem to fix a
bug. See
bitcoin#19267 (comment)
@maflcko
Copy link
Member Author

maflcko commented Jun 15, 2020

Force pushed to get rid of the already merged commit

@laanwj
Copy link
Member

laanwj commented Jun 17, 2020

Concept ACK. I think focal is a better reflection of the compiler and binutils most people are using than bionic, at this point.

Though I agree with @fanquake's point that we're still building releases using bionic, so we need to test that.

However, there should be at least one config to test compile and run-time compatibility on the oldest supported OS. For 0.21 this will be Ubuntu Bionic with python3.6.

This is somewhat confusing to me—compile-time and run-time compatibility was never the same. Run-time compatibility (at least for pre-built releases) historically at least tends to back farther than we support building on. But I suppose backward-testing gitian releases isn't part of the CI so it doesn't matter here.

maflcko pushed a commit to maflcko/bitcoin-core that referenced this pull request Jun 19, 2020
Also, bump the travis env to bionic. This shouldn't matter at all
because all ci configs run inside a docker, but it does seem to fix a
bug. See
bitcoin#19267 (comment)
@maflcko
Copy link
Member Author

maflcko commented Jun 19, 2020

doc/dependencies.md says it is python 3.5, so I went ahead and updated OP

MarcoFalke added 3 commits June 19, 2020 10:43
Also, bump the travis env to bionic. This shouldn't matter at all
because all ci configs run inside a docker, but it does seem to fix a
bug. See
bitcoin#19267 (comment)
@maflcko
Copy link
Member Author

maflcko commented Jun 19, 2020

re-arranged commits to minimize diff

@Sjors
Copy link
Member

Sjors commented Jun 19, 2020

ACK fa05f44, assuming Travis passes
(it hasn't shown up in the checks yet)

@maflcko
Copy link
Member Author

maflcko commented Jun 19, 2020

(it hasn't shown up in the checks yet)

It shows for me:

Screenshot_2020-06-19 ci Upgrade most ci configs to focal by MarcoFalke · Pull Request #19267 · bitcoin bitcoin

Comment on lines -135 to +120
name: 'x86_64 Linux [GOAL: install] [bionic] [no wallet]'
name: 'x86_64 Linux [GOAL: install] [xenial] [no wallet]'
Copy link
Member

Choose a reason for hiding this comment

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

Why xenial?

Copy link
Member Author

Choose a reason for hiding this comment

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

Please refer to the commit message and pull request description for the motivation behind changes

Copy link
Member

Choose a reason for hiding this comment

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

I see.

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

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

ACK fa05f44

@maflcko maflcko merged commit 6dc1b45 into bitcoin:master Jun 19, 2020
@maflcko maflcko deleted the 2006-ciFocal branch June 19, 2020 16:56
@Sjors
Copy link
Member

Sjors commented Jun 19, 2020

I show up for me now as well.

stackman27 pushed a commit to stackman27/bitcoin that referenced this pull request Jun 26, 2020
Also, bump the travis env to bionic. This shouldn't matter at all
because all ci configs run inside a docker, but it does seem to fix a
bug. See
bitcoin#19267 (comment)
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jul 7, 2020
Also, bump the travis env to bionic. This shouldn't matter at all
because all ci configs run inside a docker, but it does seem to fix a
bug. See
bitcoin#19267 (comment)
janus pushed a commit to janus/bitgesell that referenced this pull request Nov 22, 2020
Also, bump the travis env to bionic. This shouldn't matter at all
because all ci configs run inside a docker, but it does seem to fix a
bug. See
bitcoin/bitcoin#19267 (comment)
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Feb 15, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants