Skip to content

Workaround #26279 by publishing manylinux_2_24 wheels instead of manylinux2014 on aarch64#26430

Merged
jtattermusch merged 2 commits intogrpc:masterfrom
jtattermusch:workaround_26279
Jun 7, 2021
Merged

Workaround #26279 by publishing manylinux_2_24 wheels instead of manylinux2014 on aarch64#26430
jtattermusch merged 2 commits intogrpc:masterfrom
jtattermusch:workaround_26279

Conversation

@jtattermusch
Copy link
Copy Markdown
Contributor

Fixes #26279.

Context:

(the armv7l wheels were suffering from the same problem as reported in #26279, so I'm removing static linking of libstdc++ for armv7 as well).

@jtattermusch jtattermusch requested review from gnossen and lidizheng June 4, 2021 11:31
@jtattermusch jtattermusch added release notes: yes Indicates if PR needs to be in release notes lang/Python labels Jun 4, 2021
@jtattermusch
Copy link
Copy Markdown
Contributor Author

If the solution from this PR looks good, I'll backport into v1.38.x branch as well.

Copy link
Copy Markdown
Contributor

@gnossen gnossen left a comment

Choose a reason for hiding this comment

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

Very nice detective work!

If you get the chance, I'd love to know how you figured out the root cause.

Copy link
Copy Markdown
Contributor

@lidizheng lidizheng left a comment

Choose a reason for hiding this comment

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

Great finding!

PythonArtifact('manylinux2014', 'aarch64', 'cp37-cp37m'),
PythonArtifact('manylinux2014', 'aarch64', 'cp38-cp38'),
PythonArtifact('manylinux2014', 'aarch64', 'cp39-cp39'),
PythonArtifact('manylinux_2_24', 'aarch64', 'cp36-cp36m'),
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 you mentioned in #26279 (comment), 3.6 isn't impacted by this bug. Do we want to keep 3.6 wheel on manylinux2014?

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.

I think it's better to stay consistent and leave all the aarch64 wheels as manylinux_2_24.

  • staying consistent is better
  • it seems that something's wrong with libstdc++ in the dockross manylinux image and we don't know what exactly it is, and it could simply be that with python3.6 the reproduction we have happens not to crash, but things could crash under slighly different conditions. it's better to avoid that.
  • specialcasing python3.6 doesn't seem to make sense since python3.6 will go end-of-life later this year.

@jtattermusch
Copy link
Copy Markdown
Contributor Author

Known failures:
#25614

@jtattermusch jtattermusch merged commit 4fb0cce into grpc:master Jun 7, 2021
jtattermusch added a commit to jtattermusch/grpc that referenced this pull request Jun 7, 2021
jtattermusch added a commit to jtattermusch/grpc that referenced this pull request Jun 7, 2021
@jtattermusch
Copy link
Copy Markdown
Contributor Author

FTR, these are the auditwheel outputs for the wheels built on kokoro:

grpcio-1.39.0.dev0-cp38-cp38-manylinux_2_24_aarch64.whl is consistent
with the following platform tag: "manylinux_2_24_aarch64".

The wheel references external versioned symbols in these system-
provided shared libraries: libpthread.so.0 with versions
{'GLIBC_2.17'}, libm.so.6 with versions {'GLIBC_2.17'}, libc.so.6 with
versions {'GLIBC_2.17'}, libstdc++.so.6 with versions {'CXXABI_1.3.5',
'GLIBCXX_3.4.18', 'GLIBCXX_3.4.20', 'CXXABI_1.3', 'GLIBCXX_3.4.9',
'GLIBCXX_3.4.15', 'GLIBCXX_3.4.11', 'GLIBCXX_3.4.17',
'GLIBCXX_3.4.14', 'GLIBCXX_3.4'}
grpcio_tools-1.39.0.dev0-cp38-cp38-manylinux_2_24_aarch64.whl is
consistent with the following platform tag: "manylinux_2_24_aarch64".

The wheel references external versioned symbols in these system-
provided shared libraries: libgcc_s.so.1 with versions {'GCC_3.0',
'GCC_4.2.0'}, libpthread.so.0 with versions {'GLIBC_2.17'}, libc.so.6
with versions {'GLIBC_2.17'}, libstdc++.so.6 with versions
{'GLIBCXX_3.4.11', 'GLIBCXX_3.4.20', 'CXXABI_1.3', 'GLIBCXX_3.4.9',
'GLIBCXX_3.4.14', 'GLIBCXX_3.4', 'CXXABI_1.3.8', 'GLIBCXX_3.4.18',
'CXXABI_1.3.5'}

jtattermusch added a commit that referenced this pull request Jun 7, 2021
* workaround #26279 at the expense of binary compatibility

* correctly tag aarch64 wheels as manylinux_2_24

* remove unnecessary comments left by #26430
apolcyn added a commit that referenced this pull request Jun 17, 2021
* Bump version to v1.38.0-pre1 (#26208)

* Bump version to v1.38.0-pre1

* Regenerate projects

* [Backport][v1.38.x] Add EventEngine's port.h to the podspec (#26222)

Backport of #26220 to v1.38.x. This is the only backport, since the EventEngine code was introduced after v1.37 was cut.

This file is needed for the Objective-C cocoapod build.

* fix xds resolver to add XdsClient to channel args even on errors (#26282) (#26288)

Co-authored-by: Mark D. Roth <[email protected]>

* Backport config update timeout change to v1.38.x (#26276)

* Enable Traffic Director time tracer (#26111)

* Just update the timeout (#26223)

* Increase xds job timeouts (#26187)

* Revert grpc_xds_k8s job timeouts back to 120 mins (#26219)

* Revert grpc_xds_k8s_python timeout to 120mins (#26221)

Seems to have been inadvertently increased in #26187

Co-authored-by: Eric Gribkoff <[email protected]>
Co-authored-by: Yash Tibrewal <[email protected]>

* Bump v1.38.x to v1.38.0  (#26317)

* Bump version to v1.38.0

* Regenerate projects

* Provide custom sponge configs to exclude manual runs from testgrid (#26283) (#26313)

* Provide custom sponge configs

* Correct the script

* Allow test scripts to produce artifacts through Docker

* Overcome the direcotry clone in our docker script

* Expose TESTGRID_EXCLUDE and GIT_ORIGIN_URL through docker run

* Make sanity tests happy

* Revert "Provide custom sponge configs to exclude manual runs from testgrid (#26283) (#26313)" (#26324)

This reverts commit 54dc182.

* better way of building protoc aarch64 artifacts (#26423)

* Backport #26430 and #26435 to v1.38.x (#26436)

* workaround #26279 at the expense of binary compatibility

* correctly tag aarch64 wheels as manylinux_2_24

* remove unnecessary comments left by #26430

* Backport #22964 into v1.38.x (#26448)

* upgrade dotnet SDK 3 for C# build

* add C# global.json

* install dotnet SDK 3 on macos

* upgrade C# docker images to debian buster

* regenerate dockerfiles

* Backport fixes from #26465 to v1.38.x (#26466)

* switch remaining tests to C# buster image

* remove C#'s global.json (which requires dotnet SDK 3+)

* dotnet SDK3 currently breaks C# package build

* regenerate dockerfiles

Co-authored-by: Yash Tibrewal <[email protected]>
Co-authored-by: AJ Heller <[email protected]>
Co-authored-by: donnadionne <[email protected]>
Co-authored-by: Mark D. Roth <[email protected]>
Co-authored-by: Lidi Zheng <[email protected]>
Co-authored-by: Eric Gribkoff <[email protected]>
Co-authored-by: Jan Tattermusch <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lang/Python release notes: yes Indicates if PR needs to be in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

free(): invalid pointer crash on specific import order (on ARM64 linux)

3 participants