Bug 1392954

Summary: python-pymongo and mongodb versions are incompatible
Product: [Fedora] Fedora Reporter: Till Hofmann <thofmann>
Component: python-pymongoAssignee: Randy Barlow <randy>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: 23CC: chris, cstratak, jal233, jeremy, randy
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-pymongo-2.8.1-1.fc23 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-06 02:21:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Till Hofmann 2016-11-08 14:28:39 UTC
Description of problem:
The versions of mongodb and python-pymongo in F23 are incompatible according to [1].

More specifically, authentication is not possible at all because in those versions, mongodb and python-pymongo don't have a common authentication method.

Version-Release number of selected component (if applicable):
python-pymongo-0:2.5.2-8
python3-pymongo-0:2.5.2-8

How reproducible:
always


Additional info:

[1] https://docs.mongodb.com/ecosystem/drivers/driver-compatibility-reference/#python-driver-compatibility

Comment 1 Jeremy Cline 2016-11-08 21:46:30 UTC
Thanks for the report!

It looks like the PyMongo 3 series breaks the API in a ton of places so I don't think we can update to the latest release. 

However, the 2.9 release might be okay to update to. It has the added advantage of adding deprecation warnings for the stuff that goes away in 3+ and backporting most of the new 3 API to the 2 series.

I surveyed the changelog, and I see two breaking changes from 2.5.2 to 2.9.4:

* Version 2.7 drops support for replica sets running MongoDB versions older than 1.6.2.

* Version 2.6 significantly changes the behaviour of connection pooling. Previously, max_pool_size would limit only the idle sockets the pool would hold onto, not the number of open sockets. The pool now blocks if the pool has reached its maximum size and is empty. The default size has also changed, from 10 to 100. 

Although I'm not thrilled about releasing an update that introduces these breaking changes, I think it's worth considering given that the current version isn't completely compatible with the current version of MongoDB in F23 (3.0.12). What do the other maintainers think?

Comment 2 Randy Barlow 2016-11-09 16:56:04 UTC
Hello!

I had considered updating to a newer 2.x series in the past, but I decided against it since 2.6 introduced a backwards incompatible change. However, I had not realized that it wasn't working with the MongoDB version. I wonder if MongoDB had been updated since I last investigated this?

Speculation aside, if it is true that pymongo in F23 doesn't work with MongoDB in F23 I support Jeremy's suggestion of updating to a newer 2.x series. Perhaps we should investigate what X.Y version we could upgrade to that will work with F23's MongoDB while introducing the *fewest* number of backwards incompatible changes?

Comment 3 Jeremy Cline 2016-11-09 17:05:55 UTC
(In reply to Randy Barlow from comment #2)
> Hello!
> 
> I had considered updating to a newer 2.x series in the past, but I decided
> against it since 2.6 introduced a backwards incompatible change. However, I
> had not realized that it wasn't working with the MongoDB version. I wonder
> if MongoDB had been updated since I last investigated this?

I checked, and it's been at 3.0.z for over a year. I guess no one has tried actually authenticating with MongoDB on Fedora 23 (with the Python driver, anyway) before this?

> Speculation aside, if it is true that pymongo in F23 doesn't work with
> MongoDB in F23 I support Jeremy's suggestion of updating to a newer 2.x
> series. Perhaps we should investigate what X.Y version we could upgrade to
> that will work with F23's MongoDB while introducing the *fewest* number of
> backwards incompatible changes?

Going by their compatibility guide (in the initial report) the minimum required version is 2.8. 2.9 looks to be a release purely to provide a migration path from 2 -> 3, so I'd say update to 2.9.4. Of course, F23 doesn't have much time left anyway, so maybe it's a moot point.

Comment 4 Randy Barlow 2016-11-09 17:33:13 UTC
There is a warning about a backwards incompatible change in 2.9:

http://api.mongodb.com/python/current/changelog.html#changes-in-version-2-9

I think I prefer upgrading to the latest 2.8.z to be compatible with MongoDB 3 while introducing the fewest incompatible changes.

Comment 5 Fedora End Of Life 2016-11-25 09:39:12 UTC
This message is a reminder that Fedora 23 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 23. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '23'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 23 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 6 Randy Barlow 2016-11-25 17:16:32 UTC
I'm going to update F23 to 2.8.1 for the last month of its life.

Comment 7 Fedora Update System 2016-11-25 19:02:30 UTC
python-pymongo-2.8.1-1.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-5054a96f7b

Comment 8 Fedora Update System 2016-11-27 17:26:50 UTC
python-pymongo-2.8.1-1.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-5054a96f7b

Comment 9 Fedora Update System 2016-12-06 02:21:40 UTC
python-pymongo-2.8.1-1.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.