-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
As per the connection string spec:
Any invalid Values for a given key MUST be ignored and MUST log a WARN level message.
However, invalid values for some URI options actually results in an error. For example:
MongoClient("mongodb://example.com/?compressors=zlib&zlibCompressionLevel=invalid")
results in:
Traceback (most recent call last):
File "/Users/pmital/Developer/mongo-python-driver/pymongo/compression_support.py", line 59, in validate_zlib_compression_level
level = int(value)
ValueError: invalid literal for int() with base 10: 'invalid'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/pmital/Developer/mongo-python-driver/pymongo/mongo_client.py", line 514, in __init__
res = uri_parser.parse_uri(entity, port, warn=True)
File "/Users/pmital/Developer/mongo-python-driver/pymongo/uri_parser.py", line 405, in parse_uri
options.update(split_options(opts, validate, warn))
File "/Users/pmital/Developer/mongo-python-driver/pymongo/uri_parser.py", line 201, in split_options
return validate_options(options, warn)
File "/Users/pmital/Developer/mongo-python-driver/pymongo/uri_parser.py", line 145, in validate_options
return get_validated_options(opts, warn)
File "/Users/pmital/Developer/mongo-python-driver/pymongo/common.py", line 645, in get_validated_options
value = validator(opt, value)
File "/Users/pmital/Developer/mongo-python-driver/pymongo/compression_support.py", line 61, in validate_zlib_compression_level
raise TypeError("%s must be an integer, not %r." % (option, value))
TypeError: zlibCompressionLevel must be an integer, not 'invalid'.
This occurs due to the fact that we only catch ValueError and ConfigurationError in the validation of URI options. See the relevant code here.
- is related to
-
PYTHON-1670 Implement Unified URI Options
-
- Closed
-