Thanks for the reply – that’s good to know! I am able to train for a whole epoch even with num_workers>0; I just finished a job which completed without issue for 100 epochs. Still though, I’ve had a few more dataloaders killed by SIGHUP since I made this post. My __get_item__() includes some stochastic preprocessing, which could explain why some epochs complete and others do not. I’m also querying S3 through boto3 which maybe is causing issues inside a parallelized dataloader? From Torch’s MP best practices 2 it sounds like some Python libraries use multiple threads and could lead to deadlock or other issues when used inside a DataLoader. Do you think a SIGHUP could raised for that kind of issue?