I don’t know, what kind of error will raise the SIGHUP.
What kind of stochastic processing are you using inside the Dataset?
Based on your description it seems you are also using multi-threading inside the __getitem__?