Tamas Fodor created METRON-1790:
-----------------------------------

             Summary: Unsubscribe from every observable in the pcap panel UI 
component
                 Key: METRON-1790
                 URL: https://issues.apache.org/jira/browse/METRON-1790
             Project: Metron
          Issue Type: Improvement
            Reporter: Tamas Fodor
            Assignee: Tamas Fodor


There are a lot of http requests performed in the pcap panel ui component and 
we just unsubscribe from some of them when the component is no longer rendered 
on the screen. It could cause memory consumption issues. Because of the active 
subscriptions, the garbage collector is not able to remove these objects from 
the memory, however they're not needed to be there anymore.

There's another benefit of unsubscribing from these http calls. If the user 
leaves the pcap tab but there are pending requests, the unsubscribe method 
cancels the active xhrs immediately so it won't wait for fulfilment 
unnecessarily.

[https://github.com/apache/metron/blob/master/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.ts#L54]

I would also refactor that part when we convert an observable to a promise. I 
would keep it as an observable. By doing this, we would be able to unsubscribe 
from it as well in the destructor method. Promises are not cancelable.

[https://github.com/apache/metron/blob/master/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.ts#L70]

Resources:

[https://angular.io/guide/lifecycle-hooks#ondestroy]

This is the place to free resources that won't be garbage collected 
automatically. Unsubscribe from Observables and DOM events. Stop interval 
timers.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to