guard callback missing caused by unexpected exception, and fixed ping timer hang