[ https://issues.apache.org/jira/browse/PROTON-1709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Stitcher resolved PROTON-1709. ------------------------------------- Fix Version/s: proton-c-0.31.0 Resolution: Fixed > [python] ApplicationEvent causing memory growth > ----------------------------------------------- > > Key: PROTON-1709 > URL: https://issues.apache.org/jira/browse/PROTON-1709 > Project: Qpid Proton > Issue Type: Bug > Components: python-binding > Affects Versions: proton-c-0.18.1 > Reporter: Xin Chen > Assignee: Andrew Stitcher > Priority: Major > Labels: leak > Fix For: proton-c-0.31.0 > > > ApplicationEvent creates a new EventType object in the constructor. The > EventType object adds itself to the TYPES dict always, even for the same > typename. There is no way for the application to avoid this by providing an > EventType object directly. Repro code below: > {code:java} > import threading > from proton.reactor import Container, ApplicationEvent, EventInjector > class Program: > def __init__(self, injector): > self.injector = injector > def on_reactor_init(self, event): > event.reactor.selectable(self.injector) > def on_hello(self, event): > print(event.subject) > def on_done(self, event): > event.subject.stop() > e = EventInjector() > r = Container(Program(e)) > t = threading.Thread(target=r.run) > t.start() > for i in range(1, 10000000): > e.trigger(ApplicationEvent("hello", subject=str(i))) > e.trigger(ApplicationEvent("done", subject=r)) > t.join() > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org