<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi,<div>I don't use malloc myself in the code I added, but I see it is used a lot in the networking code.</div><div><br></div><div>I printed state and Wait.flags for SCrx task</div><div>* when all is ok *</div><div>in _Event_Seize, after _Thread_Dispatch_enable<br></div><div>state = 0x100 = STATES_WAITING_FOR_EVENT</div><div>Wait.flags = 0x102 = THREAD_WAIT_CLASS_EVENT | THREAD_WAIT_STATE_BLOCKED</div><div>in _Event_Surrender at the beginning</div><div>state = 0x100</div><div>Wait.flags = 0x102</div><div><br></div><div>* when SCrx is not scheduled any more *</div><div>in _Event_Seize, after _Thread_Dispatch_enable</div><div>state = 0x0 = STATES_READY</div><div>Wait.flags = 0x02 = THREAD_WAIT_STATE_BLOCKED <br></div><div>in _Event_Surrender at the beginning<br></div><div>state = 0x0</div><div>Wait.flags = 0x02</div><div><br></div><div>do these look like valid values ? I mean in _Event_Seize the state should have been blocked, right ?</div><div>can these values be caused by a corruption ?</div><div><br></div><div>-> Did you check the task stacks with the stack checker? <br></div><div>I'm afraid I don't know how to use it in RTEMS. any link to information on how to detect/analyze a data coruption in RTEMS can be useful.</div><div><br></div><div>regards,</div><div>Catalin</div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 11, 2018 at 8:50 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 10/10/2018 16:18, Catalin Demergian wrote:<br>
><br>
> Hi,<br>
><br>
> I got into another issue when I tried ping -f<br>
> [/] # assertion "the_watchdog->state == WATCHDOG_ACTIVE" failed: file <br>
> "../../../../../../c/src/../../cpukit/score/src/watchdogremove.c", <br>
> line 34, function: _Watchdog_Remove_it<br>
><br>
> *** PROFILING REPORT BEGIN PMC_APP ***<br>
> <ProfilingReport name="PMC_APP"><br>
> <PerCPUProfilingReport processorIndex="0"><br>
> <MaxThreadDispatchDisabledTime <br>
> unit="ns">2</MaxThreadDispatchDisabledTime><br>
> <MeanThreadDispatchDisabledTime <br>
> unit="ns">1</MeanThreadDispatchDisabledTime><br>
> <TotalThreadDispatchDisabledTime <br>
> unit="ns">408424</TotalThreadDispatchDisabledTime><br>
> <ThreadDispatchDisabledCount>404697</ThreadDispatchDisabledCount><br>
> <MaxInterruptDelay unit="ns">0</MaxInterruptDelay><br>
> <MaxInterruptTime unit="ns">0</MaxInterruptTime><br>
> <MeanInterruptTime unit="ns">0</MeanInterruptTime><br>
> <TotalInterruptTime unit="ns">0</TotalInterruptTime><br>
> <InterruptCount>0</InterruptCount><br>
> </PerCPUProfilingReport><br>
> </ProfilingReport><br>
> *** PROFILING REPORT END PMC_APP ***<br>
><br>
> do you think this one has a connection with the other assert ? (try to <br>
> get a process from am empty queue) ?<br>
<br>
The only connection I see is that you observe a corrupt data structure. <br>
Did you check the task stacks with the stack checker? Do you use heap <br>
buffers?<br>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
Phone : +49 89 189 47 41-16<br>
Fax : +49 89 189 47 41-09<br>
E-Mail : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a><br>
PGP : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
<br>
</blockquote></div>