Skip to content

Running the server fails due to incompatiblity with latest protobuf #608

@taleinat

Description

@taleinat

Tested with versions 2.0.5 and 2.0.16 (the latest currently released).

A possible solution would be to vendor, pin or range-limit the versions of internal dependencies, or at least just grpcio.

Some logs:

2022-05-26T11:44:02.401546631Z start fl because of no pid.fl
2022-05-26T11:44:02.403804549Z new pid 17
2022-05-26T11:44:02.827099558Z Traceback (most recent call last):
2022-05-26T11:44:02.827119667Z   File "/usr/local/lib/python3.8/runpy.py", line 194, in _run_module_as_main
2022-05-26T11:44:02.827188853Z     return _run_code(code, main_globals, None,
2022-05-26T11:44:02.827199908Z   File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code
2022-05-26T11:44:02.827206033Z     exec(code, run_globals)
2022-05-26T11:44:02.827209003Z   File "/venv/lib/python3.8/site-packages/nvflare/private/fed/app/client/client_train.py", line 27, in <module>
2022-05-26T11:44:02.828147490Z     from nvflare.private.fed.app.fl_conf import FLClientStarterConfiger
2022-05-26T11:44:02.828158643Z   File "/venv/lib/python3.8/site-packages/nvflare/private/fed/app/fl_conf.py", line 22, in <module>
2022-05-26T11:44:02.828265644Z     from nvflare.private.fed.client.base_client_deployer import BaseClientDeployer
2022-05-26T11:44:02.828276559Z   File "/venv/lib/python3.8/site-packages/nvflare/private/fed/client/base_client_deployer.py", line 18, in <module>
2022-05-26T11:44:02.828280130Z     from nvflare.private.fed.client.fed_client import FederatedClient
2022-05-26T11:44:02.828282628Z   File "/venv/lib/python3.8/site-packages/nvflare/private/fed/client/fed_client.py", line 26, in <module>
2022-05-26T11:44:02.828305466Z     from .fed_client_base import FederatedClientBase
2022-05-26T11:44:02.828310472Z   File "/venv/lib/python3.8/site-packages/nvflare/private/fed/client/fed_client_base.py", line 32, in <module>
2022-05-26T11:44:02.828313117Z     from .communicator import Communicator
2022-05-26T11:44:02.828315296Z   File "/venv/lib/python3.8/site-packages/nvflare/private/fed/client/communicator.py", line 24, in <module>
2022-05-26T11:44:02.828401759Z     import nvflare.private.fed.protos.federated_pb2 as fed_msg
2022-05-26T11:44:02.828413026Z   File "/venv/lib/python3.8/site-packages/nvflare/private/fed/protos/federated_pb2.py", line 55, in <module>
2022-05-26T11:44:02.828424365Z     _descriptor.FieldDescriptor(
2022-05-26T11:44:02.828428319Z   File "/venv/lib/python3.8/site-packages/google/protobuf/descriptor.py", line 560, in __new__
2022-05-26T11:44:02.828585440Z     _message.Message._CheckCalledFromGeneratedFile()
2022-05-26T11:44:02.828592660Z TypeError: Descriptors cannot not be created directly.
2022-05-26T11:44:02.828595137Z If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
2022-05-26T11:44:02.828597778Z If you cannot immediately regenerate your protos, some other possible workarounds are:
2022-05-26T11:44:02.828600020Z  1. Downgrade the protobuf package to 3.20.x or lower.
2022-05-26T11:44:02.828607879Z  2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions