fixed data truncation problem
make Conn public, so can do deferred Close() from caller
actually _return_ error on recover