addons: `image.rotate` Segfault with TensorFlow 2.2.0rc0 and tf-nightly

System information

  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04):

    • Colab
    • MacOs 10.15.3
  • TensorFlow version and how it was installed (source or binary):

    • !pip install tensorflow==2.2.0rc0
    • !pip install tf-nightly==* # All nightlies I can see are affectd.
  • TensorFlow-Addons version and how it was installed (source or binary):

    • pip install tensorflow_addons==0.8.3
    • pip install tfa-nightly
  • Python version:

    • Colab: 3.6.9
    • macOS: 3.7.5
  • Is GPU used? (yes/no):

    • No.

Describe the bug

tfa.image.rotate segfaults.

It’s the only tfa op I tried.

Code to reproduce the issue

Colab:

https://drive.google.com/open?id=1T5le-3aLhzsxa62uFGOsc6UpzzTEwN3a

Easy to reproduce locally on my macbook.

Other info / logs

See notebook.

I followed it in python up to this line: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/eager/execute.py#L59

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 21 (19 by maintainers)

Most upvoted comments

@gabrieldemarmiesse patch number increase should be compatible

There are multiple RFCs for modularization and to add ABI guarantees. For example, I’m working on https://github.com/tensorflow/community/pull/101 and the general ideas are in https://github.com/tensorflow/community/pull/77

Another reason why there should be a standard way(which IMO should be conda) going forward so that we don’t run into such issues

Agree https://github.com/tensorflow/community/pull/133 is the fix for that but haven’t heard any updates in a while. If that doesn’t happen though then conda first would be great, but there’s still too many python users not on conda to be excluded

I see, I though that even if the same toolchain was used, there was no garantee that the ABI would stay compatible if the C++ code in tensorflow changed. Thanks for the explanation.

Yeah no ABI compatibility between compiler toolchains. When someone uses TFA with conda compiled TF we get a symbol mismatch because the ops are mangled differently (among other possible issues).

If the C++ code in tensorflow is changed it could break if not backwards compatible, but the ops should all be public and stable between minor versions.