DSL Rule based on Cron trigger that run twice: how is it possible?

I use openhab 2.5.5 (and I am moving to 2.5.9) on a raspberry pi v3.
I have a rather long rule that triggers every 30 seconds and I have just realized that sometimes it triggers twice : less frequently it triggers three times (At few milliseconds of distance).

val int nAppl = 8 // Global variable: number of controlled appliances

rule "ENEL MasterControl"
when
    Time cron "0/30 * * * * ?" // Trigger control every 30 seconds
then 
    val String logLabel="ENELcnt MasterControl" //Rule name for logInfo
    logInfo(logLabel,"************ Start MasterControl")
// long rule here
    logInfo(logLabel,"************ Stop MasterControl")
end

Some times, when the rule triggers twice the access to a global variable gives an error

2020-10-11 16:30:18.370 [ERROR] [ntime.internal.engine.ExecuteRuleJob] - Error during the execution of rule 'ENEL MasterControl': The name 'nAppl' cannot be resolved to an item or type

This is not a big issue but I wonder why it happens.
May this behavior be due to some misconfiguration or to some limit of resources (too many rules?, too much ram allocated?)

Thank you