have a timeout when fetching datasets

If the dataset is not fetched within the timeout, cancel and re-try.