[ovirt-devel] FD leak while initializing vdsm

Simone Tiraboschi stirabos at redhat.com
Mon May 23 08:31:08 UTC 2016


On Mon, May 23, 2016 at 10:15 AM, Martin Sivak <msivak at redhat.com> wrote:
> Hi,
>
>> I know that we reconnect several times during hosted engine process. Do we
>> close client when it is not used anymore?
>
> No, we are not closing it according to Simone, shouldn't it be
> released automatically? We are using Python after all.. explicit close
> is not exactly common there.

in lib/vdsm/jsonrpcvdscli.py
I see:
    def __del__(self):
        self._client.close()

so probably we are keeping some reference where we shouldn't.

> Martin
>
> On Mon, May 23, 2016 at 8:55 AM, Piotr Kliczewski <pkliczew at redhat.com> wrote:
>> Sandro,
>>
>> I know that we reconnect several times during hosted engine process. Do we
>> close client when it is not used anymore?
>>
>> Please provide lsof for the process and the log.
>>
>> Thanks,
>> Piotr
>>
>> On Mon, May 23, 2016 at 8:42 AM, Sandro Bonazzola <sbonazzo at redhat.com>
>> wrote:
>>>
>>> MainThread::WARNING::2016-05-23
>>> 07:09:38,629::hosted_engine::480::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(start_monitoring)
>>> Unexpected error
>>> Traceback (most recent call last):
>>>   File
>>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/agent/hosted_engine.py",
>>> line 444, in start_monitoring
>>>     self._initialize_vdsm()
>>>   File
>>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/agent/hosted_engine.py",
>>> line 635, in _initialize_vdsm
>>>     timeout=envconstants.VDSCLI_SSL_TIMEOUT
>>>   File
>>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/lib/util.py", line
>>> 187, in connect_vdsm_json_rpc
>>>     requestQueue=requestQueue,
>>>   File "/usr/lib/python2.7/site-packages/vdsm/jsonrpcvdscli.py", line 222,
>>> in connect
>>>     responseQueue)
>>>   File "/usr/lib/python2.7/site-packages/vdsm/jsonrpcvdscli.py", line 212,
>>> in _create
>>>     lazy_start=False)
>>>   File "/usr/lib/python2.7/site-packages/yajsonrpc/stompreactor.py", line
>>> 576, in StandAloneRpcClient
>>>     reactor = Reactor()
>>>   File "/usr/lib/python2.7/site-packages/yajsonrpc/betterAsyncore.py",
>>> line 200, in __init__
>>>     self._wakeupEvent = AsyncoreEvent(self._map)
>>>   File "/usr/lib/python2.7/site-packages/yajsonrpc/betterAsyncore.py",
>>> line 164, in __init__
>>>     map=map
>>>   File "/usr/lib64/python2.7/asyncore.py", line 650, in __init__
>>>     self.set_file(fd)
>>>   File "/usr/lib64/python2.7/asyncore.py", line 657, in set_file
>>>     self.socket = file_wrapper(fd)
>>>   File "/usr/lib64/python2.7/asyncore.py", line 616, in __init__
>>>     self.fd = os.dup(fd)
>>> OSError: [Errno 24] Too many open files
>>>
>>> Simone, Rafael, Piotr, Martin, can you please investigate?
>>>
>>> vdsm-yajsonrpc-4.18.0-16.git51df339.el7.centos.noarch
>>>
>>> ovirt-hosted-engine-ha-2.0.0-0.2.master.20160520143206.20160520143149.gita012f18.el7.noarch
>>>
>>> --
>>> Sandro Bonazzola
>>> Better technology. Faster innovation. Powered by community collaboration.
>>> See how it works at redhat.com
>>
>>



More information about the Devel mailing list