Issue #16360 has been updated by jaruga (Jun Aruga).


> Sure, I will take a look at the code, contact if it's needed and fix.

Hi, possibly I found the cause of this error for `apt-add-repository` command that happens for only Travis s390x environment, and how to avoid it.

```
$ tool/travis_retry.sh sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
+ sudo -E apt-add-repository -y ppa:ubuntu-toolchain-r/test
Error: retrieving gpg key timed out.
```

The cause is by the Travis s390x environment's IPv6 issue.

I reported it to Travis community here.

S390x IPv6 connect system call sometimes returning °»Connection timed out°… in apt-add-repository command
https://travis-ci.community/t/s390x-ipv6-connect-system-call-sometimes-returning-connection-timed-out-in-apt-add-repository-command/6719

I checked `apt-add-repository` command's behavior with `strace` command.

```
$ sudo -E strace -f apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
...
socket(PF_INET6, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 3
connect(3, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "2001:67c:1560:8003::8003", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ETIMEDOUT (Connection timed out)
close(3)                                = 0
socket(PF_INET6, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 3
connect(3, {sa_family=AF_INET6, sin6_port=htons(443), inet_pton(AF_INET6, "2001:67c:1560:8003::8004", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ETIMEDOUT (Connection timed out)
close(3)    
...
pid  1948] futex(0x3ff88000c14, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1578070812, 434829000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid  1948] write(1, "Error: retrieving gpg key timed "..., 37Error: retrieving gpg key timed out.
) = 37
...
```

The temporary workflow to pass s390x-linux case is to disable IPv6 for only s390x-linux case like this.
I executed the simple example's s390x case job 10 times continuously, and all job is passed.

```
- ip a
- sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
- sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
- sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
- ip a
```

Later I will send the pull-request to disable IPv6 on only Travis s390x-linux case.


----------------------------------------
Misc #16360: Enabling IBM PowerPC/Z cases in Travis CI
https://bugs.ruby-lang.org/issues/16360#change-83615

* Author: jaruga (Jun Aruga)
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
We added `arm64-linux` and `arm32-linux` cases to Travis CI by [the ticket](https://bugs.ruby-lang.org/issues/16234).
The `arm32-linux` case is going to be stable after [this pull-request](https://github.com/ruby/ruby/pull/2686) will be merged.

So, I would like to talk about this topic.
Currently Travis CI has following 4 multiple CPU architectures cases.

* `x86_64-linux` (Intel, 64-bit, Little-endian)
* `arm64-linux` (ARM, 64-bit, Little-endian)
* `i686-linux` (Intel, 32-bit, Little-endian)
* `arm32-linux` (ARM, 32-bit, Little-endian)

And a exciting news came from Travis CI this month.
Now Travis supports `arch: ppc64le` and `arch: s390x` as `arch: arm64` as well.

Build your open source projects on IBM Power and IBM Z CPU architecture
https://blog.travis-ci.com/2019-11-12-multi-cpu-architecture-ibm-power-ibm-z


So, how do you think about adding following 2 cases to Travis CI too?

* `ppc64le-linux` (IBM PowerPC, 64-bit, Little-endian)
* `s390x-linux` (IBM Z/Linux One, 64-bit, Big-endian)


## ppc64le, s390x use cases in Ruby project

* Searching tickets in Redmine, there were some architecture specific issues in the past.
* https://rubyci.org/ has s390x. But it seems it does not have ppc64le.
* s390x is a big-endian. It looks good to check the big-endian specific issue.


## ppc64le, s390x use cases in Linux distributions

For example Ubuntu is supporting ppc64le, s390x, providing the container image.

> https://hub.docker.com/_/ubuntu
> Supported architectures: (more info)
> amd64, arm32v7, arm64v8, i386, ppc64le, s390x

Fedora project is supporting ppc64le, s390x too.

> https://hub.docker.com/_/fedora
> Supported architectures: (more info)
> amd64, arm32v7, arm64v8, ppc64le, s390x

Are you interested in adding the ppc64le and s390x test cases to Travis CI?




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>