Keras 3 and TF 16.1 support
evgri243 opened this issue · comments
TensorFlow seems to be diverging towards Keras 3 after 2.16. Do you have any visibility when TFF may be migrated to Keras 3 as well? We would like to fine-tune a LLama-like model in TFF setting, and its implementation has been completed only in keras-nlp 0.9.3, which is pinned to TF 2.16.1 and Keras 3.
I know migration to Keras 3 is a big way forward even if strictly restricted to TF backends only. A few mentions:
- TensorFlow Probability as of 2.14 allows Keras 3 to be installed, but internally runs on Keras 2 provided with tf_keras package.
- TensorFlow Compression passes the tests when forced to Keras 3 with tf_keras installed due to missing imports and TF_USE_LEGACY_KERAS=1 set to influence the behavior of tf.keras module.
Describe the solution you'd like
TFF supports Keras 3 out of the box.
Describe alternatives you've considered
No other easy alternative to use modern models with TFF to my knowledge.
Generally, supporting Keras 3 seems like a good way forward as it is slowly getting populated with popular models. I generally support the initiative and all the work to implement core models there.
Adding @michaelreneer for visibility. @michaelreneer I remember you mentioning goals to clean the dependency tree or at least make it optional. Can this work be of any help here to avoid being blocked by dependencies at least?
An update on dependencies.
Since 0.24, tensorflow-probability can be installed alongside Keras 3, but requires the now "legacy" tf_keras to be installed as well.
The latest tensorflow-compression 2.16 when forced to TFF 2.16 and Keras 3 requires tf_keras to be installed and additional environment variable TF_USE_LEGACY_KERAS=1 to be set to pass the tests. The variable practically controls whether tf.keras points to Keras 2 or Keras 3.
As far as I understand, both libraries still rely completely on Keras 2, and I wonder if TFF actually cares about what these libraries use (e.g. uses their computation graph) or just rely on their black-boxed functionality.
As for TFF itself, I see heavy dependence on Keras 2 API in implementation, which, as far as I understand, means considerable reimplementation for Keras 3...
Sounds like a dependency hell if you ask me.
Maybe we can simplify the dependency troubles. Lets brainstorm...
- Remove the dependency on
tensorflow-compression
, I've had this as a low priority todo for a while now. - Update the TF Bazel WORKSPACE dep.
- Update the TF Python dep.
- Update
tensorflow-privacy
's TF dependency, https://github.com/tensorflow/privacy/blob/master/setup.py, this may mean updating transient deps:tensorflow-probability
- ...
tensorflow-model-optimization
's TF dependency might be fine, https://github.com/tensorflow/model-optimization/blob/master/setup.py- Then there is the usage of keras in TFF that you mentioned.
I think
- 1 can be decoupled from the rest of the work completely.
- 2 and 3 are quick and easy and will reveal issues in the Bazel environment and within the Python dependency resolution.
- 4 and 5 may be very difficult to get all of our dependencies using the new Keras API or it may be very easy. Note I believe that tensorflow-privacy is going to be difficult to update.
- Regarding 6... after there is a PR with 2 and 3 and all the transient deps are updated, then we should be able to see if there is any runtime issues
Does this somewhat match your thinking?
Yeah, I guess.
Compression seems easy removable. Apart from a elias_gamma_encode.py that may be hidden behind a conditional import, there is only a weird dependency in worker_binary which I can't find being used even transitively.
I'll try to brute-force transitive dependencies tomorrow to see if we can make it kinda work. I am afraid that Keras 3 claims a public API "compatibility", but I'd guess TFF uses slightly more than public API on the go. And taking all Keras 3 story is about the ubiquitous runtime, I'd assume the graph part being extensively updated. Nevertheless, there is only a single way to find out.
Yeah I would recommend a few flags I imagine you are not using when trying to test...
--build_tag_filters="${tag_filters}"
--test_size_filters=small,medium,large
--test_timeout_filters=short,moderate,long
--test_tag_filters="${tag_filters}"
Where tag_filters
is:
-nokokoro
-requires-gpu-nvidia,-requires-jellyfish
for CPUrequires-gpu-nvidia
for GPU-nopresubmit
if you want to exclude larger tests that are only run continuously and do not block.
I think you probably want something like this
bazelisk test \
--build_tag_filters="-nokokoro,-requires-gpu-nvidia,-requires-jellyfish,-nopresubmit" \
--test_size_filters="small,medium,large" \
--test_timeout_filters="short,moderate,long" \
--test_tag_filters="-nokokoro,-requires-gpu-nvidia,-requires-jellyfish,-nopresubmit" \
//tensorflow_federated/...
@michaelreneer Thanks for the filters! it works with them on main as a baseline.
Small status update. It seems like usage of Compression and Privacy are quite limited to gamma Elias Gamma and Differential Privacy. After some consideration, I just removed them from dependencies now to see how the main body is affected by Keras.
Well, TF 2.16.1 made a few major changes to Bazel dependencies, which I'm still trying to figure out. If interested, the latest for today is here: https://github.com/evgri243/tensorflow-federated/tree/evgri243/keras3-support Not much yet, stabilizing the build.
It seems like there is a story around grpc in WORKSAPCE file, so that, just to ask: any chance it looks familiar? Otherwise, I'll continue exploring what has actually changed.
`# bazel test //tensorflow_federated/...` (click to open)
WARNING: The following configs were expanded more than once: [v2]. For repeatable flags, repeats are counted twice and may lead to unexpected behavior.
INFO: Reading 'startup' options from /mnt/jetbrains/work/tensorflow-federated/.bazelrc: --host_jvm_args=-Dbazel.DigestFunction=SHA256
INFO: Options provided by the client:
Inherited 'common' options: --isatty=1 --terminal_columns=171
INFO: Reading rc options for 'test' from /mnt/jetbrains/work/tensorflow-federated/.bazelrc:
Inherited 'common' options: --announce_rc --enable_platform_specific_config --experimental_repo_remote_exec
INFO: Reading rc options for 'test' from /mnt/jetbrains/work/tensorflow-federated/.bazelrc:
Inherited 'build' options: --verbose_failures --spawn_strategy=local --compilation_mode=opt --define=allow_oversize_protos=true --copt=-march=haswell --host_copt=-march=haswell --copt=-O3 --define=grpc_no_ares=true --noincompatible_remove_legacy_whole_archive --define=with_xla_support=true --config=short_logs --config=v2 --define=no_aws_support=true --define=no_hdfs_support=true --experimental_cc_shared_library --experimental_link_static_libraries_once=false --config=v2 --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=1 --define=build_with_onednn_v2=true --build_tag_filters=-nokokoro,-requires-gpu-nvidia,-requires-jellyfish,-nopresubmit
INFO: Reading rc options for 'test' from /mnt/jetbrains/work/tensorflow-federated/.bazelrc:
'test' options: --test_output=errors --test_summary=detailed --test_tag_filters=-nokokoro,-requires-gpu-nvidia,-requires-jellyfish,-nopresubmit --test_size_filters=small,medium,large --test_timeout_filters=short,moderate,long --test_tag_filters=-nokokoro,-requires-gpu-nvidia,-requires-jellyfish,-nopresubmit
INFO: Found applicable config definition build:short_logs in file /mnt/jetbrains/work/tensorflow-federated/.bazelrc: --output_filter=DONT_MATCH_ANYTHING
INFO: Found applicable config definition build:v2 in file /mnt/jetbrains/work/tensorflow-federated/.bazelrc: --define=tf_api_version=2 --action_env=TF2_BEHAVIOR=1
INFO: Found applicable config definition build:v2 in file /mnt/jetbrains/work/tensorflow-federated/.bazelrc: --define=tf_api_version=2 --action_env=TF2_BEHAVIOR=1
INFO: Found applicable config definition build:linux in file /mnt/jetbrains/work/tensorflow-federated/.bazelrc: --copt=-w --host_copt=-w --define=PREFIX=/usr --define=LIBDIR=$(PREFIX)/lib --define=INCLUDEDIR=$(PREFIX)/include --define=PROTOBUF_INCLUDE_PATH=$(PREFIX)/include --cxxopt=-std=c++17 --host_cxxopt=-std=c++17 --experimental_guard_against_concurrent_changes
WARNING: The following configs were expanded more than once: [v2]. For repeatable flags, repeats are counted twice and may lead to unexpected behavior.
INFO: Analyzed 681 targets (28 packages loaded, 9190 targets configured).
INFO: Found 422 targets and 259 test targets...
ERROR: /root/.cache/bazel/_bazel_root/f9c2c3654392974eb9cabda3d8ebefac/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/BUILD.bazel:5:12: Executing genrule @com_github_grpc_grpc//src/python/grpcio/grpc/_cython:cygrpc.pyx_cython_translation failed: (Exit 1): bash failed: error executing command (from target @com_github_grpc_grpc//src/python/grpcio/grpc/_cython:cygrpc.pyx_cython_translation)
(cd /root/.cache/bazel/_bazel_root/f9c2c3654392974eb9cabda3d8ebefac/execroot/org_tensorflow_federated && \
exec env - \
PATH=/root/.cache/bazelisk/downloads/sha256/a40ac69263440761199fcb8da47ad4e3f328cbe79ffbf4ecc14e5ba252857307/bin:/mnt/jetbrains/work/tensorflow-federated/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/mnt/jetbrains/system/bin \
TF2_BEHAVIOR=1 \
/bin/bash -c 'source external/bazel_tools/tools/genrule/genrule-setup.sh; PYTHONHASHSEED=0 bazel-out/k8-opt-exec-50AE0418/bin/external/cython/cython_binary --cplus external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.pyx --output-file bazel-out/k8-opt/bin/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.cpp')
# Configuration: 9558a6e0a1ca24da15b434b41828e84c814f8adea5c3bc783ba89ad84712f971
# Execution platform: @local_execution_config_platform//:platform
/root/.cache/bazel/_bazel_root/f9c2c3654392974eb9cabda3d8ebefac/external/cython/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /root/.cache/bazel/_bazel_root/f9c2c3654392974eb9cabda3d8ebefac/execroot/org_tensorflow_federated/external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
warning: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.pxd:39:0: The 'IF' statement is deprecated and will be removed in a future Cython version. Consider using runtime conditions or C macros instead. See https://github.com/cython/cython/issues/4310
warning: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/cygrpc.pyx:53:0: The 'IF' statement is deprecated and will be removed in a future Cython version. Consider using runtime conditions or C macros instead. See https://github.com/cython/cython/issues/4310
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi:60:5: Exception check on '_destroy' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi:296:5: Exception check on '_server_cert_config_fetcher_wrapper' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi:21:5: Exception check on '_copy_slice' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi:26:5: Exception check on '_slice_from_bytes' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi:20:5: Exception check on 'ssl_roots_override_callback' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:71:5: Exception check on 'socket_connect' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:86:5: Exception check on 'socket_destroy' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:89:5: Exception check on 'socket_shutdown' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:96:5: Exception check on 'socket_close' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:136:5: Exception check on 'socket_write' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:164:5: Exception check on 'socket_read' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:252:5: Exception check on 'socket_accept' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:287:5: Exception check on 'socket_resolve_async' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:329:5: Exception check on 'timer_start' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:335:5: Exception check on 'timer_stop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:343:5: Exception check on 'init_loop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:346:5: Exception check on 'destroy_loop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:349:5: Exception check on 'kick_loop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:352:5: Exception check on 'run_loop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi:42:5: Exception check on '__prefork' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi:56:5: Exception check on '__postfork_parent' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi:63:5: Exception check on '__postfork_child' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:40:5: Exception check on 'asyncio_socket_destroy' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:44:5: Exception check on 'asyncio_socket_connect' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:55:5: Exception check on 'asyncio_socket_close' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:63:5: Exception check on 'asyncio_socket_shutdown' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:68:5: Exception check on 'asyncio_socket_write' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:76:5: Exception check on 'asyncio_socket_read' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:155:5: Exception check on 'asyncio_socket_accept' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:170:5: Exception check on 'asyncio_resolve_async' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:178:5: Exception check on 'asyncio_timer_start' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:184:5: Exception check on 'asyncio_timer_stop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:190:5: Exception check on 'asyncio_init_loop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:194:5: Exception check on 'asyncio_destroy_loop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:198:5: Exception check on 'asyncio_kick_loop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:202:5: Exception check on 'asyncio_run_loop' will always require the GIL to be acquired. Possible solutions:
1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
2. Use an 'int' return type on the function to allow an error code to be returned.
Error compiling Cython file:
------------------------------------------------------------
...
return 1
else:
return 0
cdef grpc_arg_pointer_vtable default_vtable
default_vtable.copy = &_copy_pointer
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi:34:22: Cannot assign type 'void *(*)(void *) except? NULL' to 'void *(*)(void *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void *(void *) except? NULL'.
Error compiling Cython file:
------------------------------------------------------------
...
else:
return 0
cdef grpc_arg_pointer_vtable default_vtable
default_vtable.copy = &_copy_pointer
default_vtable.destroy = &_destroy_pointer
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi:35:25: Cannot assign type 'void (*)(void *) except *' to 'void (*)(void *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *) except *'.
Error compiling Cython file:
------------------------------------------------------------
...
return 0
cdef grpc_arg_pointer_vtable default_vtable
default_vtable.copy = &_copy_pointer
default_vtable.destroy = &_destroy_pointer
default_vtable.cmp = &_compare_pointer
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi:36:21: Cannot assign type 'int (*)(void *, void *) except? -1' to 'int (*)(void *, void *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'int (void *, void *) except? -1'.
Error compiling Cython file:
------------------------------------------------------------
...
cdef grpc_ssl_server_credentials_options* c_options = NULL
c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(
GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
if force_client_auth else
GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
_server_cert_config_fetcher_wrapper,
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi:290:4: Cannot assign type 'grpc_ssl_certificate_config_reload_status (void *, grpc_ssl_server_certificate_config **) except * nogil' to 'grpc_ssl_server_certificate_config_callback'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_ssl_certificate_config_reload_status (void *, grpc_ssl_server_certificate_config **) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
def cb_func(cb, args):
_spawn_greenlet(cb, *args)
set_async_callback_func(cb_func)
gevent_resolver_vtable.resolve = socket_resolve
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:392:35: Cannot assign type 'grpc_error *(char *, char *, grpc_resolved_addresses **) except? NULL nogil' to 'grpc_error *(*)(char *, char *, grpc_resolved_addresses **) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(char *, char *, grpc_resolved_addresses **) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
def cb_func(cb, args):
_spawn_greenlet(cb, *args)
set_async_callback_func(cb_func)
gevent_resolver_vtable.resolve = socket_resolve
gevent_resolver_vtable.resolve_async = socket_resolve_async
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:393:41: Cannot assign type 'void (grpc_custom_resolver *, char *, char *) except * nogil' to 'void (*)(grpc_custom_resolver *, char *, char *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_resolver *, char *, char *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
set_async_callback_func(cb_func)
gevent_resolver_vtable.resolve = socket_resolve
gevent_resolver_vtable.resolve_async = socket_resolve_async
gevent_socket_vtable.init = socket_init
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:395:30: Cannot assign type 'grpc_error *(grpc_custom_socket *, int) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *, int) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *, int) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_resolver_vtable.resolve = socket_resolve
gevent_resolver_vtable.resolve_async = socket_resolve_async
gevent_socket_vtable.init = socket_init
gevent_socket_vtable.connect = socket_connect
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:396:33: Cannot assign type 'void (grpc_custom_socket *, const grpc_sockaddr *, size_t, grpc_custom_connect_callback) except * nogil' to 'void (*)(grpc_custom_socket *, const grpc_sockaddr *, size_t, grpc_custom_connect_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, const grpc_sockaddr *, size_t, grpc_custom_connect_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_resolver_vtable.resolve = socket_resolve
gevent_resolver_vtable.resolve_async = socket_resolve_async
gevent_socket_vtable.init = socket_init
gevent_socket_vtable.connect = socket_connect
gevent_socket_vtable.destroy = socket_destroy
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:397:33: Cannot assign type 'void (grpc_custom_socket *) except * nogil' to 'void (*)(grpc_custom_socket *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_resolver_vtable.resolve_async = socket_resolve_async
gevent_socket_vtable.init = socket_init
gevent_socket_vtable.connect = socket_connect
gevent_socket_vtable.destroy = socket_destroy
gevent_socket_vtable.shutdown = socket_shutdown
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:398:34: Cannot assign type 'void (grpc_custom_socket *) except * nogil' to 'void (*)(grpc_custom_socket *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.init = socket_init
gevent_socket_vtable.connect = socket_connect
gevent_socket_vtable.destroy = socket_destroy
gevent_socket_vtable.shutdown = socket_shutdown
gevent_socket_vtable.close = socket_close
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:399:31: Cannot assign type 'void (grpc_custom_socket *, grpc_custom_close_callback) except * nogil' to 'void (*)(grpc_custom_socket *, grpc_custom_close_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, grpc_custom_close_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.init = socket_init
gevent_socket_vtable.connect = socket_connect
gevent_socket_vtable.destroy = socket_destroy
gevent_socket_vtable.shutdown = socket_shutdown
gevent_socket_vtable.close = socket_close
gevent_socket_vtable.write = socket_write
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:400:31: Cannot assign type 'void (grpc_custom_socket *, grpc_slice_buffer *, grpc_custom_write_callback) except * nogil' to 'void (*)(grpc_custom_socket *, grpc_slice_buffer *, grpc_custom_write_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, grpc_slice_buffer *, grpc_custom_write_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.connect = socket_connect
gevent_socket_vtable.destroy = socket_destroy
gevent_socket_vtable.shutdown = socket_shutdown
gevent_socket_vtable.close = socket_close
gevent_socket_vtable.write = socket_write
gevent_socket_vtable.read = socket_read
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:401:30: Cannot assign type 'void (grpc_custom_socket *, char *, size_t, grpc_custom_read_callback) except * nogil' to 'void (*)(grpc_custom_socket *, char *, size_t, grpc_custom_read_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, char *, size_t, grpc_custom_read_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.destroy = socket_destroy
gevent_socket_vtable.shutdown = socket_shutdown
gevent_socket_vtable.close = socket_close
gevent_socket_vtable.write = socket_write
gevent_socket_vtable.read = socket_read
gevent_socket_vtable.getpeername = socket_getpeername
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:402:37: Cannot assign type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, int *) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *, const grpc_sockaddr *, int *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, int *) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.shutdown = socket_shutdown
gevent_socket_vtable.close = socket_close
gevent_socket_vtable.write = socket_write
gevent_socket_vtable.read = socket_read
gevent_socket_vtable.getpeername = socket_getpeername
gevent_socket_vtable.getsockname = socket_getsockname
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:403:37: Cannot assign type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, int *) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *, const grpc_sockaddr *, int *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, int *) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.close = socket_close
gevent_socket_vtable.write = socket_write
gevent_socket_vtable.read = socket_read
gevent_socket_vtable.getpeername = socket_getpeername
gevent_socket_vtable.getsockname = socket_getsockname
gevent_socket_vtable.bind = socket_bind
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:404:30: Cannot assign type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, size_t, int) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *, const grpc_sockaddr *, size_t, int) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, size_t, int) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.write = socket_write
gevent_socket_vtable.read = socket_read
gevent_socket_vtable.getpeername = socket_getpeername
gevent_socket_vtable.getsockname = socket_getsockname
gevent_socket_vtable.bind = socket_bind
gevent_socket_vtable.listen = socket_listen
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:405:32: Cannot assign type 'grpc_error *(grpc_custom_socket *) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.read = socket_read
gevent_socket_vtable.getpeername = socket_getpeername
gevent_socket_vtable.getsockname = socket_getsockname
gevent_socket_vtable.bind = socket_bind
gevent_socket_vtable.listen = socket_listen
gevent_socket_vtable.accept = socket_accept
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:406:32: Cannot assign type 'void (grpc_custom_socket *, grpc_custom_socket *, grpc_custom_accept_callback) except * nogil' to 'void (*)(grpc_custom_socket *, grpc_custom_socket *, grpc_custom_accept_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, grpc_custom_socket *, grpc_custom_accept_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.getsockname = socket_getsockname
gevent_socket_vtable.bind = socket_bind
gevent_socket_vtable.listen = socket_listen
gevent_socket_vtable.accept = socket_accept
gevent_timer_vtable.start = timer_start
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:408:30: Cannot assign type 'void (grpc_custom_timer *) except * nogil' to 'void (*)(grpc_custom_timer *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_timer *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.bind = socket_bind
gevent_socket_vtable.listen = socket_listen
gevent_socket_vtable.accept = socket_accept
gevent_timer_vtable.start = timer_start
gevent_timer_vtable.stop = timer_stop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:409:29: Cannot assign type 'void (grpc_custom_timer *) except * nogil' to 'void (*)(grpc_custom_timer *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_timer *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_socket_vtable.accept = socket_accept
gevent_timer_vtable.start = timer_start
gevent_timer_vtable.stop = timer_stop
gevent_pollset_vtable.init = init_loop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:411:31: Cannot assign type 'void (void) except * nogil' to 'void (*)(void) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_timer_vtable.start = timer_start
gevent_timer_vtable.stop = timer_stop
gevent_pollset_vtable.init = init_loop
gevent_pollset_vtable.poll = run_loop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:412:31: Cannot assign type 'void (size_t) except * nogil' to 'void (*)(size_t) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (size_t) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_timer_vtable.start = timer_start
gevent_timer_vtable.stop = timer_stop
gevent_pollset_vtable.init = init_loop
gevent_pollset_vtable.poll = run_loop
gevent_pollset_vtable.kick = kick_loop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:413:31: Cannot assign type 'void (void) except * nogil' to 'void (*)(void) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
gevent_timer_vtable.stop = timer_stop
gevent_pollset_vtable.init = init_loop
gevent_pollset_vtable.poll = run_loop
gevent_pollset_vtable.kick = kick_loop
gevent_pollset_vtable.shutdown = destroy_loop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:414:35: Cannot assign type 'void (void) except * nogil' to 'void (*)(void) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
def fork_handlers_and_grpc_init():
grpc_init()
if _GRPC_ENABLE_FORK_SUPPORT:
with _fork_state.fork_handler_registered_lock:
if not _fork_state.fork_handler_registered:
pthread_atfork(&__prefork, &__postfork_parent, &__postfork_child)
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi:98:31: Cannot assign type 'void (*)(void) except * nogil' to 'void (*)(void) noexcept nogil'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
def fork_handlers_and_grpc_init():
grpc_init()
if _GRPC_ENABLE_FORK_SUPPORT:
with _fork_state.fork_handler_registered_lock:
if not _fork_state.fork_handler_registered:
pthread_atfork(&__prefork, &__postfork_parent, &__postfork_child)
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi:98:43: Cannot assign type 'void (*)(void) except * nogil' to 'void (*)(void) noexcept nogil'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
def fork_handlers_and_grpc_init():
grpc_init()
if _GRPC_ENABLE_FORK_SUPPORT:
with _fork_state.fork_handler_registered_lock:
if not _fork_state.fork_handler_registered:
pthread_atfork(&__prefork, &__postfork_parent, &__postfork_child)
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi:98:63: Cannot assign type 'void (*)(void) except * nogil' to 'void (*)(void) noexcept nogil'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
cdef void asyncio_run_loop(size_t timeout_ms) with gil:
pass
def install_asyncio_iomgr():
asyncio_resolver_vtable.resolve = asyncio_resolve
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:207:38: Cannot assign type 'grpc_error *(char *, char *, grpc_resolved_addresses **) except? NULL nogil' to 'grpc_error *(*)(char *, char *, grpc_resolved_addresses **) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(char *, char *, grpc_resolved_addresses **) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
pass
def install_asyncio_iomgr():
asyncio_resolver_vtable.resolve = asyncio_resolve
asyncio_resolver_vtable.resolve_async = asyncio_resolve_async
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:208:44: Cannot assign type 'void (grpc_custom_resolver *, char *, char *) except * nogil' to 'void (*)(grpc_custom_resolver *, char *, char *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_resolver *, char *, char *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
def install_asyncio_iomgr():
asyncio_resolver_vtable.resolve = asyncio_resolve
asyncio_resolver_vtable.resolve_async = asyncio_resolve_async
asyncio_socket_vtable.init = asyncio_socket_init
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:210:33: Cannot assign type 'grpc_error *(grpc_custom_socket *, int) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *, int) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *, int) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
def install_asyncio_iomgr():
asyncio_resolver_vtable.resolve = asyncio_resolve
asyncio_resolver_vtable.resolve_async = asyncio_resolve_async
asyncio_socket_vtable.init = asyncio_socket_init
asyncio_socket_vtable.connect = asyncio_socket_connect
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:211:36: Cannot assign type 'void (grpc_custom_socket *, const grpc_sockaddr *, size_t, grpc_custom_connect_callback) except * nogil' to 'void (*)(grpc_custom_socket *, const grpc_sockaddr *, size_t, grpc_custom_connect_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, const grpc_sockaddr *, size_t, grpc_custom_connect_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_resolver_vtable.resolve = asyncio_resolve
asyncio_resolver_vtable.resolve_async = asyncio_resolve_async
asyncio_socket_vtable.init = asyncio_socket_init
asyncio_socket_vtable.connect = asyncio_socket_connect
asyncio_socket_vtable.destroy = asyncio_socket_destroy
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:212:36: Cannot assign type 'void (grpc_custom_socket *) except * nogil' to 'void (*)(grpc_custom_socket *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_resolver_vtable.resolve_async = asyncio_resolve_async
asyncio_socket_vtable.init = asyncio_socket_init
asyncio_socket_vtable.connect = asyncio_socket_connect
asyncio_socket_vtable.destroy = asyncio_socket_destroy
asyncio_socket_vtable.shutdown = asyncio_socket_shutdown
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:213:37: Cannot assign type 'void (grpc_custom_socket *) except * nogil' to 'void (*)(grpc_custom_socket *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.init = asyncio_socket_init
asyncio_socket_vtable.connect = asyncio_socket_connect
asyncio_socket_vtable.destroy = asyncio_socket_destroy
asyncio_socket_vtable.shutdown = asyncio_socket_shutdown
asyncio_socket_vtable.close = asyncio_socket_close
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:214:34: Cannot assign type 'void (grpc_custom_socket *, grpc_custom_close_callback) except * nogil' to 'void (*)(grpc_custom_socket *, grpc_custom_close_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, grpc_custom_close_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.init = asyncio_socket_init
asyncio_socket_vtable.connect = asyncio_socket_connect
asyncio_socket_vtable.destroy = asyncio_socket_destroy
asyncio_socket_vtable.shutdown = asyncio_socket_shutdown
asyncio_socket_vtable.close = asyncio_socket_close
asyncio_socket_vtable.write = asyncio_socket_write
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:215:34: Cannot assign type 'void (grpc_custom_socket *, grpc_slice_buffer *, grpc_custom_write_callback) except * nogil' to 'void (*)(grpc_custom_socket *, grpc_slice_buffer *, grpc_custom_write_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, grpc_slice_buffer *, grpc_custom_write_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.connect = asyncio_socket_connect
asyncio_socket_vtable.destroy = asyncio_socket_destroy
asyncio_socket_vtable.shutdown = asyncio_socket_shutdown
asyncio_socket_vtable.close = asyncio_socket_close
asyncio_socket_vtable.write = asyncio_socket_write
asyncio_socket_vtable.read = asyncio_socket_read
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:216:33: Cannot assign type 'void (grpc_custom_socket *, char *, size_t, grpc_custom_read_callback) except * nogil' to 'void (*)(grpc_custom_socket *, char *, size_t, grpc_custom_read_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, char *, size_t, grpc_custom_read_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.destroy = asyncio_socket_destroy
asyncio_socket_vtable.shutdown = asyncio_socket_shutdown
asyncio_socket_vtable.close = asyncio_socket_close
asyncio_socket_vtable.write = asyncio_socket_write
asyncio_socket_vtable.read = asyncio_socket_read
asyncio_socket_vtable.getpeername = asyncio_socket_getpeername
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:217:40: Cannot assign type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, int *) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *, const grpc_sockaddr *, int *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, int *) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.shutdown = asyncio_socket_shutdown
asyncio_socket_vtable.close = asyncio_socket_close
asyncio_socket_vtable.write = asyncio_socket_write
asyncio_socket_vtable.read = asyncio_socket_read
asyncio_socket_vtable.getpeername = asyncio_socket_getpeername
asyncio_socket_vtable.getsockname = asyncio_socket_getsockname
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:218:40: Cannot assign type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, int *) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *, const grpc_sockaddr *, int *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, int *) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.close = asyncio_socket_close
asyncio_socket_vtable.write = asyncio_socket_write
asyncio_socket_vtable.read = asyncio_socket_read
asyncio_socket_vtable.getpeername = asyncio_socket_getpeername
asyncio_socket_vtable.getsockname = asyncio_socket_getsockname
asyncio_socket_vtable.bind = asyncio_socket_bind
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:219:33: Cannot assign type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, size_t, int) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *, const grpc_sockaddr *, size_t, int) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *, const grpc_sockaddr *, size_t, int) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.write = asyncio_socket_write
asyncio_socket_vtable.read = asyncio_socket_read
asyncio_socket_vtable.getpeername = asyncio_socket_getpeername
asyncio_socket_vtable.getsockname = asyncio_socket_getsockname
asyncio_socket_vtable.bind = asyncio_socket_bind
asyncio_socket_vtable.listen = asyncio_socket_listen
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:220:35: Cannot assign type 'grpc_error *(grpc_custom_socket *) except? NULL nogil' to 'grpc_error *(*)(grpc_custom_socket *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'grpc_error *(grpc_custom_socket *) except? NULL nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.read = asyncio_socket_read
asyncio_socket_vtable.getpeername = asyncio_socket_getpeername
asyncio_socket_vtable.getsockname = asyncio_socket_getsockname
asyncio_socket_vtable.bind = asyncio_socket_bind
asyncio_socket_vtable.listen = asyncio_socket_listen
asyncio_socket_vtable.accept = asyncio_socket_accept
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:221:35: Cannot assign type 'void (grpc_custom_socket *, grpc_custom_socket *, grpc_custom_accept_callback) except * nogil' to 'void (*)(grpc_custom_socket *, grpc_custom_socket *, grpc_custom_accept_callback) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_socket *, grpc_custom_socket *, grpc_custom_accept_callback) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.getsockname = asyncio_socket_getsockname
asyncio_socket_vtable.bind = asyncio_socket_bind
asyncio_socket_vtable.listen = asyncio_socket_listen
asyncio_socket_vtable.accept = asyncio_socket_accept
asyncio_timer_vtable.start = asyncio_timer_start
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:223:33: Cannot assign type 'void (grpc_custom_timer *) except * nogil' to 'void (*)(grpc_custom_timer *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_timer *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.bind = asyncio_socket_bind
asyncio_socket_vtable.listen = asyncio_socket_listen
asyncio_socket_vtable.accept = asyncio_socket_accept
asyncio_timer_vtable.start = asyncio_timer_start
asyncio_timer_vtable.stop = asyncio_timer_stop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:224:32: Cannot assign type 'void (grpc_custom_timer *) except * nogil' to 'void (*)(grpc_custom_timer *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_custom_timer *) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_socket_vtable.accept = asyncio_socket_accept
asyncio_timer_vtable.start = asyncio_timer_start
asyncio_timer_vtable.stop = asyncio_timer_stop
asyncio_pollset_vtable.init = asyncio_init_loop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:226:34: Cannot assign type 'void (void) except * nogil' to 'void (*)(void) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_timer_vtable.start = asyncio_timer_start
asyncio_timer_vtable.stop = asyncio_timer_stop
asyncio_pollset_vtable.init = asyncio_init_loop
asyncio_pollset_vtable.poll = asyncio_run_loop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:227:34: Cannot assign type 'void (size_t) except * nogil' to 'void (*)(size_t) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (size_t) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_timer_vtable.start = asyncio_timer_start
asyncio_timer_vtable.stop = asyncio_timer_stop
asyncio_pollset_vtable.init = asyncio_init_loop
asyncio_pollset_vtable.poll = asyncio_run_loop
asyncio_pollset_vtable.kick = asyncio_kick_loop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:228:34: Cannot assign type 'void (void) except * nogil' to 'void (*)(void) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
asyncio_timer_vtable.stop = asyncio_timer_stop
asyncio_pollset_vtable.init = asyncio_init_loop
asyncio_pollset_vtable.poll = asyncio_run_loop
asyncio_pollset_vtable.kick = asyncio_kick_loop
asyncio_pollset_vtable.shutdown = asyncio_destroy_loop
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/iomgr/iomgr.pyx.pxi:229:38: Cannot assign type 'void (void) except * nogil' to 'void (*)(void) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void) except * nogil'.
Error compiling Cython file:
------------------------------------------------------------
...
cdef class CallbackWrapper:
def __cinit__(self, object future, CallbackFailureHandler failure_handler):
self.context.functor.functor_run = self.functor_run
^
------------------------------------------------------------
external/com_github_grpc_grpc/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi:36:47: Cannot assign type 'void (grpc_experimental_completion_queue_functor *, int) except *' to 'void (*)(grpc_experimental_completion_queue_functor *, int) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (grpc_experimental_completion_queue_functor *, int) except *'.
INFO: Elapsed time: 8.259s, Critical Path: 6.91s
INFO: 30 processes: 18 internal, 12 local.
FAILED: Build did NOT complete successfully
//tensorflow_federated/cc/core/impl/executor_stacks:local_stacks_test NO STATUS
//tensorflow_federated/cc/core/impl/executor_stacks:remote_stacks_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:composing_executor_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:data_executor_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:dataset_conversions_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:dataset_from_tensor_structures_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:dtensor_api_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:dtensor_executor_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:eager_computation_test_cpu NO STATUS
//tensorflow_federated/cc/core/impl/executors:executor_service_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:federating_executor_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:reference_resolving_executor_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:remote_executor_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:sequence_executor_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:session_provider_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:streaming_remote_executor_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:struct_traversal_order_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:tensorflow_executor_parameterized_test_cpu NO STATUS
//tensorflow_federated/cc/core/impl/executors:tensorflow_utils_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:threading_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:value_validation_test NO STATUS
//tensorflow_federated/cc/core/impl/executors:xla_executor_test_cpu NO STATUS
//tensorflow_federated/cc/core/impl/executors:xla_utils_test NO STATUS
//tensorflow_federated/python/aggregators:aggregator_test_utils_test NO STATUS
//tensorflow_federated/python/aggregators:concat_test NO STATUS
//tensorflow_federated/python/aggregators:deterministic_discretization_test NO STATUS
//tensorflow_federated/python/aggregators:differential_privacy_test NO STATUS
//tensorflow_federated/python/aggregators:discretization_test NO STATUS
//tensorflow_federated/python/aggregators:elias_gamma_encode_test NO STATUS
//tensorflow_federated/python/aggregators:encoded_test NO STATUS
//tensorflow_federated/python/aggregators:factory_utils_test NO STATUS
//tensorflow_federated/python/aggregators:hadamard_test NO STATUS
//tensorflow_federated/python/aggregators:mean_test NO STATUS
//tensorflow_federated/python/aggregators:measurements_test NO STATUS
//tensorflow_federated/python/aggregators:modular_clipping_test NO STATUS
//tensorflow_federated/python/aggregators:primitives_test NO STATUS
//tensorflow_federated/python/aggregators:quantile_estimation_test NO STATUS
//tensorflow_federated/python/aggregators:robust_test NO STATUS
//tensorflow_federated/python/aggregators:rotation_test NO STATUS
//tensorflow_federated/python/aggregators:sampling_test NO STATUS
//tensorflow_federated/python/aggregators:secure_test NO STATUS
//tensorflow_federated/python/aggregators:stochastic_discretization_test NO STATUS
//tensorflow_federated/python/aggregators:sum_factory_test NO STATUS
//tensorflow_federated/python/analytics:count_distinct_test NO STATUS
//tensorflow_federated/python/analytics:data_processing_test NO STATUS
//tensorflow_federated/python/analytics:differential_privacy_test NO STATUS
//tensorflow_federated/python/analytics:histogram_processing_test NO STATUS
//tensorflow_federated/python/analytics/heavy_hitters/iblt:chunkers_test NO STATUS
//tensorflow_federated/python/analytics/heavy_hitters/iblt:hyperedge_hashers_test NO STATUS
//tensorflow_federated/python/analytics/heavy_hitters/iblt:iblt_clipping_test NO STATUS
//tensorflow_federated/python/analytics/heavy_hitters/iblt:iblt_factory_test NO STATUS
//tensorflow_federated/python/analytics/heavy_hitters/iblt:iblt_lib_test NO STATUS
//tensorflow_federated/python/analytics/heavy_hitters/iblt:iblt_tensor_test NO STATUS
//tensorflow_federated/python/analytics/heavy_hitters/iblt:iblt_tff_test NO STATUS
//tensorflow_federated/python/analytics/heavy_hitters/iblt:subsample_process_test NO STATUS
//tensorflow_federated/python/analytics/hierarchical_histogram:build_tree_from_leaf_test NO STATUS
//tensorflow_federated/python/analytics/hierarchical_histogram:clipping_factory_test NO STATUS
//tensorflow_federated/python/analytics/hierarchical_histogram:hierarchical_histogram_decoder_test NO STATUS
//tensorflow_federated/python/analytics/hierarchical_histogram:hierarchical_histogram_factory_test NO STATUS
//tensorflow_federated/python/analytics/hierarchical_histogram:hierarchical_histogram_lib_test NO STATUS
//tensorflow_federated/python/common_libs:async_utils_test NO STATUS
//tensorflow_federated/python/common_libs:deprecation_test NO STATUS
//tensorflow_federated/python/common_libs:golden_test NO STATUS
//tensorflow_federated/python/common_libs:py_typecheck_test NO STATUS
//tensorflow_federated/python/common_libs:retrying_test NO STATUS
//tensorflow_federated/python/common_libs:structure_test NO STATUS
//tensorflow_federated/python/common_libs:tracing_test NO STATUS
//tensorflow_federated/python/core/backends/mapreduce:compiler_test NO STATUS
//tensorflow_federated/python/core/backends/mapreduce:form_utils_test NO STATUS
//tensorflow_federated/python/core/backends/mapreduce:forms_test NO STATUS
//tensorflow_federated/python/core/backends/native:compiler_test NO STATUS
//tensorflow_federated/python/core/backends/native:execution_contexts_test NO STATUS
//tensorflow_federated/python/core/backends/native:mergeable_comp_compiler_test NO STATUS
//tensorflow_federated/python/core/backends/test:execution_contexts_test NO STATUS
//tensorflow_federated/python/core/environments/jax_frontend:jax_computation_context_test NO STATUS
//tensorflow_federated/python/core/environments/jax_frontend:jax_computation_test NO STATUS
//tensorflow_federated/python/core/environments/jax_frontend:jax_serialization_test NO STATUS
//tensorflow_federated/python/core/environments/tensorflow_backend:compiled_computation_transformations_test NO STATUS
//tensorflow_federated/python/core/environments/tensorflow_backend:tensorflow_building_block_factory_test NO STATUS
//tensorflow_federated/python/core/environments/tensorflow_backend:tensorflow_computation_transformations_test NO STATUS
//tensorflow_federated/python/core/environments/tensorflow_backend:tensorflow_tree_transformations_test NO STATUS
//tensorflow_federated/python/core/environments/tensorflow_frontend:tensorflow_computation_context_test NO STATUS
//tensorflow_federated/python/core/environments/tensorflow_frontend:tensorflow_computation_test NO STATUS
//tensorflow_federated/python/core/environments/tensorflow_frontend:tensorflow_serialization_test NO STATUS
//tensorflow_federated/python/core/environments/xla_backend:compiler_test NO STATUS
//tensorflow_federated/python/core/environments/xla_backend:runtime_test NO STATUS
//tensorflow_federated/python/core/environments/xla_backend:xla_serialization_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:array_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:building_block_factory_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:building_blocks_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:compiler_test_utils_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:computation_factory_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:intrinsic_defs_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:tensorflow_computation_factory_test_cpu NO STATUS
//tensorflow_federated/python/core/impl/compiler:transformation_utils_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:transformations_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:tree_analysis_test NO STATUS
//tensorflow_federated/python/core/impl/compiler:tree_transformations_test NO STATUS
//tensorflow_federated/python/core/impl/computation:computation_impl_test NO STATUS
//tensorflow_federated/python/core/impl/computation:computation_serialization_test NO STATUS
//tensorflow_federated/python/core/impl/computation:computation_wrapper_test NO STATUS
//tensorflow_federated/python/core/impl/computation:function_utils_test NO STATUS
//tensorflow_federated/python/core/impl/computation:polymorphic_computation_test NO STATUS
//tensorflow_federated/python/core/impl/context_stack:context_stack_impl_test NO STATUS
//tensorflow_federated/python/core/impl/context_stack:context_stack_test_utils_test NO STATUS
//tensorflow_federated/python/core/impl/context_stack:get_context_stack_test NO STATUS
//tensorflow_federated/python/core/impl/context_stack:set_default_context_test NO STATUS
//tensorflow_federated/python/core/impl/execution_contexts:async_execution_context_test NO STATUS
//tensorflow_federated/python/core/impl/execution_contexts:compiler_pipeline_test NO STATUS
//tensorflow_federated/python/core/impl/execution_contexts:mergeable_comp_execution_context_test NO STATUS
//tensorflow_federated/python/core/impl/executor_stacks:python_executor_stacks_test NO STATUS
//tensorflow_federated/python/core/impl/executors:cardinalities_utils_test NO STATUS
//tensorflow_federated/python/core/impl/executors:data_conversions_test NO STATUS
//tensorflow_federated/python/core/impl/executors:data_descriptor_test NO STATUS
//tensorflow_federated/python/core/impl/executors:executor_utils_test NO STATUS
//tensorflow_federated/python/core/impl/executors:remote_executor_grpc_stub_test NO STATUS
//tensorflow_federated/python/core/impl/executors:remote_executor_test NO STATUS
//tensorflow_federated/python/core/impl/executors:value_serialization_test NO STATUS
//tensorflow_federated/python/core/impl/federated_context:federated_computation_context_test NO STATUS
//tensorflow_federated/python/core/impl/federated_context:federated_computation_test NO STATUS
//tensorflow_federated/python/core/impl/federated_context:federated_computation_utils_test NO STATUS
//tensorflow_federated/python/core/impl/federated_context:intrinsics_test NO STATUS
//tensorflow_federated/python/core/impl/federated_context:value_impl_test NO STATUS
//tensorflow_federated/python/core/impl/federated_context:value_utils_test NO STATUS
//tensorflow_federated/python/core/impl/types:array_shape_test NO STATUS
//tensorflow_federated/python/core/impl/types:computation_types_test NO STATUS
//tensorflow_federated/python/core/impl/types:dtype_utils_test NO STATUS
//tensorflow_federated/python/core/impl/types:placements_test NO STATUS
//tensorflow_federated/python/core/impl/types:type_analysis_test NO STATUS
//tensorflow_federated/python/core/impl/types:type_conversions_test NO STATUS
//tensorflow_federated/python/core/impl/types:type_factory_test NO STATUS
//tensorflow_federated/python/core/impl/types:type_serialization_test NO STATUS
//tensorflow_federated/python/core/impl/types:type_transformations_test NO STATUS
//tensorflow_federated/python/core/impl/utils:tensorflow_utils_test NO STATUS
//tensorflow_federated/python/core/templates:aggregation_process_test NO STATUS
//tensorflow_federated/python/core/templates:estimation_process_test NO STATUS
//tensorflow_federated/python/core/templates:iterative_process_test NO STATUS
//tensorflow_federated/python/core/templates:measured_process_test NO STATUS
//tensorflow_federated/python/core/test:static_assert_test NO STATUS
//tensorflow_federated/python/learning:dataset_reduce_test_cpu NO STATUS
//tensorflow_federated/python/learning:debug_measurements_test NO STATUS
//tensorflow_federated/python/learning:federated_evaluation_test_cpu NO STATUS
//tensorflow_federated/python/learning:model_update_aggregator_test NO STATUS
//tensorflow_federated/python/learning/algorithms:fed_avg_test_cpu NO STATUS
//tensorflow_federated/python/learning/algorithms:fed_avg_with_optimizer_schedule_test_cpu NO STATUS
//tensorflow_federated/python/learning/algorithms:fed_eval_test_cpu NO STATUS
//tensorflow_federated/python/learning/algorithms:fed_prox_test_cpu NO STATUS
//tensorflow_federated/python/learning/algorithms:fed_recon_eval_test NO STATUS
//tensorflow_federated/python/learning/algorithms:fed_sgd_test_cpu NO STATUS
//tensorflow_federated/python/learning/algorithms:kmeans_clustering_test NO STATUS
//tensorflow_federated/python/learning/metrics:aggregation_utils_test NO STATUS
//tensorflow_federated/python/learning/metrics:aggregator_test NO STATUS
//tensorflow_federated/python/learning/metrics:counters_test NO STATUS
//tensorflow_federated/python/learning/metrics:keras_finalizer_test NO STATUS
//tensorflow_federated/python/learning/metrics:keras_utils_test NO STATUS
//tensorflow_federated/python/learning/metrics:sampling_aggregation_factory_test NO STATUS
//tensorflow_federated/python/learning/metrics:sum_aggregation_factory_test NO STATUS
//tensorflow_federated/python/learning/models:functional_test NO STATUS
//tensorflow_federated/python/learning/models:keras_utils_test NO STATUS
//tensorflow_federated/python/learning/models:model_examples_test NO STATUS
//tensorflow_federated/python/learning/models:model_weights_test NO STATUS
//tensorflow_federated/python/learning/models:reconstruction_model_test NO STATUS
//tensorflow_federated/python/learning/models:serialization_test NO STATUS
//tensorflow_federated/python/learning/optimizers:adafactor_test NO STATUS
//tensorflow_federated/python/learning/optimizers:adagrad_test NO STATUS
//tensorflow_federated/python/learning/optimizers:adam_test NO STATUS
//tensorflow_federated/python/learning/optimizers:integration_test NO STATUS
//tensorflow_federated/python/learning/optimizers:keras_optimizer_test NO STATUS
//tensorflow_federated/python/learning/optimizers:optimizer_test NO STATUS
//tensorflow_federated/python/learning/optimizers:optimizer_test_utils_test NO STATUS
//tensorflow_federated/python/learning/optimizers:rmsprop_test NO STATUS
//tensorflow_federated/python/learning/optimizers:scheduling_test NO STATUS
//tensorflow_federated/python/learning/optimizers:sgdm_test NO STATUS
//tensorflow_federated/python/learning/optimizers:yogi_test NO STATUS
//tensorflow_federated/python/learning/programs:evaluation_program_logic_test NO STATUS
//tensorflow_federated/python/learning/programs:training_program_logic_test NO STATUS
//tensorflow_federated/python/learning/programs:vizier_program_logic_test NO STATUS
//tensorflow_federated/python/learning/templates:apply_optimizer_finalizer_test NO STATUS
//tensorflow_federated/python/learning/templates:client_works_test NO STATUS
//tensorflow_federated/python/learning/templates:composers_test NO STATUS
//tensorflow_federated/python/learning/templates:distributors_test NO STATUS
//tensorflow_federated/python/learning/templates:finalizers_test NO STATUS
//tensorflow_federated/python/learning/templates:hparams_base_test NO STATUS
//tensorflow_federated/python/learning/templates:learning_process_test NO STATUS
//tensorflow_federated/python/learning/templates:model_delta_client_work_test NO STATUS
//tensorflow_federated/python/learning/templates:proximal_client_work_test NO STATUS
//tensorflow_federated/python/learning/templates:type_checks_test NO STATUS
//tensorflow_federated/python/program:client_id_data_source_test NO STATUS
//tensorflow_federated/python/program:dataset_data_source_test NO STATUS
//tensorflow_federated/python/program:federated_context_test NO STATUS
//tensorflow_federated/python/program:file_program_state_manager_test NO STATUS
//tensorflow_federated/python/program:file_release_manager_test NO STATUS
//tensorflow_federated/python/program:file_utils_test NO STATUS
//tensorflow_federated/python/program:logging_release_manager_test NO STATUS
//tensorflow_federated/python/program:memory_release_manager_test NO STATUS
//tensorflow_federated/python/program:native_platform_test NO STATUS
//tensorflow_federated/python/program:program_state_manager_test NO STATUS
//tensorflow_federated/python/program:release_manager_test NO STATUS
//tensorflow_federated/python/program:serialization_utils_test NO STATUS
//tensorflow_federated/python/program:structure_utils_test NO STATUS
//tensorflow_federated/python/program:tensorboard_release_manager_test NO STATUS
//tensorflow_federated/python/program:value_reference_test NO STATUS
//tensorflow_federated/python/simulation:iterative_process_compositions_test NO STATUS
//tensorflow_federated/python/simulation:sampling_utils_test NO STATUS
//tensorflow_federated/python/simulation:training_loop_test NO STATUS
//tensorflow_federated/python/simulation/baselines:baseline_task_test NO STATUS
//tensorflow_federated/python/simulation/baselines:keras_metrics_test NO STATUS
//tensorflow_federated/python/simulation/baselines:task_data_test NO STATUS
//tensorflow_federated/python/simulation/baselines/cifar100:image_classification_preprocessing_test NO STATUS
//tensorflow_federated/python/simulation/baselines/cifar100:image_classification_tasks_test NO STATUS
//tensorflow_federated/python/simulation/baselines/emnist:autoencoder_tasks_test NO STATUS
//tensorflow_federated/python/simulation/baselines/emnist:char_recognition_tasks_test NO STATUS
//tensorflow_federated/python/simulation/baselines/emnist:emnist_models_test NO STATUS
//tensorflow_federated/python/simulation/baselines/emnist:emnist_preprocessing_test NO STATUS
//tensorflow_federated/python/simulation/baselines/landmark:landmark_preprocessing_test NO STATUS
//tensorflow_federated/python/simulation/baselines/landmark:landmark_tasks_test NO STATUS
//tensorflow_federated/python/simulation/baselines/shakespeare:char_prediction_models_test NO STATUS
//tensorflow_federated/python/simulation/baselines/shakespeare:char_prediction_preprocessing_test NO STATUS
//tensorflow_federated/python/simulation/baselines/shakespeare:char_prediction_tasks_test NO STATUS
//tensorflow_federated/python/simulation/baselines/stackoverflow:tag_prediction_preprocessing_test NO STATUS
//tensorflow_federated/python/simulation/baselines/stackoverflow:tag_prediction_tasks_test NO STATUS
//tensorflow_federated/python/simulation/baselines/stackoverflow:word_prediction_models_test NO STATUS
//tensorflow_federated/python/simulation/baselines/stackoverflow:word_prediction_preprocessing_test NO STATUS
//tensorflow_federated/python/simulation/baselines/stackoverflow:word_prediction_tasks_test NO STATUS
//tensorflow_federated/python/simulation/datasets:celeba_test NO STATUS
//tensorflow_federated/python/simulation/datasets:cifar100_test NO STATUS
//tensorflow_federated/python/simulation/datasets:dataset_utils_test NO STATUS
//tensorflow_federated/python/simulation/datasets:download_test NO STATUS
//tensorflow_federated/python/simulation/datasets:emnist_test NO STATUS
//tensorflow_federated/python/simulation/datasets:file_per_user_client_data_test NO STATUS
//tensorflow_federated/python/simulation/datasets:flair_test NO STATUS
//tensorflow_federated/python/simulation/datasets:from_tensor_slices_client_data_test NO STATUS
//tensorflow_federated/python/simulation/datasets:gldv2_test NO STATUS
//tensorflow_federated/python/simulation/datasets:inaturalist_test NO STATUS
//tensorflow_federated/python/simulation/datasets:shakespeare_test NO STATUS
//tensorflow_federated/python/simulation/datasets:sql_client_data_test NO STATUS
//tensorflow_federated/python/simulation/datasets:sql_client_data_utils_test NO STATUS
//tensorflow_federated/python/simulation/datasets:stackoverflow_test NO STATUS
//tensorflow_federated/python/simulation/datasets:transforming_client_data_test NO STATUS
//tensorflow_federated/python/simulation/datasets:vision_datasets_utils_test NO STATUS
//tensorflow_federated/python/simulation/models:mobilenet_v2_test NO STATUS
//tensorflow_federated/python/simulation/models:resnet_models_test NO STATUS
//tensorflow_federated/python/tensorflow_libs:graph_optimizations_test NO STATUS
//tensorflow_federated/python/tensorflow_libs:graph_spec_test NO STATUS
//tensorflow_federated/python/tensorflow_libs:graph_utils_test NO STATUS
//tensorflow_federated/python/tensorflow_libs:serialization_utils_test NO STATUS
//tensorflow_federated/python/tensorflow_libs:tensor_utils_test NO STATUS
//tensorflow_federated/python/tensorflow_libs:variable_utils_test NO STATUS
//tensorflow_federated/python/tensorflow_libs:version_check_test NO STATUS
//tensorflow_federated/python/tests:ast_generation_test NO STATUS
//tensorflow_federated/python/tests:async_execution_context_integration_test NO STATUS
//tensorflow_federated/python/tests:backend_accelerators_test_cpu NO STATUS
//tensorflow_federated/python/tests:backend_test NO STATUS
//tensorflow_federated/python/tests:map_reduce_form_test NO STATUS
//tensorflow_federated/python/tests:mergeable_comp_execution_context_integration_test NO STATUS
//tensorflow_federated/python/tests:remote_runtime_stream_structs_test NO STATUS
//tensorflow_federated/python/tests:simulation_test NO STATUS
//tensorflow_federated/python/tests:sync_local_cpp_execution_context_test NO STATUS
//tensorflow_federated/python/simulation/datasets:client_data_test FAILED TO BUILD
Test cases: finished with 0 passing and 0 failing out of 0 test cases
Executed 0 out of 259 tests: 1 fails to build and 258 were skipped.
GRPS in TF hasn't been changed for ages, so that it is definitely not the source of the problem, updates to bazelrc are not revealing as well. So far I suspect the non-hermetic toolchain patch, but have to dig deeper.
After some googling, it looks it is related to Cython update somewhere down the line; I'll double-check.
Resolved the GRPC issue. There is a "hidden" regression in TensorFlow 2.16.1 due to Cython update. The latest release of GRPC cannot be built with Cython 3.0 due to the errors above. The fix on GRPC side is merged to master, but is yet to be released: grpc/grpc#33918
Selecting between unstable GRPC master and an older release of Cython, I picked the latter and rolled it back to the version as of TensorFlow 2.14.1.
Okay, the update to TensorFlow 2.16.1 has built and passed an expectable number of tests.
In attachment is an html test report. At first glance, apart from compression, we have one more dependency to handle: tensorflow-model-optimisation. And according to the issue tensorflow/model-optimization#1119 they have no plans on Keras 3 support apart from forcing Keras 2 legacy mode. The only algorithm affected is IBLT Heavy Hitters.
For our own needs, we currently need TFF without any of the affected dependencies (even DiffP), so that I'll prefer stabilizing the core first. I'll hope to hack it around to support both Keras 2 and 3 as APIs are heavily compatible, and there is a trend on libraries forcing Keras 2 compatibility through a global TF_USE_LEGACY_KERAS=1
override.
What do you think?
It seems like there is a story around grpc in WORKSAPCE file, so that, just to ask: any chance it looks familiar? Otherwise, I'll continue exploring what has actually changed.
# bazel test //tensorflow_federated/...
(click to open)
GRPS in TF hasn't been changed for ages, so that it is definitely not the source of the problem, updates to bazelrc are not revealing as well. So far I suspect the non-hermetic toolchain patch, but have to dig deeper.
I've not seen this specific error before, but you are correct the grpc and protobuf deps are always hard to update because of the source dependency on TF. I've tried to update both of those deps recently independently from TF and hit different issue then the one you are hitting.
Okay, the update to TensorFlow 2.16.1 has built and passed an expectable number of tests.
Nice!
In attachment is an html test report. At first glance, apart from compression, we have one more dependency to handle: tensorflow-model-optimisation. And according to the issue tensorflow/model-optimization#1119 they have no plans on Keras 3 support apart from forcing Keras 2 legacy mode. The only algorithm affected is IBLT Heavy Hitters.
- I do intend to remove the compression dep and the associated code that depends on it. I won't be able to get to it for a week probably. Feel free to send me a PR if that is not fast enough.
- regarding model-optimization, let me get back to you on this. I'm going to try and do some investigation on my end to see if I can find out more.
For our own needs, we currently need TFF without any of the affected dependencies (even DiffP), so that I'll prefer stabilizing the core first. I'll hope to hack it around to support both Keras 2 and 3 as APIs are heavily compatible, and there is a trend on libraries forcing Keras 2 compatibility through a global
TF_USE_LEGACY_KERAS=1
override.What do you think?
- I am currently working to split TFF up into multiple repos, where core and the domain specific algorithms specifically would be in different repositories. After which, your use case would be more easily supported.
- regarding global
TF_USE_LEGACY_KERAS=1
override, I also see this so +1 - which I think is a fine solution - However, If you are able to build from source, then I think you can do what you are trying to do in the short term forking TFF, applying the update to the deps, and stripping out the failing parts or all the parts that you don't need. It would be nice to save the commits that you use to sort out the version bump so that when we do split out core we can see what it would take to apply this update to that code.
<removed, I need to think a little more>
A recent update. I tried a few approaches to handle the problem, and so far the most reasonable one is to run with TF_USE_LEGACY_KERAS=1 for dependencies and adjust TFF's code to run for both Kerases using explicitly tf_keras and keras packages.
While I managed to temporarily remove model-optimisation
and compression
, privacy
and its dependency tree is too deeply wired into the library to refactor it out. And it makes sense to be honest due to the nature of Federated Computations.
Amazing code quality, by the way!
Meanwhile, due to the most logic going through tracing at some stage, it doesn't really matter for TFF, which Keras is being used until it is code-compatible with both Keras 2 and Keras 3. Accidentally, I managed to successfully run a few tests with Keras 3 sequential model and Keras 2 counter metrics... It worked, though this code path is definitely not to be officially supported.
Nevertheless, the amount of work is quite dramatic and I'm slowly progressing through it. I'll keep you updated on the progress and hope to show the code soon.
Though I am not the fun of TF_USE_LEGACY_KERAS, it seems to be the way for many libraries so far. In future, as all dependencies either update to Keras 3 or start explicitly using tf_keras, it will look much better. If I manage to make tests passing both Keras 2 and 3 variants through parametrisation, it should be quite easy to support both frameworks in the long run.
While it came mostly to facelift with TFF, TensorFlow Privacy actually requires a much bigger update for Keras 3. It should either explicitly switch to tf_keras for now or be quite refactored as some parts of it are no longer available in Keras 3, most notably the TensorFlow Estimators (removed in TF 2.16) and tf.keras.legacy namespace (removed in Keras 3) used inside quite intensively and not only for internal implementation, but also for the public APIs. I will definitely need help with that to update the dependency.
Regarding dependencies, #4669 should help.
I'll try and ping some of the developers who are more actively working on TensorFlow Privacy.