It is not because of a long running DML and small rollback segment.
SNAPSHOT TOO OLD happens becuase someone modifies & commits data, and then it is overwritten in the rollback segment by another transaction all the while someone is reading the data. when they get to the modified record, it has been changed, they go look in the rollback segment for read consistency, it have been overwritten, snapshot too old.

if you have a long running dml and small rollback segment, you will get error unable to allocate next extent.