ci: Nuke Android APK task, Use credits for tsan #27834

pull maflcko wants to merge 1 commits into bitcoin:master from maflcko:2306-ci-tsan- changing 1 files +1 −18
  1. maflcko commented at 2:08 pm on June 7, 2023: member

    The Android task has many issues:

    • It runs into more network timeouts (intermittent failures) than other tasks
    • It never failed since its introduction years ago in a scenario where all other tasks passed, thus it is useless (so far)

    Fix all issues by removing the task. Note that the CI env file is kept, so anyone can still run the Android CI.

    Also, use the compute credits to promote tsan, a more useful task.

  2. ci: Nuke Android APK task, Use credits for tsan fa22538e48
  3. DrahtBot commented at 2:08 pm on June 7, 2023: contributor

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

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK dergoegge, glozow
    Concept NACK jarolrod
    Concept ACK fanquake

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

  4. DrahtBot added the label Tests on Jun 7, 2023
  5. fanquake commented at 2:09 pm on June 7, 2023: member
    Concept ACK
  6. dergoegge approved
  7. dergoegge commented at 3:30 pm on June 7, 2023: member

    ACK fa22538e481fa2c4f0b5d6f91166335e60b67fe9 - nuke it

    I have only ever seen this task pass (even if all others fail) or fail intermittently.

  8. jarolrod commented at 6:36 pm on June 7, 2023: member

    It should be noted the primary role of the task is to check that a change doesn’t prevent us from building for android, a platform with 3 billion users and a platform that we care about building for. A manual check will be needed for build system changes to ensure that this compatibility is kept. @dergoegge

    can you show an example to back up this claim: “I have only ever seen this task pass (even if all others fail)…” - The android CI won’t pass if we can’t build core, if all other tests fail we can’t build core (macOS 10.15 ci task for example). So this sounds impossible.

  9. jarolrod commented at 2:44 am on June 8, 2023: member

    NACK

    I’m not sure if the PR description counts as “many” issues.

    If this task was failing intermittently all the time, why are there no issues posted about these intermittent failures occurring all the time, everywhere? We watch this task often in the QML repo and have never had it fail due to a network timeout.

    It’s great to speed up a task, and I wish all tasks could run as quickly as possible; that would be really great. But not at the expense of a check on building for a platform we want to support, with a massive user base, more than any other operating system in existence.

    The potential to allow Android devices to participate in the network as full nodes is powerful. It’s beautiful to enable a person in a part of the world where one only has an old Android phone to benefit from having a self-sovereign view of the network and their coins, to participate in the enforcement of the network rules, and to broadcast transactions in an unstoppable P2P manner directly from their device.

    And, the changes to support Android are “surprisingly small and sensible”, even in the QML repo as we’ve added the ability for it to run in the background as a process.

    Android Tablet Android Phone
    FtO9BGDWYAA-t4F Ft-a8omX0AAa3Go

    This feels, in a small way, motivated by the want to remove the GUI by some. There seems to be an idea among a handful of us that all of our issues will be fixed if we rm -rf ./src/qt. This isn’t so, and maintenance of core will still involve headaches and work. All it does is remove a way for many to run a node, reducing the population and harming the demographic of those running nodes. I care about non-technical individuals being able to run core. I would hope others share the same sentiment.

  10. maflcko commented at 4:25 am on June 8, 2023: member

    why are there no issues posted about these intermittent failures

    Because no one reported them. But they do exist, if you grep for “Warning: An error occurred while preparing SDK package Android Emulator: Connection reset.” For example, https://cirrus-ci.com/task/5766445213155328?logs=build#L2700

    It’s great to speed up a task, and I wish all tasks could run as quickly as possible;

    It only checks that it can build, and doesn’t run any tests, so I hope the other tasks remain to run the tests.

    This feels, in a small way, motivated by the want to remove the GUI by some.

    I think this is a far stretch. I’ve never encouraged to remove the GUI and would strongly object the removal. What this does is remove the Android task from the CI config, nothing more. The CI env is explicitly kept, to be able to continue running the task outside. And in fact it is already running on a nightly basis on my nightly CI repo: https://cirrus-ci.com/task/5872120266227712 , along with other important to check tasks that have no place in this repo.

    Needless to say this is also no attempt to remove Android compatibility. I agree with you that this is an important platform and demographic to support.

    This is merely removing a task that is failing more often due to unrelated issues (network) than to indicate a useful result (true red CI). If you disagree it would be helpful to demonstrate or link to one instance where this task has caught or would have caught an issue.

    I don’t feel too strongly, and I am happy to close this, but I think we should be having a discussion based on real data points and not feelings.

  11. jarolrod commented at 4:41 am on June 8, 2023: member
    @MarcoFalke withdrew NACK, I’ve misunderstood intentions and outcomes of this PR. It is true that right now outside of checking for build support, this doesn’t do anything for this repo.
  12. glozow commented at 9:23 am on June 8, 2023: member
    ACK fa22538e481fa2c4f0b5d6f91166335e60b67fe9 Agree with removing this task (which doesn’t run any tests) to make room for a more useful task (which does run tests).
  13. maflcko commented at 9:27 am on June 8, 2023: member
    I think it should be fine to re-add this the next time it finds an issue, or when the (unit) tests are run, or some other reason appears to re-add it.
  14. maflcko commented at 10:05 am on June 8, 2023: member

    Another failure on a doc change: https://cirrus-ci.com/task/5213373952950272?logs=ci#L1404

     0  CXX      qt/libbitcoinqt_a-qrc_bitcoin.o
     1  CXX      qt/libbitcoinqt_a-qrc_bitcoin_locale.o
     2  AR       libbitcoin_node.a
     3  AR       libbitcoin_util.a
     4  AR       libbitcoin_wallet.a
     5  AR       libbitcoin_zmq.a
     6  AR       libbitcoin_cli.a
     7  AR       libbitcoin_common.a
     8  AR       libbitcoin_consensus.a
     9  CXXLD    crypto/libbitcoin_crypto_base.la
    10  CXXLD    crypto/libbitcoin_crypto_arm_shani.la
    11  CXXLD    libunivalue.la
    12  CXXLD    leveldb/libleveldb.la
    13  CXXLD    crc32c/libcrc32c.la
    14  CXXLD    leveldb/libmemenv.la
    15  AR       libtest_util.a
    16  AR       qt/libbitcoinqt.a
    17  CXXLD    qt/bitcoin-qt
    18  CXXLD    qt/test/test_bitcoin-qt
    19make[2]: Leaving directory '/tmp/cirrus-ci-build/src'
    20make[1]: Leaving directory '/tmp/cirrus-ci-build/src'
    21Making all in doc/man
    22make[1]: Entering directory '/tmp/cirrus-ci-build/doc/man'
    23make[1]: Nothing to be done for 'all'.
    24make[1]: Leaving directory '/tmp/cirrus-ci-build/doc/man'
    25make[1]: Entering directory '/tmp/cirrus-ci-build'
    26make[1]: Nothing to be done for 'all-am'.
    27make[1]: Leaving directory '/tmp/cirrus-ci-build'
    28+ cd src/qt
    29+ ANDROID_HOME=/tmp/cirrus-ci-build/depends/SDKs/android
    30+ ANDROID_NDK_HOME=/tmp/cirrus-ci-build/depends/SDKs/android/ndk/23.2.8568313
    31+ make apk
    32make -C .. bitcoin_qt_apk
    33make[1]: Entering directory '/tmp/cirrus-ci-build/src'
    34tar: --exclude=*/*: Cannot open: No such file or directory
    35tar: Error is not recoverable: exiting now
    36tar: --exclude=*/*: Cannot open: No such file or directory
    37tar: Error is not recoverable: exiting now
    38mkdir -p qt/android/libs/arm64-v8a
    39cp /tmp/cirrus-ci-build/depends/SDKs/android/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin//../sysroot/usr/lib/aarch64-linux-android/libc++_shared.so qt/android/libs/arm64-v8a
    40tar xf  -C qt/android/src/ src/android/jar/src --strip-components=5
    41tar: -C: Cannot open: No such file or directory
    42tar: Error is not recoverable: exiting now
    43make[1]: *** [Makefile:22313: bitcoin_qt_apk] Error 2
    44make[1]: Leaving directory '/tmp/cirrus-ci-build/src'
    45make: *** [Makefile:11: apk] Error 2
    46Exit status: 2
    
  15. dergoegge commented at 10:16 am on June 8, 2023: member

    can you show an example to back up this claim: “I have only ever seen this task pass (even if all others fail)…” @jarolrod I can’t find the PR this happened on and I’ve only seen that one time but I swear I’m not making this up. The macOS task has other build flags, so it must have been some weird combination of that and tests/lint failing but some builds succeeding.

  16. fanquake merged this on Jun 12, 2023
  17. fanquake closed this on Jun 12, 2023

  18. maflcko deleted the branch on Jun 12, 2023
  19. sidhujag referenced this in commit db90438fc2 on Jun 12, 2023
  20. fanquake referenced this in commit 805f98b79a on Oct 2, 2023
  21. fanquake referenced this in commit 5e51a9cc72 on Oct 2, 2023
  22. fanquake referenced this in commit 9f8d501cb8 on Oct 4, 2023
  23. fanquake referenced this in commit 1416d09cba on Oct 6, 2023
  24. bitcoin locked this on Jun 11, 2024

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-07-03 10:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me