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)
                                     [ ]
                                            /|\     |(*2.a*)
                                 (*1.d*)   |     \|/

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?
vdsm-devel mailing list

Reply via email to