Guys,
I'm investigating about resource leak problem about task,job,storage pool,storage domain.I don't know very deep about the whole scheme, hope someone can tell if what I found is a problem or not.
task manager thread pool
self.tasks = {} self.__tasks = Queue | | |refers(*1.a*) |refers(*1.b*) | |/ |________________ task(*1.c*:self.log) task.jobs[ ] /|\ |(*2.a*) (*1.d*) | |/ job
4 references all together.(*1.a,1.b,1.c,1.d*) When thread pool call "getNextTask" reference *1.b* cleared When Task manager call "clearTask" reference *1.a* cleared But reference *1.c* and* 1.d* not cleared.Ref *1.d* and *2.a* make task and its jobs can't be released
My question is: When task manager task call "clearTask" means a task all deleted or will it be reused or others will clean the remaining reference? Because task.job sequence never cleared so I assume task should be all cleared when "clearTask" to make jobs freed, but the two uncleared reference confuse me about this. Would someone give me a hint?