発行番号: Cente013-0001
Rev: 第1版
発行日: 2021/10/13
題名: エラーコールバック関数からmqtt_disconnect()を実行するとリターンしないことがある

適用製品:
・Cente MQTTc Ver.1.10

【該当するユーザ環境】
Cente MQTTc Ver.1.10をお使いの全てのユーザ。

【障害内容】
MQTTのAPIでエラー(送信エラー、受信エラー)が発生すると、エラーコールバック関数が呼び出されます。エラーコールバック関数ではmqtt_disconnect()を実行する必要がありますが、送信エラーによるコールバックからmqtt_disconnect()を実行すると、リターンしないことがありました。

【発生理由】
セマフォによる排他制御に不適切な処理があり、取得済みのセマフォをmqtt_disconnect()でさらに取得しようとして、デッドロックすることがありました。

【回避方法】
ソースコードの改変が必要です。
修正箇所については、support_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。