io.EOF is okay since io.ReadFull will not have read any bytes at all. Also making error channel receive only for go routine.