[Ovmsdev] Random crash if enable notifications

Tamás Kovács kommykt at gmail.com
Fri Jun 5 11:29:35 HKT 2020


Some day's ago i enabled Pushover notifications and i get some crash after
that.

The crash backtrase is:
Backtrace: 0x4008b75f 0x4008b9f9 0x4010b253 0x40098c5f 0x40084361
0x40084945 0x4000bec7 0x401c1181 0x400f01e1 0x400f0dbb 0x400f0db4
0x400f0db4 0x400f0db4 0x400f0db4 0x40156109 0x401550da 0x400f3545
0x400f375e 0x400f37d5 0x400f37e5

a2l output is:

kommykt at MacBook-Air OVMS.V3 % a2l 0x4008b75f 0x4008b9f9 0x4010b253
0x40098c5f 0x40084361 0x40084945 0x4000bec7 0x401c1181 0x400f01e1
0x400f0dbb 0x400f0db4 0x400f0db4 0x400f0db4 0x400f0db4 0x40156109
0x401550da 0x400f3545 0x400f375e 0x400f37d5 0x400f37e5

Using elf file:
/Users/kommykt/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/build/ovms3.elf


0x4008b75f is in invoke_abort
(/Users/kommykt/esp/esp-idf/components/esp32/panic.c:156).

151 #endif

152     while (1) {

153         if (esp_cpu_in_ocd_debug_mode()) {

154             __asm__ ("break 0,0");

155         }

156         *((int *) 0) = 0;

157     }

158 }

159

160 void abort()


0x4008b9f9 is in abort
(/Users/kommykt/esp/esp-idf/components/esp32/panic.c:171).

166     * don't overwrite that.

167     */

168     if (esp_reset_reason_get_hint() == ESP_RST_UNKNOWN) {

169         esp_reset_reason_set_hint(ESP_RST_PANIC);

170     }

171     invoke_abort();

172 }

173

174

175 static const char *edesc[] = {


0x4010b253 is in __assert_func
(../../../.././newlib/libc/stdlib/assert.c:63).


0x40098c5f is in multi_heap_free
(/Users/kommykt/esp/esp-idf/components/heap/multi_heap_poisoning.c:214).

209         return;

210     }

211     multi_heap_internal_lock(heap);

212

213     poison_head_t *head = verify_allocated_region(p, true);

214     assert(head != NULL);

215

216     #ifdef SLOW

217     /* replace everything with FREE_FILL_PATTERN, including the poison
head/tail */

218     memset(head, FREE_FILL_PATTERN,


0x40084361 is in heap_caps_free
(/Users/kommykt/esp/esp-idf/components/heap/heap_caps.c:268).

263         ptr = (void *)dramAddrPtr[-1];

264     }

265

266     heap_t *heap = find_containing_heap(ptr);

267     assert(heap != NULL && "free() target pointer is outside heap
areas");

268     multi_heap_free(heap->heap, ptr);

269 }

270

271 IRAM_ATTR void *heap_caps_realloc( void *ptr, size_t size, int caps)

272 {


0x40084945 is in _free_r
(/Users/kommykt/esp/esp-idf/components/newlib/syscalls.c:42).

37     return heap_caps_malloc_default( size );

38 }

39

40 void IRAM_ATTR _free_r(struct _reent *r, void* ptr)

41 {

42     heap_caps_free( ptr );

43 }

44

45 void* IRAM_ATTR _realloc_r(struct _reent *r, void* ptr, size_t size)

46 {


0x401c1181 is in operator delete(void*)
(/Volumes/build/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/del_op.cc:46).


0x400f01e1 is in std::_Rb_tree<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::_Select1st<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >
>::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >*)
(/Users/kommykt/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/ext/new_allocator.h:110).

105       }

106

107       // __p is not permitted to be a null pointer.

108       void

109       deallocate(pointer __p, size_type)

110       { ::operator delete(__p); }

111

112       size_type

113       max_size() const _GLIBCXX_USE_NOEXCEPT

114       { return size_t(-1) / sizeof(_Tp); }


0x400f0dbb is in std::_Rb_tree<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::_Select1st<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >*)
(/Users/kommykt/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_tree.h:1614).

1609       // Erase without rebalancing.

1610       while (__x != 0)

1611 {

1612   _M_erase(_S_right(__x));

1613   _Link_type __y = _S_left(__x);

1614   _M_drop_node(__x);

1615   __x = __y;

1616 }

1617     }

1618


0x400f0db4 is in std::_Rb_tree<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::_Select1st<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >*)
(/Users/kommykt/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_tree.h:1612).

1607     _M_erase(_Link_type __x)

1608     {

1609       // Erase without rebalancing.

1610       while (__x != 0)

1611 {

1612   _M_erase(_S_right(__x));

1613   _Link_type __y = _S_left(__x);

1614   _M_drop_node(__x);

1615   __x = __y;

1616 }


0x400f0db4 is in std::_Rb_tree<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::_Select1st<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >*)
(/Users/kommykt/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_tree.h:1612).

1607     _M_erase(_Link_type __x)

1608     {

1609       // Erase without rebalancing.

1610       while (__x != 0)

1611 {

1612   _M_erase(_S_right(__x));

1613   _Link_type __y = _S_left(__x);

1614   _M_drop_node(__x);

1615   __x = __y;

1616 }


0x400f0db4 is in std::_Rb_tree<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::_Select1st<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >*)
(/Users/kommykt/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_tree.h:1612).

1607     _M_erase(_Link_type __x)

1608     {

1609       // Erase without rebalancing.

1610       while (__x != 0)

1611 {

1612   _M_erase(_S_right(__x));

1613   _Link_type __y = _S_left(__x);

1614   _M_drop_node(__x);

1615   __x = __y;

1616 }


0x400f0db4 is in std::_Rb_tree<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::_Select1st<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >
>::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > > >*)
(/Users/kommykt/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_tree.h:1612).

1607     _M_erase(_Link_type __x)

1608     {

1609       // Erase without rebalancing.

1610       while (__x != 0)

1611 {

1612   _M_erase(_S_right(__x));

1613   _Link_type __y = _S_left(__x);

1614   _M_drop_node(__x);

1615   __x = __y;

1616 }


0x40156109 is in Pushover::EventListener(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >, void*)
(/Users/kommykt/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_tree.h:858).

853

854       _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a);

855 #endif

856

857       ~_Rb_tree() _GLIBCXX_NOEXCEPT

858       { _M_erase(_M_begin()); }

859

860       _Rb_tree&

861       operator=(const _Rb_tree& __x);

862


0x401550da is in std::_Function_handler<void
(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, void*), std::_Bind<std::_Mem_fn<void
(Pushover::*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, void*)> (Pushover*, std::_Placeholder<1>,
std::_Placeholder<2>)> >::_M_invoke(std::_Any_data const&,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >&&, void*&&)
(/Users/kommykt/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/functional:600).

595       template<typename... _Args, typename _Req

596               = _Require<typename _Traits::__lvalue,

597                           _CheckArgs<_Pack<_Args...>>>>

598 result_type

599 operator()(_Class* __object, _Args&&... __args) const

600 { return (__object->*_M_pmf)(std::forward<_Args>(__args)...); }

601

602       // Handle smart pointers, references and pointers to derived

603       template<typename _Tp, typename... _Args, typename _Req

604               = _Require<_NotSame<_Class, _Tp>, _NotSame<_Class*, _Tp>,


0x400f3545 is in std::function<void (std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
void*)>::operator()(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >, void*) const
(/Users/kommykt/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/functional:2271).

2266     function<_Res(_ArgTypes...)>::

2267     operator()(_ArgTypes... __args) const

2268     {

2269       if (_M_empty())

2270 __throw_bad_function_call();

2271       return _M_invoker(_M_functor,
std::forward<_ArgTypes>(__args)...);

2272     }

2273

2274 #if __cpp_rtti

2275   template<typename _Res, typename... _ArgTypes>


0x400f375e is in OvmsEvents::HandleQueueSignalEvent(event_queue_t*)
(/Users/kommykt/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/main/ovms_events.cpp:234).

229       {

230       for (EventCallbackList::iterator itc=el->begin(); itc!=el->end();
++itc)

231         {

232         m_current_started = monotonictime;

233         m_current_callback = *itc;

234         m_current_callback->m_callback(m_current_event,
msg->body.signal.data);

235         m_current_callback = NULL;

236         }

237       }

238     }


0x400f37d5 is in OvmsEvents::EventTask()
(/Users/kommykt/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/main/ovms_events.cpp:185).

180       switch(msg.type)

181         {

182         case EVENT_none:

183           break;

184         case EVENT_signal:

185           HandleQueueSignalEvent(&msg);

186           break;

187         default:

188           break;

189         }


0x400f37e5 is in EventLaunchTask(void*)
(/Users/kommykt/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/main/ovms_events.cpp:56).

51

52 void EventLaunchTask(void *pvParameters)

53   {

54   OvmsEvents* me = (OvmsEvents*)pvParameters;

55

56   me->EventTask();

57   }

58

59 void event_trace(int verbosity, OvmsWriter* writer, OvmsCommand* cmd,
int argc, const char* const* argv)

60   {

-- 
Üdvözlettel:
Kovács Tamás
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20200605/3d5ead2b/attachment-0001.html>


More information about the OvmsDev mailing list