improve test code
cancel twice bug fixed
canceller throws error fixed