Switched to HE from ST. Strange Error


#1

I’m not sure what this is telling me.

app:1072021-01-31 08:35:27.528 am errorlarge queue size 9

My normal lights off and on (day and night) pistons have been not executing. This is the error I see in the logs. I haven’t seen this before. Can anyone help decoder this error?


#2

tagging @E_Sch


#3

It is more of a warning

It is showing a lot of events came into a piston while it was running. If you don’t see any other message, then webcore plowed thru them all.

One to work about more is if it also said “clearing”


#4

Thanks. I also noticed some time issues with pistons that works fine in ST and aren’t executing in HE. Do you know if anything is handled differently in piston execution on HE than ST?


#5

time is a bit different (it is described in note 1 in the HE thread on webcore)

Typically if you see things trying to parse or do offsets of UTC, you can just parse the time string and it will be correct (no doing extra math) to worry about TZ.


#6

Would that relate to an issue I am seeing with a while loop terminating due to timeout?

executeStatement:Execution time exceeded by 40002ms,Terminating


#7

on ST, if a single execution exceeds 20seconds, they terminate it.

There is no such built into HE, so webCoRE had to create it to avoid run-away / infinite loop pistons causing you problems.

Typically if you look at logs, one of several things may be happening:

  • The piston is in an infinite loop
  • The piston is doing short waits (1 second or less), and thus does not go to sleep (so another form of infinite loop; ie you never release the processor)

So would need to see your piston.

It is possible to adjust item 2 (ie on short sleeps, have webcore release the cpu vs. hold it) via a small source change you can make.


Holiday Lights: 4th of July / Diwali / Halloween / Christmas - Your Pick
#8

Sure here you go:


#9

at line 252 there is a wait 1 second (which works, but it is short wait so webcore does not exit the event)

Bullet 2 of my post above…

Choices

  • make it 1.5 seconds or 2 seconds (current webcore code will sleep if the wait is 970ms or longer)
  • you can change your webcore to change the 970ms to say 600 ms
    • This would be in the method getPistonLimits in the piston source file. you would change scheduleVariance from 970L to 600L

      scheduleVariance: 600L,


#10

How do I do this option? I changed the 1 sec to 2.5


#11

Is it working for you (changing 1-2.5)

then you are all set.

I think you could have changed 1 to 1.2 or 1.5 to achieve the same goal.


#12

I’ll have to wait for night to see since this only runs at night.