Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.travis.yml: Upgrade the Ubuntu ppc64le to 22.04 (Jammy). #8739

Merged
merged 4 commits into from
Oct 30, 2023

Conversation

junaruga
Copy link
Member

This PR is to upgrade Travis Ubuntu ppc64le to 22.04 (jammy). Seeing the recent successes on RubyCI ppc64le Ubuntu jammy server, it's time to
change Travis ppc64le to jammy.
http://rubyci.s3.amazonaws.com/ppc64le/ruby-master/recent.html

It seems that the all the Travis cases are failing right now after the commit 9e93af5 .
https://app.travis-ci.com/github/ruby/ruby/builds/266750115

I also plan to disable allow-allow_failures if the Travis CI is stable enough for that, to avoid unintentional new failures.

@junaruga
Copy link
Member Author

It seems when I did git revert for the f717faa, the error was gone.

@junaruga
Copy link
Member Author

I am adding the 3rd commit to pass the make install. That is to revert commit f717faa.

This commit causes the make install failing in Travis CI.
https://app.travis-ci.com/github/ruby/ruby/builds/266750115

$ make -s install
Cloning https://github.com/ruby/rbs
Update rbs to 2cac4e78dfd76e85342ab2c332d3fae046b36961
../.bundle/.timestamp/rbs.revision updated
Building rbs@2cac4e78dfd76e85342ab2c332d3fae046b36961 to ../gems/rbs-3.2.2.gem
The command "make -s install" failed and exited with 2 during .

@junaruga
Copy link
Member Author

junaruga commented Oct 24, 2023

I noticed that Travis ppc64le jammy gcc version is 11.3.0, while RubyCI ppc64le server's gcc version is 11.4.0. I will upgrade Travis ppc64le's gcc version.

I suppose this fixes the current stucking TestFiberQueue#test_pop_with_timeout test issue.
https://app.travis-ci.com/github/junaruga/ruby/jobs/612101995#L2980

@junaruga
Copy link
Member Author

I noticed that the RubyCI ppc64le server's gcc is forcely symbolic linked to the gcc-11 deb package.

https://packages.ubuntu.com/jammy-updates/gcc-11

$ ls /usr/bin/gcc -l
lrwxrwxrwx 1 root root 6 Aug  5  2021 /usr/bin/gcc -> gcc-11

$ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ dpkg -s gcc-11 | grep ^Version
Version: 11.4.0-1ubuntu1~22.04

$ dpkg -s gcc | grep ^Version
Version: 4:11.2.0-1ubuntu1

@junaruga
Copy link
Member Author

Here is the result of Ubuntu jammy s390x server. The gcc-11 is also used as a default gcc.

ruby01|s390x$ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ruby01|s390x$ ls -l /bin/gcc
lrwxrwxrwx 1 root root 6 Aug  5  2021 /bin/gcc -> gcc-11*

@junaruga
Copy link
Member Author

And the default gcc is also gcc-11 on the Ubuntu jammy arm64 server too.

ruby1|aarch64$ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ruby1|aarch64$ ls -l /bin/gcc
lrwxrwxrwx 1 root root 6 Aug  5  2021 /bin/gcc -> gcc-11*

@junaruga
Copy link
Member Author

I see the TestFiberQueue#test_pop_with_timeout Stucking with gcc-11 deb package.

https://app.travis-ci.com/github/ruby/ruby/jobs/612123590#L3101

[1/2] TestFiberQueue#test_pop_with_timeout====[ 1080 seconds still running ]====
====[ 1620 seconds still running ]====
====[ 2160 seconds still running ]====

@junaruga
Copy link
Member Author

junaruga commented Oct 27, 2023

First I want to simplify the .travis.yml to debug and fix the issue easily on another PR #8788 . Then will come back to this PR.

@junaruga junaruga changed the title WIP: .travis.yml: Upgrade the used Ubuntu ppc64le to 22.04 (Jammy). .travis.yml: Upgrade the Ubuntu arm32/ppc64le to 22.04 (Jammy). Oct 27, 2023
@junaruga
Copy link
Member Author

First, I want to upgrade only arm32 case on another PR #8790 . Then I will come back to this PR.

I still see the following issue on Ubuntu jammy ppc64le, and GCC 11.4.0.
https://app.travis-ci.com/github/junaruga/ruby/jobs/612361931#L2930

[1/2] TestFiberQueue#test_pop_with_timeout====[ 1080 seconds still running ]====
====[ 1620 seconds still running ]====
====[ 2160 seconds still running ]====

@junaruga
Copy link
Member Author

@ioquatix I was able to reproduce the TestFiberQueue#test_pop_with_timeout hung up issue on RubyCI ppc64le server. I prepared the reproducing script here. Could you take a look at it? Thanks.

@junaruga junaruga changed the title .travis.yml: Upgrade the Ubuntu arm32/ppc64le to 22.04 (Jammy). .travis.yml: Upgrade the Ubuntu ppc64le to 22.04 (Jammy). Oct 27, 2023
@junaruga
Copy link
Member Author

@ioquatix I sent a PR #8791 to improve the stuck situation.

Seeing the recent successes on RubyCI ppc64le Ubuntu jammy servers, it's time
to upgrade Travis ppc64le to jammy.

http://rubyci.s3.amazonaws.com/ppc64le/ruby-master/recent.html

Upgrade the gcc version to the latest version 11.4.0 to align the gcc
version used in the RubyCI ppc64le server's gcc version.
We want to align the used build flags with RubyCI ppc64le Ubuntu jammy server
as much as possible to avoid Travis specific issues.

Still keep the -O1 for only arm32 due to the following issue.
https://bugs.ruby-lang.org/issues/19981
To avoid unintentional new failures. Feel free to enable it again when the case
is unstable.
* Add notes.
  * When you see Travis issue, please check the link below.
    https://github.com/ruby/ruby/wiki/CI-Servers#travis-ci
  * Added the following random failure.
    The ppc64le failure has been happening randomly in Travis focal/jammy.
    TestRDocGeneratorJsonIndex#test_generate fails randomly.
  https://app.travis-ci.com/github/ruby/ruby/jobs/612380961#L2900
* Update the comments.
* Remove empty lines in nested YAML elements aligning with other parts.
@junaruga junaruga marked this pull request as ready for review October 30, 2023 13:33
@junaruga junaruga merged commit ebb8da5 into ruby:master Oct 30, 2023
98 checks passed
@junaruga junaruga deleted the wip/ci-travis-jammy-ppc64le branch October 30, 2023 14:23
@junaruga
Copy link
Member Author

@ioquatix I was able to reproduce the TestFiberQueue#test_pop_with_timeout hung up issue on RubyCI ppc64le server. I prepared the reproducing script here. Could you take a look at it? Thanks.

It seems that the TestFiberQueue#test_pop_with_timeout issue was gone by removing the optflags=-O1 in Travis ppc64le on this PR's 2nd commit be7d689 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant