From: jaruga@... Date: 2019-12-06T20:21:15+00:00 Subject: [ruby-core:96131] [Ruby master Misc#16360] Enabling IBM PowerPC/Z cases in Travis CI Issue #16360 has been updated by jaruga (Jun Aruga). As I faced `stack level too deep (SystemStackError)` in `socket.rb:897` in `ip_address_list` on only the Travis ppc64le environment, I am debugging it with `strace` command on my forked repository enabling Travis ppc64le here. https://github.com/junaruga/ruby/commits/feature/ppc64le https://travis-ci.org/junaruga/ruby/builds/621767234 ``` $ $SETARCH make -s test-spec MSPECOPT=-ff ... terminated with exception (report_on_exception is true): /home/travis/build/junaruga/ruby/build/.ext/common/socket.rb:897:in `ip_address_list': stack level too deep (SystemStackError) from /home/travis/build/junaruga/ruby/build/.ext/common/socket.rb:897:in `udp_server_sockets' from /home/travis/build/junaruga/ruby/build/.ext/common/socket.rb:1027:in `udp_server_loop' from /home/travis/build/junaruga/ruby/spec/ruby/library/socket/socket/udp_server_loop_spec.rb:7:in `block (4 levels) in ' from /home/travis/build/junaruga/ruby/spec/mspec/lib/mspec/matchers/block_caller.rb:4:in `block in matches?' # terminated with exception (report_on_exception is true): /home/travis/build/junaruga/ruby/build/.ext/common/socket.rb:897:in `ip_address_list': stack level too deep (SystemStackError) from /home/travis/build/junaruga/ruby/build/.ext/common/socket.rb:897:in `udp_server_sockets' from /home/travis/build/junaruga/ruby/spec/ruby/library/socket/fixtures/classes.rb:149:in `udp_server_sockets' from /home/travis/build/junaruga/ruby/build/.ext/common/socket.rb:1027:in `udp_server_loop' from /home/travis/build/junaruga/ruby/spec/ruby/library/socket/socket/udp_server_loop_spec.rb:25:in `block (4 levels) in ' ``` `getsockname`'s `pid=-1334654655` looks weird at https://travis-ci.org/junaruga/ruby/jobs/621767236#L16525 ``` $ strace -f $SETARCH make -s test-spec MSPECOPT=-ff SPECOPTS="../spec/ruby/library/socket/socket/udp_server_loop_spec.rb" ... [pid 17414] <... getsockname resumed> {sa_family=AF_NETLINK, pid=-1334654655, groups=00000000}, [12]) = 0 [pid 17413] <... read resumed> 0x7ffffec81540, 8) = -1 EAGAIN (Resource temporarily unavailable) [pid 17414] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7fb4e1ded7c0} --- .. ``` Could you help it? Thank you. ---------------------------------------- Misc #16360: Enabling IBM PowerPC/Z cases in Travis CI https://bugs.ruby-lang.org/issues/16360#change-83000 * 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: