--- src/zabbix_server/timer/timer.c.orig 2013-02-06 17:32:05.000000000 +0400 +++ src/zabbix_server/timer/timer.c 2013-02-07 12:09:26.000000000 +0400 @@ -422,8 +422,9 @@ * Function: generate_events * * * * Purpose: generate events for triggers after maintenance period * - * The events will be generated if trigger changed its state during * - * the maintenance * + * The events will be generated only in case of trigger was FALSE * + * before maintenance and became TRUE after maintenance, also in * + * case if it was TRUE before and FALSE after. * * * * Parameters: hostid - host identifier from database * * maintenance_from, maintenance_to - maintenance period bounds * @@ -470,7 +471,7 @@ get_trigger_values(triggerid, maintenance_from, maintenance_to, &value_before, &value_inside, &value_after); - if (value_before == value_inside && value_inside == value_after) + if (value_before == value_after) continue; if (tr_num == tr_alloc) @@ -492,7 +493,7 @@ for (i = 0; i < tr_num; i++) { process_event(eventid++, EVENT_SOURCE_TRIGGERS, EVENT_OBJECT_TRIGGER, tr[i].triggerid, - &ts, tr[i].new_value, TRIGGER_VALUE_CHANGED_NO, 0, 1); + &ts, tr[i].new_value, TRIGGER_VALUE_CHANGED_YES, 0, 1); } }