missing init m_cancel
print debug info if perform failed