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

Reenable s390x platform_dependent travis job #9631

Closed

Conversation

jonathan-albrecht-ibm
Copy link
Contributor

@jonathan-albrecht-ibm jonathan-albrecht-ibm commented Feb 24, 2022

Summary: Fix g++ -march=native detection and reenable s390x in travis

This PR fixes s390x assembler messages:

Error: invalid switch -march=z14
Error: unrecognized option -march=z14

The s390x travis build was failing with gcc-7 because the assembler on
ubuntu 16.04 is too old to recognize the z14 model so it doesn't work
with -march=native on a z14 machine. It fixes the check for the
-march=native flag so that the assembler will get called and correctly
fail on ubuntu 16.04 which will cause the build to fall back to
-march=z196 which works.

The other changes are needed so builds work more consistently on
s390x:

  1. Set make parallelism to 1 for s390x: The default was 4 previously
    but I saw frequent internal compiler errors on travis probably due to
    low resources. The platform_dependent job works more consistently
    but is roughly 10 minutes slower although it varies.
  2. Remove status_checked jobs, as we are relying on CircleCI for
    these now and do not really need platform coverage on them.

Fixes #9524

Test Plan: CI

@pdillinger
Copy link
Contributor

We should really remove the "status_checked" testing from Travis. It is a code hygiene test that doesn't really need to be run of different platforms, so is obsolete on Travis now that it's well covered in CircleCI.

And still seeing

g++-7: internal compiler error: Killed (program cc1plus)

with your changes. https://app.travis-ci.com/github/facebook/rocksdb/jobs/561117356 That failure does seem consistent with OOM killer kicking in, but not sure what else we should do about that.

@jonathan-albrecht-ibm
Copy link
Contributor Author

Thanks for the status_checked info @pdillinger, I can add a commit to remove those jobs if ok to do in this PR.

About the failure, I hadn't thought of the OOM killer causing it. I'm not sure what to do either other than reducing parallelism to 1, let me look at it some more. It looks like there is only about 4GB free and no swap on s390x. I may have just been lucky with my test builds.

@pdillinger
Copy link
Contributor

Thanks for the status_checked info @pdillinger, I can add a commit to remove those jobs if ok to do in this PR.

Yes, please remove it in this PR. Thanks. More justification: we want to minimize unnecessary exposure to random failures and minimize duplicate failures on these platforms. (For example, legit test failures would duplicate as test failures with ASC also.)

@facebook-github-bot
Copy link
Contributor

@pdillinger has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

Copy link
Contributor

@pdillinger pdillinger left a comment

Choose a reason for hiding this comment

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

I'll take it. Thanks!

@jonathan-albrecht-ibm
Copy link
Contributor Author

Thanks @pdillinger!

ajkr pushed a commit that referenced this pull request Mar 7, 2022
Summary:
Fix g++ -march=native detection and reenable s390x in travis

This PR fixes s390x assembler messages:
```
Error: invalid switch -march=z14
Error: unrecognized option -march=z14
```

The s390x travis build was failing with gcc-7 because the assembler on
ubuntu 16.04 is too old to recognize the z14 model so it doesn't work
with -march=native on a z14 machine. It fixes the check for the
-march=native flag so that the assembler will get called and correctly
fail on ubuntu 16.04 which will cause the build to fall back to
-march=z196 which works.

The other changes are needed so builds work more consistently on
s390x:

1. Set make parallelism to 1 for s390x: The default was 4 previously
but I saw frequent internal compiler errors on travis probably due to
low resources. The `platform_dependent` job works more consistently
but is roughly 10 minutes slower although it varies.
2. Remove status_checked jobs, as we are relying on CircleCI for
these now and do not really need platform coverage on them.

Fixes #9524

Pull Request resolved: #9631

Test Plan: CI

Reviewed By: ajkr

Differential Revision: D34553989

Pulled By: pdillinger

fbshipit-source-id: a6e3a7276446721c4c0bebc4ed217c2ca2b53f11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Travis s390x Makefile builds broken with gcc-7
3 participants