Rollback despite system being marked as good

I’m having an issue where even after the system passes the probation period it rolls back at some point. I’m trying to determine why this is happening and under what conditions does the system roll back even after passing probation? I check ‘legato status’, which shows the system is marked ‘good’. Is there any way I can check the cause for the rollback? Your help is appreciated.

Some additional details after a few rounds of testing. I found that the system rolls back when I’m running the device off a battery and I let the battery drain completely. When the battery is charged again and the device is powered it goes through the rollback process, despite the system being in a ‘good’ state. Ideally in production we’re not going to let the battery drain out but I’m trying to understand what causes this behavior. Any help would be appreciated.

HI Ktanikel
Legato currently doesn’t detect hardware faults (e.g. loss of power), and so will treat any quick reboot as a software fault, and roll back to golden master if too many occur in a short period. That’s why you can observe this when the battery drain completely .
Some improvements should be added into next versions of Legato, to avoid spurious rollbacks, to identify if unexpected resets is due to hardware faults ( loss of power, temperature, low voltage…)
best regards,

Hi plu,

Thanks for the reply, that explains the behavior on our devices. As a follow up question, does this occur even when devMode is enabled? I have devMode enabled on our devices and I read somewhere that it bypasses some of these checks.

Hi ktanikel,
you’re right!
see https://docs.legato.io/latest/basicTargetDevMode.html
one method is to decrease the value of the probation period,

for example to set to 30sec put into the .adef file something like that:

processes: {
envVars: {
LE_PROBATION_MS = 30000
}

best regards,

Hi @plu

You mentioned some improvements to Legato to avoid spurious rollbacks on loss of power. Checked the legato change logs but no mention of this fix. Do you know if this is improved in a released Legato version or if this is still a problem in Legato 19.04?

Maybe this commit:

Looks promising! Will do some testing.

For info, during cyclic reset tests on WP7607-1 / legato 19.02, I was also facing some unexpected rollback despite for system being marked as good.

It appears that this issue was linked to a wrong handling of the “bootCount” parameter. It has been fixed in 19.04.

You can refer to the following commit for details.

When using 19.04 or above, I confirm the rollback does not happen during my reset test when the system is marked as good