Fixed: do not send Range request header when encounter error.

this pr is modified from #2620 , but try to make it simpler.

so, now, we do not set the seekable to false when encounter error, but we do retry with no-range '0-' set.