Event-manager memory leak

Discussions about product bugs & problems!
Note: This is no replacement for the Official ETM Support!
Search

Post Reply
4 posts • Page 1 of 1
vadim
Posts: 11
Joined: Thu Jan 19, 2017 2:39 pm

Event-manager memory leak

Post by vadim »

We need to acknowledge alerts from script with additional information in _add_value_7 and _add_value_8. We use function alertSetWait for this (ACK_bug.ctl). It was noticed that in this case there is a memory leak on the event manager.
I attached project for demonstration.

1. Run the ACK_bug.ctl script in the console. This script acknowledges alerts with the addition of add_value_7 and add_value_8.
2. Memorize value of memory that uses by event manager.
3. Run the panel GenerateAlarm.pnl, click on "START".
4. Wait until the number of generated alarms become 3000 (CAME Alarms == 3000), alarm generation will be disabled.
5. Look on value of memory that uses by event manager. Make sure that the memory of the event Manager has increased significantly (On my hardware > 350%)

I note that this project is small and uses a little memory. However, on real projects there is a memory leak of about 10Gb in 10 minutes.
WinCC OA 3.14 p28
Attachments
TEST_ACK.zip
(2.52 MiB) Downloaded 250 times

User avatar
leoknipp
Posts: 2926
Joined: Tue Aug 24, 2010 7:28 pm

Re: Event-manager memory leak

Post by leoknipp »

If the number of pending alerts is increased the memory usage of the Event Manager will also increase. The Event Manager stores the information for pending alerts during runtime in memory.
I do not see a memory leak in that case.

If you do a simulation, e.g. 200 came alerts - 200 gone alerts - - no pending alerts - 200 came alerts - 200 gone alerts - no pending alerts .... and the memory usage increases with every loop then you have possibly found a memory leak.
As long as you are only increasing the number of pending alerts, without any gone alert, the memory usage will increase.

Also please check the settings for the alert class you have used. If the option "Acknowledge old alarms" is set you have to acknowledge all alert instances and not only the last one for a specific dp element.
Using this options leads to high number of pending alerts if there is no acknowledgement done.

Best Regards
Leopold Knipp
Senior Support Specialist

zheleschikovav
Posts: 6
Joined: Tue Jul 12, 2016 4:08 pm

Re: Event-manager memory leak

Post by zheleschikovav »

1. Whe are changing 1 signal.
2. All alerts is gone! only 1 alert is active(Sql report show only one 1 alarm).
3. We don't use "Acknowledge old alarms"

The main topic is if we write "_add_value_7 and _add_value_8" and ack in one alertSet, we have leak. If we don't use _add_value it's, no leak.

Code: Select all

alertSetWait(
            (time)at,
            count, 
            dpSubStr(id + "._ack_state", DPSUB_SYS_DP_EL_CONF_DET) + "._add_value_7"
            "FullName"],

            (time)at,
            count,                                                           
            dpSubStr(id + "._ack_state", DPSUB_SYS_DP_EL_CONF_DET) + "._add_value_8"
            "PC name",
   
            (time)at,
            count,
            id + "._ack_state",
            ackType
   );

User avatar
leoknipp
Posts: 2926
Joined: Tue Aug 24, 2010 7:28 pm

Re: Event-manager memory leak

Post by leoknipp »

I have installed the project and checked the settings for the alert class AC0000.
At this alert class the option "Acknowledge old alerts" is active.
When starting the alarm simulation using the panel "GenerateAlarm" the number of alarms increases as it is correct according to the given configuration.

In your answer you have written that this option is not used.
Have you modified the configuration between your first post and now?

Best Regards
Leopold Knipp
Senior Support Specialist

Post Reply
4 posts • Page 1 of 1