[ovirt-devel] FD leak while initializing vdsm

Martin Sivak msivak at redhat.com
Mon May 23 12:46:53 UTC 2016


> Explicit close is required.
>
> You should ensure that all resources are released using try finally.

Not according to the code Simone found. The close is called by the
__del__ method explicitly. And Python is no C, we should really behave
"nice" by default.

Martin

On Mon, May 23, 2016 at 2:40 PM, Nir Soffer <nsoffer at redhat.com> wrote:
> On Mon, May 23, 2016 at 11: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.
>
> Explicit close is required.
>
> You should ensure that all resources are released using try finally.
>
> Nir
>
>>
>> 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
>>>
>>>
>> _______________________________________________
>> Devel mailing list
>> Devel at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/devel



More information about the Devel mailing list