On 9/19/21 12:53 AM, Michael Balzer wrote:
The corrupt heap crashes might be something else, up to now I only saw them with the for-v3.3 branch. I'm currently trying to reproduce one of these on "master". Unfortunately gdb cannot handle them, the call stack also seems to be corrupted.
My overnight run with the for-v3.3 branch ran for about 6 hours and then hit another CORRUPT HEAP.
Here's a new version of the script that logs progress so you don't need to enable event logging:
// Setup: script eval 'testcnt=0; PubSub.subscribe("usr.testev", function(ev) { var ms=Number(ev.substr(11))||10; if (++testcnt % (3*1000/ms) == 0) print(ev + ": " + testcnt); OvmsEvents.Raise("usr.testev."+ms, ms); })'
// Start with 10 ms interval: script eval 'testcnt=0; OvmsEvents.Raise("usr.testev.10")'
// Check status: script eval 'print("testcnt: " + testcnt + "\n")'
// Stop: script eval 'PubSub.unsubscribe("usr.testev")'
This version will log a loop counter every 3 seconds, and you can query the loop counter by the check command.
Example:
… I (2369414) script: [eval:1:] usr.testev.10: 37500 I (2373244) script: [eval:1:] usr.testev.10: 37800 I (2376884) script: [eval:1:] usr.testev.10: 38100 E (2377694) script: [int/PubSub.js:1] TypeError: not object coercible| at [anon] (duk_api_stack.c:3661) internal| at hasKeys (int/PubSub.js:1) strict| at messageHasSubscribers (int/PubSub.js:1) strict| at publish (int/PubSub.js:1) strict| at [anon] (int/PubSub.js:1) strict preventsyield OVMS# script eval 'print("testcnt: " + testcnt + "\n")' testcnt: 38155
Please try this with "master" as well to see if you also only get the heap corruption with for-v3.3.
I've been running your new test script on for-v3.3 and main for 1 hour (both v3 boxes), no issues so far. Craig