socket read recovery