NDSDataSource: improved error handling

   - use repeat=True and restart iterator