Mongodb Pymongo被遗弃”;pymongo“杀死”游标“线程”;客户端退出后

Mongodb Pymongo被遗弃”;pymongo“杀死”游标“线程”;客户端退出后,mongodb,python-3.x,pymongo,Mongodb,Python 3.x,Pymongo,我有一个Python应用程序,它在不同的线程中运行作业。 一些WorkerJob为数据库连接实现pymongo class Job(Thread): ... self.client = MongoClient() 每个作业都有一个完成方法,其中 self.client.close() 在作业即将终止时调用。因此,这应该结束所有关联的线程,但每个作业的一个线程保持活动状态: pymongo\u kill\u cursors\u thread 当我启动多个作业并完成它们时,这

我有一个Python应用程序,它在不同的线程中运行作业。 一些WorkerJob为数据库连接实现pymongo

class Job(Thread):
     ...
     self.client = MongoClient()
每个作业都有一个完成方法,其中

self.client.close()
在作业即将终止时调用。因此,这应该结束所有关联的线程,但每个作业的一个线程保持活动状态: pymongo\u kill\u cursors\u thread

当我启动多个作业并完成它们时,这些pymongo_kill_cursors_线程永不消亡,我在短时间内获得了数百个线程,下面是一个例子,在一个测试作业完成后:

我不知道为什么pymongo的close()方法不能正确清理,也不知道这是pymongo还是mongodb的问题

尝试

self.client._kill_cursors_executor._thread.join(1)
没有任何影响,我认为这是因为线程的锁定状态以及它是守护进程这一事实

任何想法都值得赞赏。多谢各位


使用“PyMongo”,版本:“3.5.1”,Python 3.6.1和MongoDB在docker官方镜像中运行

听起来可能是一个bug,尽管它需要额外的诊断。请在jira.mongodb.org的PYTHON项目中打开一个票证,并提供一个完整的代码示例,我们可以在复制您看到的错误的计算机上运行该示例:

谢谢