Yes, I think it is likely that the Oracle library is setting some signal handlers. That would explain the observed behavior. But the Eiffel runtime should still be able to retry when ferror returns True but errno = EINTR.