defer recover to fix problem that connection maybe already closed by golang lib