AbstractDataSource::requestData() takes the ownership of the file descriptor. So the second close() will close an already closed fd. (cherry picked from commit 61eb8ce7)