On Tue, 1 Apr 2008, Carlo Nyto wrote:
I am experiencing a two minute timeout open()ing a tape device whenThis is how open() is supposed to work according to standards (e.g., SUS) if O_NONBLOCK is supported. (Well, actually open() should wait indefinitely but the non-linux systems I tested had a timeout.) The linux st driver was changed to comply with standards at 2.5.3. I.e., the 2.4 kernels did return immediately but the 2.6 kernels have always waited.
there is no tape in the drive.
open() with O_NONBLOCK succeeds immediately, however.
The problem is that I am trying to set up Legato on a system that hasYou are not the only person who has noticed this. At work we had to install a distribution using 2.4 kernel to our backup server in order to use Legato ;-(
multiple tape drives. For certain common operations, Legato tries to
open() each tape drive multiple times. On a system with multiple tape
drives, this adds up to a significant amount of time wasted due to
this timeout.
But this is a Legato problem, not a kernel problem.
Solaris does not have this problem, and Legato support advises thatSolaris does return EIO. Either it does not support O_NONBLOCK or it is not compliant with SUS.
they are at the mercy of the operating system.
Legato would not be so much "at the mercy of the operating system" if they would write their software to work according to standards, not according to some operating system.