pymilvus icon indicating copy to clipboard operation
pymilvus copied to clipboard

[Bug]: protobuf version conflicts.

Open xiezhipeng-git opened this issue 2 years ago • 2 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

Describe the bug

when connections.connect(host='localhost', port='19530') it say protobuf need 3.20.0 but grpcio-tools need protobuf 4.25.0 and pymilvus-distributed need grpcio-tools and pymilvus-orm need pymilvus-distributed then i update or Downgrade protobuf also failed protobuf need by Required-by: dm-control, grpcio-tools, mlagents-envs, onnx, onnxruntime, pymilvus, ray, tensorboard, tensorboardX, wandb very model need protobuf 4.25.0 + version

Expected Behavior

milvus use protobuf 4.25.0+

Steps/Code To Reproduce behavior

code:
from pymilvus_orm import connections, FieldSchema, CollectionSchema, DataType, Collection

# 连接milvus服务器
connections.connect(host='localhost', port='19530')


TypeError                                 Traceback (most recent call last)
/home/xzpwsl2/my/work/milvus/example_code_orm.ipynb 单元格 1 line 1
----> 1 from pymilvus_orm import connections, FieldSchema, CollectionSchema, DataType, Collection
      3 # 连接milvus服务器
      4 connections.connect(host='localhost', port='19530')

File ~/.local/lib/python3.10/site-packages/pymilvus_orm/__init__.py:12
      1 # Copyright (C) 2019-2020 Zilliz. All rights reserved.
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
   (...)
      9 # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
     10 # or implied. See the License for the specific language governing permissions and limitations under the License.
---> 12 from .collection import Collection
     13 from .connections import *
     14 from .index import Index

File ~/.local/lib/python3.10/site-packages/pymilvus_orm/collection.py:12
      1 # Copyright (C) 2019-2020 Zilliz. All rights reserved.
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
   (...)
      9 # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
     10 # or implied. See the License for the specific language governing permissions and limitations under the License.
---> 12 from . import connections
     13 from .schema import CollectionSchema, FieldSchema
     14 import pandas

File ~/.local/lib/python3.10/site-packages/pymilvus_orm/connections.py:12
      1 # Copyright (C) 2019-2020 Zilliz. All rights reserved.
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
   (...)
      9 # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
     10 # or implied. See the License for the specific language governing permissions and limitations under the License.
---> 12 from milvus import Milvus
     13 from .default_config import DefaultConfig
     16 class Connections(object):

File ~/.local/lib/python3.10/site-packages/milvus/__init__.py:3
      1 # -*- coding: utf-8 -*-
----> 3 from .client.stub import Milvus
      4 from .client.prepare import Prepare
      5 from .client.types import Status, DataType, RangeType, IndexType, MetricType

File ~/.local/lib/python3.10/site-packages/milvus/client/stub.py:13
     11 from .types import Status, DataType, DeployMode
     12 from .check import check_pass_param, is_legal_host, is_legal_port, is_legal_index_metric_type, is_legal_binary_index_metric_type
---> 13 from .pool import ConnectionPool, SingleConnectionPool, SingletonThreadPool
     14 from .exceptions import BaseException, ParamError, DeprecatedError
     16 from ..settings import DefaultConfig as config

File ~/.local/lib/python3.10/site-packages/milvus/client/pool.py:11
      8 from collections import defaultdict
     10 from . import __version__
---> 11 from .grpc_handler import GrpcHandler, RegistryHandler
     12 from .http_handler import HttpHandler
     13 from milvus.client.exceptions import ConnectionPoolError, NotConnectError, VersionError

File ~/.local/lib/python3.10/site-packages/milvus/client/grpc_handler.py:12
      9 import grpc
     10 from grpc._cython import cygrpc
---> 12 from ..grpc_gen import common_pb2 as common_types
     13 from ..grpc_gen import milvus_pb2_grpc
     14 from ..grpc_gen import milvus_pb2 as milvus_types

File ~/.local/lib/python3.10/site-packages/milvus/grpc_gen/common_pb2.py:33
     14 _sym_db = _symbol_database.Default()
     19 DESCRIPTOR = _descriptor.FileDescriptor(
     20   name='common.proto',
     21   package='milvus.proto.common',
   (...)
     24   serialized_pb=_b('\n\x0c\x63ommon.proto\x12\x13milvus.proto.common\"L\n\x06Status\x12\x32\n\nerror_code\x18\x01 \x01(\x0e\x32\x1e.milvus.proto.common.ErrorCode\x12\x0e\n\x06reason\x18\x02 \x01(\t\"*\n\x0cKeyValuePair\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x15\n\x04\x42lob\x12\r\n\x05value\x18\x01 \x01(\x0c\"#\n\x07\x41\x64\x64ress\x12\n\n\x02ip\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x03\"m\n\x07MsgBase\x12.\n\x08msg_type\x18\x01 \x01(\x0e\x32\x1c.milvus.proto.common.MsgType\x12\r\n\x05msgID\x18\x02 \x01(\x03\x12\x11\n\ttimestamp\x18\x03 \x01(\x04\x12\x10\n\x08sourceID\x18\x04 \x01(\x03\"7\n\tMsgHeader\x12*\n\x04\x62\x61se\x18\x01 \x01(\x0b\x32\x1c.milvus.proto.common.MsgBase*\xa5\x04\n\tErrorCode\x12\x0b\n\x07Success\x10\x00\x12\x13\n\x0fUnexpectedError\x10\x01\x12\x11\n\rConnectFailed\x10\x02\x12\x14\n\x10PermissionDenied\x10\x03\x12\x17\n\x13\x43ollectionNotExists\x10\x04\x12\x13\n\x0fIllegalArgument\x10\x05\x12\x14\n\x10IllegalDimension\x10\x07\x12\x14\n\x10IllegalIndexType\x10\x08\x12\x19\n\x15IllegalCollectionName\x10\t\x12\x0f\n\x0bIllegalTOPK\x10\n\x12\x14\n\x10IllegalRowRecord\x10\x0b\x12\x13\n\x0fIllegalVectorID\x10\x0c\x12\x17\n\x13IllegalSearchResult\x10\r\x12\x10\n\x0c\x46ileNotFound\x10\x0e\x12\x0e\n\nMetaFailed\x10\x0f\x12\x0f\n\x0b\x43\x61\x63heFailed\x10\x10\x12\x16\n\x12\x43\x61nnotCreateFolder\x10\x11\x12\x14\n\x10\x43\x61nnotCreateFile\x10\x12\x12\x16\n\x12\x43\x61nnotDeleteFolder\x10\x13\x12\x14\n\x10\x43\x61nnotDeleteFile\x10\x14\x12\x13\n\x0f\x42uildIndexError\x10\x15\x12\x10\n\x0cIllegalNLIST\x10\x16\x12\x15\n\x11IllegalMetricType\x10\x17\x12\x0f\n\x0bOutOfMemory\x10\x18\x12\x11\n\rIndexNotExist\x10\x19\x12\x12\n\rDDRequestRace\x10\xe8\x07*e\n\nIndexState\x12\x12\n\x0eIndexStateNone\x10\x00\x12\x0c\n\x08Unissued\x10\x01\x12\x0e\n\nInProgress\x10\x02\x12\x0c\n\x08\x46inished\x10\x03\x12\n\n\x06\x46\x61iled\x10\x04\x12\x0b\n\x07\x44\x65leted\x10\x05*X\n\x0cSegmentState\x12\x14\n\x10SegmentStateNone\x10\x00\x12\x0c\n\x08NotExist\x10\x01\x12\x0b\n\x07Growing\x10\x02\x12\n\n\x06Sealed\x10\x03\x12\x0b\n\x07\x46lushed\x10\x04*\xfa\x05\n\x07MsgType\x12\r\n\tUndefined\x10\x00\x12\x14\n\x10\x43reateCollection\x10\x64\x12\x12\n\x0e\x44ropCollection\x10\x65\x12\x11\n\rHasCollection\x10\x66\x12\x16\n\x12\x44\x65scribeCollection\x10g\x12\x13\n\x0fShowCollections\x10h\x12\x14\n\x10GetSystemConfigs\x10i\x12\x12\n\x0eLoadCollection\x10j\x12\x15\n\x11ReleaseCollection\x10k\x12\x14\n\x0f\x43reatePartition\x10\xc8\x01\x12\x12\n\rDropPartition\x10\xc9\x01\x12\x11\n\x0cHasPartition\x10\xca\x01\x12\x16\n\x11\x44\x65scribePartition\x10\xcb\x01\x12\x13\n\x0eShowPartitions\x10\xcc\x01\x12\x13\n\x0eLoadPartitions\x10\xcd\x01\x12\x16\n\x11ReleasePartitions\x10\xce\x01\x12\x11\n\x0cShowSegments\x10\xfa\x01\x12\x14\n\x0f\x44\x65scribeSegment\x10\xfb\x01\x12\x10\n\x0b\x43reateIndex\x10\xac\x02\x12\x12\n\rDescribeIndex\x10\xad\x02\x12\x0e\n\tDropIndex\x10\xae\x02\x12\x0b\n\x06Insert\x10\x90\x03\x12\x0b\n\x06\x44\x65lete\x10\x91\x03\x12\n\n\x05\x46lush\x10\x92\x03\x12\x0b\n\x06Search\x10\xf4\x03\x12\x11\n\x0cSearchResult\x10\xf5\x03\x12\x12\n\rGetIndexState\x10\xf6\x03\x12\x1c\n\x17GetCollectionStatistics\x10\xf7\x03\x12\x1b\n\x16GetPartitionStatistics\x10\xf8\x03\x12\x10\n\x0bSegmentInfo\x10\xd8\x04\x12\r\n\x08TimeTick\x10\xb0\t\x12\x13\n\x0eQueryNodeStats\x10\xb1\t\x12\x0e\n\tLoadIndex\x10\xb2\t\x12\x0e\n\tRequestID\x10\xb3\t\x12\x0f\n\nRequestTSO\x10\xb4\t\x12\x14\n\x0f\x41llocateSegment\x10\xb5\t\x12\x16\n\x11SegmentStatistics\x10\xb6\t\x12\x15\n\x10SegmentFlushDone\x10\xb7\t*\"\n\x07\x44slType\x12\x07\n\x03\x44sl\x10\x00\x12\x0e\n\nBoolExprV1\x10\x01\x42\[email protected]/zilliztech/milvus-distributed/internal/proto/commonpbb\x06proto3')
     25 )
     27 _ERRORCODE = _descriptor.EnumDescriptor(
     28   name='ErrorCode',
     29   full_name='milvus.proto.common.ErrorCode',
     30   filename=None,
     31   file=DESCRIPTOR,
     32   values=[
---> 33     _descriptor.EnumValueDescriptor(
     34       name='Success', index=0, number=0,
     35       serialized_options=None,
     36       type=None),
     37     _descriptor.EnumValueDescriptor(
     38       name='UnexpectedError', index=1, number=1,
     39       serialized_options=None,
     40       type=None),
     41     _descriptor.EnumValueDescriptor(
     42       name='ConnectFailed', index=2, number=2,
     43       serialized_options=None,
     44       type=None),
     45     _descriptor.EnumValueDescriptor(
     46       name='PermissionDenied', index=3, number=3,
     47       serialized_options=None,
     48       type=None),
     49     _descriptor.EnumValueDescriptor(
     50       name='CollectionNotExists', index=4, number=4,
     51       serialized_options=None,
     52       type=None),
     53     _descriptor.EnumValueDescriptor(
     54       name='IllegalArgument', index=5, number=5,
     55       serialized_options=None,
     56       type=None),
     57     _descriptor.EnumValueDescriptor(
     58       name='IllegalDimension', index=6, number=7,
     59       serialized_options=None,
     60       type=None),
     61     _descriptor.EnumValueDescriptor(
     62       name='IllegalIndexType', index=7, number=8,
     63       serialized_options=None,
     64       type=None),
     65     _descriptor.EnumValueDescriptor(
     66       name='IllegalCollectionName', index=8, number=9,
     67       serialized_options=None,
     68       type=None),
     69     _descriptor.EnumValueDescriptor(
     70       name='IllegalTOPK', index=9, number=10,
     71       serialized_options=None,
     72       type=None),
     73     _descriptor.EnumValueDescriptor(
     74       name='IllegalRowRecord', index=10, number=11,
     75       serialized_options=None,
     76       type=None),
     77     _descriptor.EnumValueDescriptor(
     78       name='IllegalVectorID', index=11, number=12,
     79       serialized_options=None,
     80       type=None),
     81     _descriptor.EnumValueDescriptor(
     82       name='IllegalSearchResult', index=12, number=13,
     83       serialized_options=None,
     84       type=None),
     85     _descriptor.EnumValueDescriptor(
     86       name='FileNotFound', index=13, number=14,
     87       serialized_options=None,
     88       type=None),
     89     _descriptor.EnumValueDescriptor(
     90       name='MetaFailed', index=14, number=15,
     91       serialized_options=None,
     92       type=None),
     93     _descriptor.EnumValueDescriptor(
     94       name='CacheFailed', index=15, number=16,
     95       serialized_options=None,
     96       type=None),
     97     _descriptor.EnumValueDescriptor(
     98       name='CannotCreateFolder', index=16, number=17,
     99       serialized_options=None,
    100       type=None),
    101     _descriptor.EnumValueDescriptor(
    102       name='CannotCreateFile', index=17, number=18,
    103       serialized_options=None,
    104       type=None),
    105     _descriptor.EnumValueDescriptor(
    106       name='CannotDeleteFolder', index=18, number=19,
    107       serialized_options=None,
    108       type=None),
    109     _descriptor.EnumValueDescriptor(
    110       name='CannotDeleteFile', index=19, number=20,
    111       serialized_options=None,
    112       type=None),
    113     _descriptor.EnumValueDescriptor(
    114       name='BuildIndexError', index=20, number=21,
    115       serialized_options=None,
    116       type=None),
    117     _descriptor.EnumValueDescriptor(
    118       name='IllegalNLIST', index=21, number=22,
    119       serialized_options=None,
    120       type=None),
    121     _descriptor.EnumValueDescriptor(
    122       name='IllegalMetricType', index=22, number=23,
    123       serialized_options=None,
    124       type=None),
    125     _descriptor.EnumValueDescriptor(
    126       name='OutOfMemory', index=23, number=24,
    127       serialized_options=None,
    128       type=None),
    129     _descriptor.EnumValueDescriptor(
    130       name='IndexNotExist', index=24, number=25,
    131       serialized_options=None,
    132       type=None),
    133     _descriptor.EnumValueDescriptor(
    134       name='DDRequestRace', index=25, number=1000,
    135       serialized_options=None,
    136       type=None),
    137   ],
    138   containing_type=None,
    139   serialized_options=None,
    140   serialized_start=388,
    141   serialized_end=937,
    142 )
    143 _sym_db.RegisterEnumDescriptor(_ERRORCODE)
    145 ErrorCode = enum_type_wrapper.EnumTypeWrapper(_ERRORCODE)

File ~/.local/lib/python3.10/site-packages/google/protobuf/descriptor.py:780, in EnumValueDescriptor.__new__(cls, name, index, number, type, options, serialized_options, create_key)
    777 def __new__(cls, name, index, number,
    778             type=None,  # pylint: disable=redefined-builtin
    779             options=None, serialized_options=None, create_key=None):
--> 780   _message.Message._CheckCalledFromGeneratedFile()
    781   # There is no way we can build a complete EnumValueDescriptor with the
    782   # given parameters (the name of the Enum is not known, for example).
    783   # Fortunately generated files just pass it to the EnumDescriptor()
    784   # constructor, which will ignore it, so returning None is good enough.
    785   return None

TypeError: Descriptors cannot be created directly.
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.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

Environment details

- Hardware/Softward conditions (OS, CPU, GPU, Memory):wsl2 
- Method of installation (Docker, or from source):Docker or source  I also try and same issue
- Milvus version (v0.3.1, or v0.4.0):2.3.2
- Milvus configuration (Settings you made in `server_config.yaml`):I donnot know

Anything else?

No response

xiezhipeng-git avatar Nov 11 '23 16:11 xiezhipeng-git

And use pymilvus has other error /home/xzpwsl2/.local/lib/python3.10/site-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (2.0.7) or chardet (3.0.4) doesn't match a supported version! warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported " RPC error: [__internal_register], <MilvusException: (code=1, message=this version of sdk is incompatible with server, please downgrade your sdk or upgrade your server)>, <Time:{'RPC start': '2023-11-12 00:13:37.295539', 'RPC error': '2023-11-12 00:13:37.296164'}>

=== start connecting to Milvus === MilvusException Traceback (most recent call last) [... skipping hidden 1 frame]

/home/xzpwsl2/my/work/milvus/example_code_db.ipynb 单元格 4 line 3 31 print(fmt.format("start connecting to Milvus")) ---> 32 connections.connect("default", host="localhost", port="19530") 34 has = utility.has_collection("hello_milvus")

File ~/.local/lib/python3.10/site-packages/pymilvus/orm/connections.py:356, in Connections.connect(self, alias, user, password, db_name, token, **kwargs) 354 kwargs["secure"] = True --> 356 connect_milvus(**kwargs, user=user, password=password, token=token, db_name=db_name) 357 return

File ~/.local/lib/python3.10/site-packages/pymilvus/orm/connections.py:302, in Connections.connect..connect_milvus(**kwargs) 300 timeout = t if isinstance(t, (int, float)) else Config.MILVUS_CONN_TIMEOUT --> 302 gh._wait_for_channel_ready(timeout=timeout) 303 kwargs.pop("password")

File ~/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py:139, in GrpcHandler._wait_for_channel_ready(self, timeout) 138 except Exception as e: --> 139 raise e from e

File ~/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py:132, in GrpcHandler._wait_for_channel_ready(self, timeout) 131 grpc.channel_ready_future(self._channel).result(timeout=timeout) --> 132 self._setup_identifier_interceptor(self._user) 133 except grpc.FutureTimeoutError as e:

File ~/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py:249, in GrpcHandler._setup_identifier_interceptor(self, user) 248 host = socket.gethostname() --> 249 self._identifier = self.__internal_register(user, host) 250 self._identifier_interceptor = interceptor.header_adder_interceptor( 251 ["identifier"], [str(self._identifier)] 252 )

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:129, in error_handler..wrapper..handler(*args, **kwargs) 128 LOGGER.error(f"RPC error: [{inner_name}], {e}, Time:{record_dict}") --> 129 raise e from e 130 except grpc.FutureTimeoutError as e:

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:125, in error_handler..wrapper..handler(*args, **kwargs) 124 record_dict["RPC start"] = str(datetime.datetime.now()) --> 125 return func(*args, **kwargs) 126 except MilvusException as e:

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:164, in tracing_request..wrapper..handler(self, *args, **kwargs) 163 self.set_onetime_request_id(req_id) --> 164 return func(self, *args, **kwargs)

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:104, in retry_on_rpc_failure..wrapper..handler(*args, **kwargs) 103 else: --> 104 raise e from e 105 except Exception as e:

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:68, in retry_on_rpc_failure..wrapper..handler(*args, **kwargs) 67 try: ---> 68 return func(*args, **kwargs) 69 except grpc.RpcError as e: 70 # Reference: https://grpc.github.io/grpc/python/grpc.html#grpc-status-code

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:201, in upgrade_reminder..handler(*args, **kwargs) 197 msg = ( 198 "this version of sdk is incompatible with server, " 199 "please downgrade your sdk or upgrade your server" 200 ) --> 201 raise MilvusException(message=msg) from e 202 raise e from e

MilvusException: <MilvusException: (code=1, message=this version of sdk is incompatible with server, please downgrade your sdk or upgrade your server)>

The above exception was the direct cause of the following exception:

MilvusException Traceback (most recent call last) [... skipping hidden 1 frame]

/home/xzpwsl2/my/work/milvus/example_code_db.ipynb 单元格 4 line 3 31 print(fmt.format("start connecting to Milvus")) ---> 32 connections.connect("default", host="localhost", port="19530") 34 has = utility.has_collection("hello_milvus")

File ~/.local/lib/python3.10/site-packages/pymilvus/orm/connections.py:356, in Connections.connect(self, alias, user, password, db_name, token, **kwargs) 354 kwargs["secure"] = True --> 356 connect_milvus(**kwargs, user=user, password=password, token=token, db_name=db_name) 357 return

File ~/.local/lib/python3.10/site-packages/pymilvus/orm/connections.py:302, in Connections.connect..connect_milvus(**kwargs) 300 timeout = t if isinstance(t, (int, float)) else Config.MILVUS_CONN_TIMEOUT --> 302 gh._wait_for_channel_ready(timeout=timeout) 303 kwargs.pop("password")

File ~/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py:139, in GrpcHandler._wait_for_channel_ready(self, timeout) 138 except Exception as e: --> 139 raise e from e

File ~/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py:132, in GrpcHandler._wait_for_channel_ready(self, timeout) 131 grpc.channel_ready_future(self._channel).result(timeout=timeout) --> 132 self._setup_identifier_interceptor(self._user) 133 except grpc.FutureTimeoutError as e:

File ~/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py:249, in GrpcHandler._setup_identifier_interceptor(self, user) 248 host = socket.gethostname() --> 249 self._identifier = self.__internal_register(user, host) 250 self._identifier_interceptor = interceptor.header_adder_interceptor( 251 ["identifier"], [str(self._identifier)] 252 )

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:129, in error_handler..wrapper..handler(*args, **kwargs) 128 LOGGER.error(f"RPC error: [{inner_name}], {e}, Time:{record_dict}") --> 129 raise e from e 130 except grpc.FutureTimeoutError as e:

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:125, in error_handler..wrapper..handler(*args, **kwargs) 124 record_dict["RPC start"] = str(datetime.datetime.now()) --> 125 return func(*args, **kwargs) 126 except MilvusException as e:

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:164, in tracing_request..wrapper..handler(self, *args, **kwargs) 163 self.set_onetime_request_id(req_id) --> 164 return func(self, *args, **kwargs)

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:104, in retry_on_rpc_failure..wrapper..handler(*args, **kwargs) 103 else: --> 104 raise e from e 105 except Exception as e:

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:68, in retry_on_rpc_failure..wrapper..handler(*args, **kwargs) 67 try: ---> 68 return func(*args, **kwargs) 69 except grpc.RpcError as e: 70 # Reference: https://grpc.github.io/grpc/python/grpc.html#grpc-status-code

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:201, in upgrade_reminder..handler(*args, **kwargs) 197 msg = ( 198 "this version of sdk is incompatible with server, " 199 "please downgrade your sdk or upgrade your server" 200 ) --> 201 raise MilvusException(message=msg) from e 202 raise e from e

MilvusException: <MilvusException: (code=1, message=this version of sdk is incompatible with server, please downgrade your sdk or upgrade your server)>

The above exception was the direct cause of the following exception:

MilvusException Traceback (most recent call last) /home/xzpwsl2/my/work/milvus/example_code_db.ipynb 单元格 4 line 3 23 ################################################################################# 24 # 1. connect to Milvus 25 # Add a new connection alias default for Milvus server in localhost:19530 (...) 29 # 30 # Note: the using parameter of the following methods is default to "default". 31 print(fmt.format("start connecting to Milvus")) ---> 32 connections.connect("default", host="localhost", port="19530") 34 has = utility.has_collection("hello_milvus") 35 print(f"Does collection hello_milvus exist in Milvus: {has}")

File ~/.local/lib/python3.10/site-packages/pymilvus/orm/connections.py:356, in Connections.connect(self, alias, user, password, db_name, token, **kwargs) 353 if parsed_uri.scheme == "https": 354 kwargs["secure"] = True --> 356 connect_milvus(**kwargs, user=user, password=password, token=token, db_name=db_name) 357 return 359 # 2nd Priority, connection configs from env

File ~/.local/lib/python3.10/site-packages/pymilvus/orm/connections.py:302, in Connections.connect..connect_milvus(**kwargs) 299 t = kwargs.get("timeout") 300 timeout = t if isinstance(t, (int, float)) else Config.MILVUS_CONN_TIMEOUT --> 302 gh._wait_for_channel_ready(timeout=timeout) 303 kwargs.pop("password") 304 kwargs.pop("token", None)

File ~/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py:139, in GrpcHandler._wait_for_channel_ready(self, timeout) 134 raise MilvusException( 135 code=Status.CONNECT_FAILED, 136 message=f"Fail connecting to server on {self._address}. Timeout", 137 ) from e 138 except Exception as e: --> 139 raise e from e

File ~/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py:132, in GrpcHandler._wait_for_channel_ready(self, timeout) 130 try: 131 grpc.channel_ready_future(self._channel).result(timeout=timeout) --> 132 self._setup_identifier_interceptor(self._user) 133 except grpc.FutureTimeoutError as e: 134 raise MilvusException( 135 code=Status.CONNECT_FAILED, 136 message=f"Fail connecting to server on {self._address}. Timeout", 137 ) from e

File ~/.local/lib/python3.10/site-packages/pymilvus/client/grpc_handler.py:249, in GrpcHandler._setup_identifier_interceptor(self, user) 247 def _setup_identifier_interceptor(self, user: str): 248 host = socket.gethostname() --> 249 self._identifier = self.__internal_register(user, host) 250 self._identifier_interceptor = interceptor.header_adder_interceptor( 251 ["identifier"], [str(self._identifier)] 252 ) 253 self._final_channel = grpc.intercept_channel( 254 self._final_channel, self._identifier_interceptor 255 )

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:129, in error_handler..wrapper..handler(*args, **kwargs) 127 record_dict["RPC error"] = str(datetime.datetime.now()) 128 LOGGER.error(f"RPC error: [{inner_name}], {e}, Time:{record_dict}") --> 129 raise e from e 130 except grpc.FutureTimeoutError as e: 131 record_dict["gRPC timeout"] = str(datetime.datetime.now())

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:125, in error_handler..wrapper..handler(*args, **kwargs) 123 try: 124 record_dict["RPC start"] = str(datetime.datetime.now()) --> 125 return func(*args, **kwargs) 126 except MilvusException as e: 127 record_dict["RPC error"] = str(datetime.datetime.now())

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:164, in tracing_request..wrapper..handler(self, *args, **kwargs) 162 if req_id: 163 self.set_onetime_request_id(req_id) --> 164 return func(self, *args, **kwargs)

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:104, in retry_on_rpc_failure..wrapper..handler(*args, **kwargs) 102 back_off = min(back_off * back_off_multiplier, max_back_off) 103 else: --> 104 raise e from e 105 except Exception as e: 106 raise e from e

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:68, in retry_on_rpc_failure..wrapper..handler(*args, **kwargs) 66 while True: 67 try: ---> 68 return func(*args, **kwargs) 69 except grpc.RpcError as e: 70 # Reference: https://grpc.github.io/grpc/python/grpc.html#grpc-status-code 71 if e.code() in ( 72 grpc.StatusCode.DEADLINE_EXCEEDED, 73 grpc.StatusCode.PERMISSION_DENIED, (...) 77 grpc.StatusCode.RESOURCE_EXHAUSTED, 78 ):

File ~/.local/lib/python3.10/site-packages/pymilvus/decorators.py:201, in upgrade_reminder..handler(*args, **kwargs) 196 if e.code() == grpc.StatusCode.UNIMPLEMENTED: 197 msg = ( 198 "this version of sdk is incompatible with server, " 199 "please downgrade your sdk or upgrade your server" 200 ) --> 201 raise MilvusException(message=msg) from e 202 raise e from e 203 except Exception as e:

MilvusException: <MilvusException: (code=1, message=this version of sdk is incompatible with server, please downgrade your sdk or upgrade your server)>

xiezhipeng-git avatar Nov 11 '23 16:11 xiezhipeng-git

@xiezhipeng-git pymilvus-orm and pymilvus-distributed are stale for a very very long time, we merged the pytmilvus-orm into pymilvus, and pymilvus is the only actively milvus python sdk now.

MilvusException: <MilvusException: (code=1, message=this version of sdk is incompatible with server, please downgrade your sdk or upgrade your server)>

Also milvus introduced some imcompatible features after 2.2.9(I think), and higher sdk won't work on lower milvus server. Recommand to lower the pymilvus version for the server.

You chould check the pymilvus version by

>>> import pymilvus
>>> pymilvus.__version__
2.3.3

XuanYang-cn avatar Nov 16 '23 07:11 XuanYang-cn