Hi,

Can you try to add a call to self.close() before exception is raised in 
__wait_for_events ? Does it helps?

if db_api_error(self._isc_status):
   self.close()
   raise exception_from_status(DatabaseError, self._isc_status, "Error 
while waiting for events:")

best regards
Pavel

Dne 14.11.2014 v 14:08 Dominik Psenner dominik.psen...@topcontrol.it 
[firebird-python] napsal(a):
> I refreshed the package and it looks like the memory leak is almost gone. I 
> can observe that the number of EventBlock’s left in memory are equal to the 
> count of errors raised with the invoke of begin() (namely one of: unknown ISC 
> error 0, error reading from connection, error writing to connection).
>
> So there’s still a troublesome execution path left and it took some time 
> until I had wrapped my head around it. According to the stack trace the 
> exception is thrown in the constructor of EventBlock:
>
>    File "dbEvents.py", line 103, in run
>      event_listener.begin()
>    File "C:\Python27\lib\site-packages\fdb-1.4.3-py2.7.egg\fdb\fbcore.py", 
> line 1844, in begin
>      self.__event_blocks.append(EventBlock(self.__queue, self._db_handle, 
> block_events))
>    File "C:\Python27\lib\site-packages\fdb-1.4.3-py2.7.egg\fdb\fbcore.py", 
> line 1732, in __init__
>      self.__wait_for_events()
>    File "C:\Python27\lib\site-packages\fdb-1.4.3-py2.7.egg\fdb\fbcore.py", 
> line 1741, in __wait_for_events
>      "Error while waiting for events:")
> DatabaseError: ('Error while waiting for events:\n- SQLCODE: -902\n- Error 
> reading data from the connection.', -902, 335544726)
>
> That would be right here where the EventBlock should be appended to the list 
> of event blocks:
>
>          for block_events in self.__blocks:
>              self.__event_blocks.append(EventBlock(self.__queue, 
> self._db_handle, block_events))
>
> But like this an initialized and broken EventBlock is never appended to the 
> __event_blocks list and therefore EventBlock.close() is never invoked. ☹
>
> Von: firebird-python@yahoogroups.com [mailto:firebird-python@yahoogroups.com]
> Gesendet: Freitag, 14. November 2014 13:38
> An: firebird-python@yahoogroups.com
> Betreff: Re: AW: AW: [firebird-python] FDB v1.4.2
>
>
>
> Hi,
>
> Fixed. This time I've just refreshed the 1.4.3 package, as I don't want
> to make another point release in single day. If anyone already got
> unpatched 1.4.3 (unlikely that anyone beside you get it so quickly),
> then it will replaced by next version 1.5 (full Firebird 3.0 support)
> scheduled for release before end of year.
>
> best regards
> Pavel Cisar
> IBPhoenix
>
> Dne 14.11.2014 v 12:24 Dominik Psenner 
> dominik.psen...@topcontrol.it<mailto:dominik.psen...@topcontrol.it>
> [firebird-python] napsal(a):
>> Ah, you were faster than I could write. Sorry for me being so persistent. 
>> Unfortunately I am unable to post a file in the bug tracker now that the 
>> issue is resolved, therefore I write you here.
>>
>> The good thing is, 1.4.3 improved the situation. One cyclic reference has 
>> gone away but there’s still one cyclic reference left to be broken. The 
>> attached objgraph shows that the one left might be the callback function 
>> which is stored in the EventBlock upon creation. You could break that by 
>> cleaning up the callback attribute on close(). Doing that should resolve 
>> this issue for good.
>>
>> Von: firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com> 
>> [mailto:firebird-python@yahoogroups.com]
>> Gesendet: Freitag, 14. November 2014 12:06
>> An: firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com>
>> Betreff: AW: AW: [firebird-python] FDB v1.4.2
>>
>>
>> Awesome! Thanks for the fast responses, you’re doing a good job. ☺ If you 
>> feel like sending me a patch that I can apply before you push 1.4.3 out of 
>> the door, I’ll gladly run my test scripts on a patched 1.4.2.
>>
>> Cheers
>>
>> Von: 
>> firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com%3cmailto:firebird-python@yahoogroups.com>>
>>  [mailto:firebird-python@yahoogroups.com]
>> Gesendet: Freitag, 14. November 2014 11:50
>> An: 
>> firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com%3cmailto:firebird-python@yahoogroups.com>>
>> Betreff: Re: AW: [firebird-python] FDB v1.4.2
>>
>>
>>
>> Hi,
>>
>> Fixed in 1.4.3, see PyPI. Thanks for pointing this out.
>>
>> best regards
>> Pavel Cisar
>> IBPhoenix
>>
>> Dne 14.11.2014 v 11:42 Dominik Psenner 
>> dominik.psen...@topcontrol.it<mailto:dominik.psen...@topcontrol.it<mailto:dominik.psen...@topcontrol.it%3cmailto:dominik.psen...@topcontrol.it>>
>> [firebird-python] napsal(a):
>>> Hi Pavel,
>>>
>>> great to hear that you have got this release out of the door so quickly. 
>>> However, I’m afraid that http://tracker.firebirdsql.org/browse/PYFB-43 is 
>>> not yet resolved. As posted in the issue I was just now able to reproduce 
>>> the memory leak with 1.4.2. Thus, people, beware from invoking 
>>> event_conduit() in a loop!
>>>
>>> Are there any plans for fixing the memory leak?
>>>
>>> Best regards,
>>> Dominik
>>>
>>> Von: 
>>> firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com%3cmailto:firebird-python@yahoogroups.com>>
>>>  [mailto:firebird-python@yahoogroups.com]
>>> Gesendet: Freitag, 14. November 2014 10:36
>>> An: 
>>> firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com<mailto:firebird-python@yahoogroups.com%3cmailto:firebird-python@yahoogroups.com>>
>>> Betreff: [firebird-python] FDB v1.4.2
>>>
>>>
>>>
>>> Hi,
>>>
>>> FDB Python driver for Firebird v1.4.2 is available for download . This
>>> mostly bugfix version introduces a backward incompatible change to
>>> events API, so read the Release Notes before deployment.
>>>
>>> https://pypi.python.org/pypi/fdb
>>>
>>> best regards
>>> Pavel Cisar
>>> IBPhoenix
>>>
>>
>
  • [firebird-... Pavel Cisar pci...@ibphoenix.cz [firebird-python]
    • AW: [... Dominik Psenner dominik.psen...@topcontrol.it [firebird-python]
      • R... Pavel Cisar pci...@ibphoenix.cz [firebird-python]
        • ... Dominik Psenner dominik.psen...@topcontrol.it [firebird-python]
          • ... Dominik Psenner dominik.psen...@topcontrol.it [firebird-python]
            • ... Pavel Cisar pci...@ibphoenix.cz [firebird-python]
              • ... Dominik Psenner dominik.psen...@topcontrol.it [firebird-python]
                • ... Pavel Cisar pci...@ibphoenix.cz [firebird-python]
                • ... Dominik Psenner dominik.psen...@topcontrol.it [firebird-python]
                • ... Dominik Psenner dominik.psen...@topcontrol.it [firebird-python]
                • ... Pavel Cisar pci...@ibphoenix.cz [firebird-python]
          • ... Pavel Cisar pci...@ibphoenix.cz [firebird-python]

Reply via email to