[Ovmsdev] Time for 3.2.003? / Issue #241
Michael Balzer
dexter at expeedo.de
Thu Sep 19 15:23:05 HKT 2019
Sorry, I didn't think about this being an issue elsewhere -- german data plans typically start at minimum 100 MB/month flat (that's my current
plan at 3 € / month).
No need for a new release, it can be turned off OTA by issueing
config set module debug.tasks no
Regards,
Michael
Am 19.09.19 um 09:08 schrieb Mark Webb-Johnson:
> Yep:
>
> 758 bytes * (86400 / 300) * 30 = 6.5MB/month
>
>
> That is going over data (not SD). Presumably cellular data for a large portion of the time.
>
> I think we need to default this to OFF, and make a 3.2.004 to avoid this becoming an issue.
>
> Regards, Mark.
>
>> On 19 Sep 2019, at 2:04 PM, Stephen Casner <casner at acm.org <mailto:casner at acm.org>> wrote:
>>
>> That's 6.55MB/month, unless you have unusually short months! :-)
>>
>> In what space is that data stored? A log written to SD? That's not
>> likely to fill up the SD card too fast, but what happens if no SD card
>> is installed?
>>
>> -- Steve
>>
>> On Thu, 19 Sep 2019, Mark Webb-Johnson wrote:
>>
>>>> To enable CPU usage statistics, apply the changes to sdkconfig
>>>> included.
>>>> New history record:
>>>> - "*-OVM-DebugTasks" v1: <taskcnt,totaltime> + per task:
>>>> <tasknum,name,state,stack_now,stack_max,stack_total,
>>>> heap_total,heap_32bit,heap_spi,runtime>
>>>> Note: CPU core use percentage = runtime / totaltime
>>>
>>> I’ve just noticed that this is enabled by default now (my production build has the sdkconfig updated, as per defaults).
>>>
>>> I am seeing 758 bytes of history record, every 5 minutes. About 218KB/day, or 654KB/month.
>>>
>>> Should this be opt-in?
>>>
>>> Regards, Mark.
>>>
>>>> On 8 Sep 2019, at 5:43 PM, Michael Balzer <dexter at expeedo.de <mailto:dexter at expeedo.de>> wrote:
>>>>
>>>> I've pushed some modifications and improvements to (hopefully) fix the timer issue or at least be able to debug it.
>>>>
>>>> Some sdkconfig changes are necessary.
>>>>
>>>> The build including these updates is on my edge release as 3.2.002-258-g20ae554b.
>>>>
>>>> Btw: the network restart strategy seems to mitigate issue #241; I've seen a major drop on record repetitions on my server since the rollout.
>>>>
>>>>
>>>> commit 99e4e48bdd40b7004c0976f51aba9e3da4ecab53
>>>>
>>>> Module: add per task CPU usage statistics, add task stats history records
>>>>
>>>> To enable CPU usage statistics, apply the changes to sdkconfig
>>>> included. The CPU usage shown by the commands is calculated against
>>>> the last task status retrieved (or system boot).
>>>>
>>>> Command changes:
>>>> - "module tasks" -- added CPU (core) usage in percent per task
>>>>
>>>> New command:
>>>> - "module tasks data" -- output task stats in history record form
>>>>
>>>> New config:
>>>> - [module] debug.tasks -- yes (default) = send task stats every 5 minutes
>>>>
>>>> New history record:
>>>> - "*-OVM-DebugTasks" v1: <taskcnt,totaltime> + per task:
>>>> <tasknum,name,state,stack_now,stack_max,stack_total,
>>>> heap_total,heap_32bit,heap_spi,runtime>
>>>> Note: CPU core use percentage = runtime / totaltime
>>>>
>>>> commit 950172c216a72beb4da0bc7a40a46995a6105955
>>>>
>>>> Build config: default timer service task priority raised to 20
>>>>
>>>> Background: the FreeRTOS timer service shall only be used for very
>>>> short and non-blocking jobs. We delegate event processing to our
>>>> events task, anything else in timers needs to run with high
>>>> priority.
>>>>
>>>> commit 31ac19d187480046c16356b80668de45cacbb83d
>>>>
>>>> DukTape: add build config for task priority, default lowered to 3
>>>>
>>>> Background: the DukTape garbage collector shall run on lower
>>>> priority than tasks like SIMCOM & events
>>>>
>>>> commit e0a44791fbcfb5a4e4cad24c9d1163b76e637b4f
>>>>
>>>> Server V2: use esp_log_timestamp for timeout detection,
>>>> add timeout config, limit data records & size per second
>>>>
>>>> New config:
>>>> - [server.v2] timeout.rx -- timeout in seconds, default 960
>>>>
>>>> commit 684a4ce9525175a910040f0d1ca82ac212fbf5de
>>>>
>>>> Notify: use esp_log_timestamp for creation time instead of monotonictime
>>>> to harden against timer service starvation / ticker event drops
>>>>
>>>>
>>>> Regards,
>>>> Michael
>>>>
>>>>
>>>> Am 07.09.19 um 10:55 schrieb Michael Balzer:
>>>>> I think the RTOS timer service task starves. It's running on core 0 with priority 1.
>>>>>
>>>>> Taks on core 0 sorted by priority:
>>>>>
>>>>> Number of Tasks = 20 Stack: Now Max Total Heap 32-bit SPIRAM C# PRI
>>>>> 3FFC84A8 6 Blk ipc0 388 500 1024 7788 0 0 0 24
>>>>> 3FFC77F0 5 Blk OVMS CanRx 428 428 2048 3052 0 31844 0 23
>>>>> 3FFAFBF4 1 Blk esp_timer 400 656 4096 35928 644 25804 0 22
>>>>> 3FFD3240 19 Blk wifi 460 2716 3584 43720 0 20 0 22
>>>>> 3FFC03C4 2 Blk eventTask 448 1984 4608 104 0 0 0 20
>>>>> 3FFC8F14 17 Blk tiT 500 2308 3072 6552 0 0 * 18
>>>>> 3FFE14F0 26 Blk OVMS COrx 456 456 4096 0 0 0 0 7
>>>>> 3FFE19D4 27 Blk OVMS COwrk 476 476 3072 0 0 0 0 7
>>>>> 3FFCBC34 12 Blk Tmr Svc 352 928 3072 88 0 0 0 1
>>>>> 3FFE7708 23 Blk mdns 468 1396 4096 108 0 0 0 1
>>>>>
>>>>> I don't think it's our CanRx, as that only fetches and queues CAN frames, the actual work is done by the listeners. The CO tasks only run
>>>>> for CANopen jobs, which are few for normal operation.
>>>>>
>>>>> That leaves the system tasks, with main suspect -once again- the wifi blob.
>>>>>
>>>>> We need to know how much CPU time the tasks actually use now. I think I saw some option for this in the FreeRTOS config.
>>>>>
>>>>> Regards,
>>>>> Michael
>>>>>
>>>>>
>>>>> Am 06.09.19 um 23:15 schrieb Michael Balzer:
>>>>>> The workaround is based on the monotonictime being updated per second, as do the history record offsets.
>>>>>>
>>>>>> Apparently, that mechanism doesn't work reliably. That may be an indicator for some bigger underlying issue.
>>>>>>
>>>>>> Example log excerpt:
>>>>>>
>>>>>> 2019-09-06 22:07:48.126919 +0200 info main: #173 C MITPROHB rx msg h 964,0,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:09:03.089031 +0200 info main: #173 C MITPROHB rx msg h 964,-10,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:09:05.041574 +0200 info main: #173 C MITPROHB rx msg h 964,-20,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:09:05.052644 +0200 info main: #173 C MITPROHB rx msg h 964,-30,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:09:05.063617 +0200 info main: #173 C MITPROHB rx msg h 964,-49,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:09:05.077527 +0200 info main: #173 C MITPROHB rx msg h 964,-59,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:09:05.193775 +0200 info main: #173 C MITPROHB rx msg h 964,-70,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:09:13.190645 +0200 info main: #173 C MITPROHB rx msg h 964,-80,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:09:22.077994 +0200 info main: #173 C MITPROHB rx msg h 964,-90,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:09:54.590300 +0200 info main: #173 C MITPROHB rx msg h 964,-109,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:11:10.127054 +0200 info main: #173 C MITPROHB rx msg h 964,-119,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:11:16.794200 +0200 info main: #173 C MITPROHB rx msg h 964,-130,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:11:22.455652 +0200 info main: #173 C MITPROHB rx msg h 964,-140,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:12:49.423412 +0200 info main: #173 C MITPROHB rx msg h 964,-150,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:12:49.442096 +0200 info main: #173 C MITPROHB rx msg h 964,-169,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:12:49.461941 +0200 info main: #173 C MITPROHB rx msg h 964,-179,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:14:39.828133 +0200 info main: #173 C MITPROHB rx msg h 964,-190,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:14:39.858144 +0200 info main: #173 C MITPROHB rx msg h 964,-200,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:14:52.020319 +0200 info main: #173 C MITPROHB rx msg h 964,-210,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:14:54.452637 +0200 info main: #173 C MITPROHB rx msg h 964,-229,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:15:12.613935 +0200 info main: #173 C MITPROHB rx msg h 964,-239,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:15:35.223845 +0200 info main: #173 C MITPROHB rx msg h 964,-250,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:16:09.255059 +0200 info main: #173 C MITPROHB rx msg h 964,-260,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:17:31.919754 +0200 info main: #173 C MITPROHB rx msg h 964,-270,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:19:23.366267 +0200 info main: #173 C MITPROHB rx msg h 964,-289,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:21:57.344609 +0200 info main: #173 C MITPROHB rx msg h 964,-299,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:23:40.082406 +0200 info main: #31 C MITPROHB rx msg h 964,-1027,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>> 2019-09-06 22:25:58.061883 +0200 info main: #31 C MITPROHB rx msg h 964,-1040,RT-BAT-C,5,86400,2,1,3830,3795,3830,-10,25,25,25,0
>>>>>>
>>>>>>
>>>>>> This shows the ticker was only run 299 times from 22:07:48 to 22:21:57.
>>>>>>
>>>>>> After 22:21:57 the workaround was triggered and did a reconnect. Apparently during that network reinitialization of 103 seconds, the per
>>>>>> second ticker was run 628 times.
>>>>>>
>>>>>> That can't be catching up on the event queue, as that queue has only 20 slots. So something strange is going on here.
>>>>>>
>>>>>> Any ideas?
>>>>>>
>>>>>> Regards,
>>>>>> Michael
>>>>>>
>>>>>>
>>>>>> Am 06.09.19 um 08:04 schrieb Michael Balzer:
>>>>>>> Mark & anyone else running a V2 server,
>>>>>>>
>>>>>>> as most cars don't send history records, this also needs the change to the server I just pushed, i.e. server version 2.4.2.
>>>>>>>
>>>>>>> https://github.com/openvehicles/Open-Vehicle-Monitoring-System/commits/master
>>>>>>> <https://github.com/openvehicles/Open-Vehicle-Monitoring-System/commits/master>
>>>>>>>
>>>>>>> Regards,
>>>>>>> Michael
>>>>>>>
>>>>>>>
>>>>>>> Am 05.09.19 um 19:55 schrieb Michael Balzer:
>>>>>>>> I've pushed the nasty workaround: the v2 server checks for no RX over 15 minutes, then restarts the network (wifi & modem) as
>>>>>>>> configured for autostart.
>>>>>>>>
>>>>>>>> Rolled out on my server in edge as 3.2.002-237-ge075f655.
>>>>>>>>
>>>>>>>> Please test.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Michael
>>>>>>>>
>>>>>>>>
>>>>>>>> Am 05.09.19 um 01:58 schrieb Mark Webb-Johnson:
>>>>>>>>>> Mark, you can check your server logs for history messages with ridiculous time offsets:
>>>>>>>>>> [sddexter at ns27 server]$ cat log-20190903 | egrep "rx msg h [0-9]+,-[0-9]{4}" | wc -l
>>>>>>>>>> 455283
>>>>>>>>>
>>>>>>>>> I checked my logs and see 12 vehicles showing this. But, 2 only show this for a debugcrash log (which is expected, I guess, if the
>>>>>>>>> time is not synced at report time). I’ve got 4 cars with the offset > 10,000.
>>>>>>>>>
>>>>>>>>> Regards, Mark.
>>>>>>>>>
>>>>>>>>>> On 4 Sep 2019, at 4:45 AM, Michael Balzer <dexter at expeedo.de <mailto:dexter at expeedo.de> <mailto:dexter at expeedo.de>> wrote:
>>>>>>>>>>
>>>>>>>>>> Everyone,
>>>>>>>>>>
>>>>>>>>>> I've pushed a change that needs some testing.
>>>>>>>>>>
>>>>>>>>>> I had the issue myself now parking at a certain distance from my garage wifi AP, i.e. on the edge of "in", after wifi had been
>>>>>>>>>> disconnected for some hours, and with the module still connected via modem. The wifi blob had been trying to connect to the AP for
>>>>>>>>>> about two hours.
>>>>>>>>>>
>>>>>>>>>> As seen before, the module saw no error, just the server responses and commands stopped coming in. I noticed the default interface
>>>>>>>>>> was still "st1" despite wifi having been disconnected and modem connected. The DNS was also still configured for my wifi network, and
>>>>>>>>>> the interface seemed to have an IP address -- but wasn't pingable from the wifi network.
>>>>>>>>>>
>>>>>>>>>> A power cycle of the modem solved the issue without reboot. So the cause may be in the modem/ppp subsystem, or it may be related (in
>>>>>>>>>> some weird way) to the default interface / DNS setup.
>>>>>>>>>>
>>>>>>>>>> More tests showed the default interface again/still got set by the wifi blob itself at some point, overriding our modem
>>>>>>>>>> prioritization. The events we didn't handle up to now were "sta.connected" and "sta.lostip", so I added these, and the bug didn't
>>>>>>>>>> show up again since then. That doesn't mean anything, so we need to test this.
>>>>>>>>>>
>>>>>>>>>> The default interface really shouldn't affect inbound packet routing of an established connection, but there always may be strange
>>>>>>>>>> bugs lurking in those libs.
>>>>>>>>>>
>>>>>>>>>> The change also reimplements the wifi signal strength reading, as the tests also showed that still wasn't working well using the CSI
>>>>>>>>>> callback. It now seems to be much more reliable.
>>>>>>>>>>
>>>>>>>>>> Please test & report. The single module will be hard to test, as the bug isn't reproducable easily, but you can still try if wifi /
>>>>>>>>>> modem transitions work well.
>>>>>>>>>>
>>>>>>>>>> Mark, you can check your server logs for history messages with ridiculous time offsets:
>>>>>>>>>> [sddexter at ns27 server]$ cat log-20190903 | egrep "rx msg h [0-9]+,-[0-9]{4}" | wc -l
>>>>>>>>>> 455283
>>>>>>>>>> The bug now severely affects the V2 server performance, as the server is single threaded and doesn't scale very well to this kind of
>>>>>>>>>> bulk data bursts, especially when coming from multiple modules in parallel. So we really need to solve this now. Slow reactions or
>>>>>>>>>> connection drops from my server lately have been due to this bug. If this change doesn't solve it, we'll need to add some reboot
>>>>>>>>>> trigger on "too many server v2 notification retransmissions" -- or maybe a modem power cycle will do, that wouldn't discard the data.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Michael
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Am 03.09.19 um 07:46 schrieb Mark Webb-Johnson:
>>>>>>>>>>> No problem. We can hold. I won’t commit anything for the next few days (and agree to hold-off on Markos’s pull). Let me know when
>>>>>>>>>>> you are ready.
>>>>>>>>>>>
>>>>>>>>>>> Regards, Mark.
>>>>>>>>>>>
>>>>>>>>>>>> On 3 Sep 2019, at 1:58 AM, Michael Balzer <dexter at expeedo.de <mailto:dexter at expeedo.de>> <mailto:dexter at expeedo.de> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Mark, please wait.
>>>>>>>>>>>>
>>>>>>>>>>>> I may just have found the cause for issue #241, or at least something I need to investigate before releasing.
>>>>>>>>>>>>
>>>>>>>>>>>> I need to dig into my logs first, and try something.
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>> Michael
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Am 02.09.19 um 12:23 schrieb Michael Balzer:
>>>>>>>>>>>>> Nothing open from my side at the moment.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I haven't had the time to look in to Markos pull request, but from a first check also think that's going too deep to be included
>>>>>>>>>>>>> in this release.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>> Michael
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Am 02.09.19 um 04:15 schrieb Mark Webb-Johnson:
>>>>>>>>>>>>>> I think it is well past time for a 3.2.003 release. Things seems table in edge (although some things only partially implemented).
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Anything people want to include at the last minute, or can we go ahead and build?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Regards, Mark.
>>>>>>>>>>>>>>
--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20190919/ff8be2c5/attachment.htm>
More information about the OvmsDev
mailing list