@kalon: If it just randomly started doing that I'm guessing something might have went wrong with your block database. Try doing a fresh resync by deleting the old block files from your data folder or starting with -resync.
Actually looks more like exceeding open files ulimit (especially on ubuntu which has a ridiculously small default), but this could be caused by corrupted DB as well.