You are reading a single comment by @tve and its replies. Click here to read the full conversation.
  • Well, a bunch of hours of tracing the call chain and determining where the lock on the connection/socket gets incremented this is what I've found out:

    • socketClientConnectionsIdle line 484 calls socketClientPushReceiveData
    • socketClientPushReceiveData 440 calls jswrap_stream_pushData
    • jswrap_stream_pushData 80 calls jsiExecuteEventCallback
      the number of locks is incremented by one when jsiExecuteEventCallback returns
    • jsiExecuteEventCallback 1558 calls jspExecuteFunction
    • jspExecuteFunction 2542 calls jspeFunctionCall
      ...

    I can see clearly that every time I receive an MQTT message my on("data") event handler gets called and when socketClientConnectionsIdle is abouit to return the lock count on the socket is bumped up by one. So after about 15 messages that's it, the assertion fires.

About

Avatar for tve @tve started