<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Tamás,<br>
    <br>
    I've got a test build that should fix your reboot issue, if my
    diagnosis was correct. Can you please test this firmware image?<br>
    <br>
    <a class="moz-txt-link-freetext" href="http://ovms.dexters-web.de/f/firmware/test/ovms3.bin">http://ovms.dexters-web.de/f/firmware/test/ovms3.bin</a><br>
    <br>
    The build works in my test & live module. The changes are not
    yet checked in, patch attached. This consists of a) delegating
    registry changes to the event task and b) invalidating callbacks in
    the list on deregistration before actually deleting them, so the
    list processing cannot run into deleted entries, when deregistration
    is done from within a callback execution.<br>
    <br>
    The changes need another mutex and a larger event queue. I had queue
    size 40 before, minimum now is 80, build uses 100 to be on the safe
    side. That means another 720 bytes of 8-bit RAM are used for the
    queue unfortunately, but that shouldn't be a problem yet.<br>
    <br>
    I also again needed to power off my module for the reboot, but with
    the new firmware, the reboot works. So chances are, this issue is
    now hit more often than before, probably because of more stuff going
    on in the shutdown.<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 02.01.25 um 15:25 schrieb Michael
      Balzer via OvmsDev:<br>
    </div>
    <blockquote type="cite"
      cite="mid:a139a433-5398-4e02-9cd5-00c100556df3@expeedo.de">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      The log shows it actually crashes during the shutdown process --
      but @Michael, I'm pretty sure this is an old issue, turning up now
      only by chance.<br>
      <br>
      This looks like a race condition between event handler invocation
      and deregistration:<br>
      <br>
      <font face="monospace">Guru Meditation Error: Core  1 panic'ed
        (InstrFetchProhibited).</font><font face="monospace"> Exception
        was unhandled.</font><br>
      <font face="monospace">…<br>
        Backtrace: 0x41000000:0x3ffc8c30 0x401208ed:0x3ffc8c60
        0x401209d4:0x3ffc8cc0 0x40120a5d:0x3ffc8d00<br>
        <br>
        → Crash at <b>0x41000000</b> (invalid address), called from:<br>
        <br>
        0x401208ed is in
        OvmsEvents::HandleQueueSignalEvent(event_queue_t*)
(/home/balzer/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/main/ovms_events.cpp:310).<br>
        305           {<br>
        306           for (EventCallbackList::iterator
        itc=el->begin(); itc!=el->end(); ++itc)<br>
        307             {<br>
        308             m_current_started = monotonictime;<br>
        309             m_current_callback = *itc;<br>
        <b>310            
          m_current_callback->m_callback(m_current_event,
          msg->body.signal.data);</b><br>
        311             m_current_callback = NULL;<br>
        312             }<br>
        313           }<br>
        314         }</font><br>
      <br>
      From there it then enters a crash loop from the crash handler
      somehow running into an illegal address when trying to access the
      RTC boot_data object (?).<br>
      <br>
      <br>
      I think, when introducing the separate event handling task, we
      missed adding a lock to make manipulations & accesses to the
      event handler list atomic.<br>
      <br>
      The log shows, the event queue grew significantly due to
      duktape/scripts lagging during shutdown (as seen in the log), so
      the task was quite busy.<br>
      <br>
      So probably a `DeregisterEvent()` call from the shutdown process
      came in, invalidating a callback entry just while the event task
      was processing that callback list.<br>
      <br>
      Solving this may need some additional thoughts & measures:
      locking the whole event registry with handlers lagging like this
      could lead to a deadlock… probably at least the Duktape component
      needs to cleanly abort/reject all pending events before/while
      deregistering.<br>
      <br>
      Michael, if you'd like to have a look at this, go ahead.<br>
      <br>
      Regards,<br>
      Michael<br>
      <br>
      <br>
      <div class="moz-cite-prefix">Am 01.01.25 um 11:47 schrieb Tamás
        Kovács via OvmsDev:<br>
      </div>
      <blockquote type="cite"
cite="mid:CAGpaXUuB_0w2n77te375QXQS66MbKOX1D3AQGn_T0TFv7ST4kg@mail.gmail.com">
        <meta http-equiv="content-type"
          content="text/html; charset=UTF-8">
        <div dir="ltr">
          <div>Now i change the sd card to a smaller, and formatted to
            fat32 (16Gb), but on reboot is crashing.</div>
          <div>Now connect a computer to the usb port, and create a log
            in verbose, attached to the email.</div>
          <div><br>
          </div>
          <div><br>
          </div>
          <span class="gmail_signature_prefix">-- </span><br>
          <div dir="ltr" class="gmail_signature"
            data-smartmail="gmail_signature">Üdvözlettel:<br>
            Kovács Tamás<br>
            <br>
          </div>
        </div>
        <br>
        <fieldset class="moz-mime-attachment-header"></fieldset>
        <pre wrap="" class="moz-quote-pre">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext"
        href="mailto:OvmsDev@lists.openvehicles.com"
        moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext"
        href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
        moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
      </blockquote>
      <br>
      <pre class="moz-signature" cols="72">-- 
Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
Fon 02330 9104094 * Handy 0176 20698926</pre>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre wrap="" class="moz-quote-pre">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
Fon 02330 9104094 * Handy 0176 20698926</pre>
  </body>
</html>