Messages in this thread |  | | | Date | Wed, 02 Apr 2008 22:21:13 -0600 | | From | Robert Hancock <> | | Subject | Re: Slow tape drive timeout | |
Kai Makisara wrote:
> On Tue, 1 Apr 2008, Carlo Nyto wrote:> >> I am experiencing a two minute timeout open()ing a tape device when
>> there is no tape in the drive.>>>> open() with O_NONBLOCK succeeds immediately, however.
>>> This 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.
> >> The problem is that I am trying to set up Legato on a system that has
>> 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.>>> You 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 ;-(> > But this is a Legato problem, not a kernel problem.
> >> Solaris does not have this problem, and Legato support advises that
>> they are at the mercy of the operating system.>>> Solaris does return EIO. Either it does not support O_NONBLOCK or it is
> not compliant with SUS.> > 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.
Why is accessing the tape drive with no tape in it causing a timeout in
the first place? I should think that would fail immediately with some
"medium not present" error from the drive. Unless the drive has no
mechanism to detect it, but that seems really retarded..
|  |