Sometimes IO.setModifiedTimeOrFalse throws an IOException on the travis linux build agents. It is specifically reporting an EINVAL (the error string is "Invalid Argument"). I don't understand how this is happening because flags are set to 0, which should be valid, and I assume the tv_sec and tv_nsec fields are set correctly, but haven't investigated deeply.