Skip to content

Add Dockerfile using RBE's Jessie base image#15499

Merged
matt-kwong merged 5 commits intogrpc:masterfrom
matt-kwong:rbe-docker
May 23, 2018
Merged

Add Dockerfile using RBE's Jessie base image#15499
matt-kwong merged 5 commits intogrpc:masterfrom
matt-kwong:rbe-docker

Conversation

@matt-kwong
Copy link
Copy Markdown
Contributor

@matt-kwong matt-kwong commented May 21, 2018

Add a Dockerfile that uses a RBE base image with Clang 7 to run sanitizers.

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: add an explanatory comment what's the image about - the image name is incomprehensible for someone who doesn't have lot of knowledge about foundry/RBE.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done in new Dockerfile

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

as discussed, let's introduce a separate rbe clang image (cxx_sanitizers.. ) and use cxx_jessie_x64 (after removing clang) for running basic C/C++ suites.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

https://github.com/grpc/grpc/blob/master/tools/run_tests/run_tests.py#L526

We actually use the current Jessie Dockerfile for clang3.5. clang3.5 is installed in https://github.com/grpc/grpc/blob/master/tools/dockerfile/test/cxx_jessie_x64/Dockerfile#L73, so we at least have to keep that version of clang, but I'm fine with removing the version installed from source.

Before updating my PR, since I forgot to remove clang, are you ok with the name cxx_rbe_jessie_x64 or do you think cxx_sanitizers_x64 is better?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think cxx_sanitizers_... is better because it's more readable. no one knows what rbe is.

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@matt-kwong matt-kwong changed the title Use RBE's Jessie base image Add Dockerfile using RBE's Jessie base image May 22, 2018
@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we remove <%include file="../../clang_update.include"/> from this file?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think not that many folks know what RBE means -> either add a comment or rename.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Changed the name of the file

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]


****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]



@matt-kwong
Copy link
Copy Markdown
Contributor Author

matt-kwong commented May 23, 2018

@jtattermusch I think this is ready for review. This PR introduces two ASAN C++ failures, both bm_clousure. It introduces at least one TSAN C++ failure, but there might be more failures since we sample tests for most sanitizers.

@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

return 'Makefile'

def _clang_make_options(self, version_suffix=''):
if self.args.config == 'ubsan':
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

why do we need to special-case ubsan?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

CC @nicolasnoble

I'm actually not sure why UBSAN is a special case. If anything, I expect all of the sanitizers to break. Before this change, UBSAN wouldn't build from a linking error because it would use clang instead of clang++ as the LD. Our Makefile specifies that the LD for all sanitizers should be clang++, but I'm guessing run_tests.py overrides that behavior.

Copy link
Copy Markdown
Contributor

@jtattermusch jtattermusch left a comment

Choose a reason for hiding this comment

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

LGTM (but please see the comment about special-casing ubsan).

@grpc-testing
Copy link
Copy Markdown

[microbenchmarks] No significant performance differences

@matt-kwong
Copy link
Copy Markdown
Contributor Author

MacOS failure - #15027

After a master sanitizer build runs all tests, I'll open issues for the new test failures.

@matt-kwong matt-kwong merged commit f30db9d into grpc:master May 23, 2018
@lock lock bot locked as resolved and limited conversation to collaborators Jan 18, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants