New crash: assertion "pbuf_free: p->ref > 0"



  • I haven't come across this one before. Is there a simple meaning to this?

    "
    assertion "pbuf_free: p->ref > 0" failed: file "/Users/ehlers/pycom/pycom-esp-idf/components/lwip/lwip/src/core/pbuf.c", line 765, function: pbuf_free
    abort() was called at PC 0x40167e57 on core 1
    "



  • @troy-salt You actually already had issues with it a year ago: https://forum.pycom.io/topic/6344/pbuf_free-crash-cause

    Someone needs to decode the core dump to try to get to the root cause.



  • @troy-salt There is no simple meaning. p_buf is the buffer structure used to exchange data between the lwip stack and the hardware driver. It looks like either:

    • the buffer was free'd by the driver, when this should be done by the lwip function, or
    • a wrong pointer was supplied to lwip pbuf_free call. Maybe the result of an allocation attempt that was never checked for a failure.

    Could be a spurious error, or more probable a software bug in the Pycom driver. I found lwip itself very reliable, but it could still contain errors.


Log in to reply
 

Pycom on Twitter