Re: Blocking for too long in SO_LINGER...

From: kuznet@ms2.inr.ac.ru
Date: Fri Jan 28 2000 - 09:38:05 EST


Hello!

> I did a strace on the process, and found that it was blocking on the
> close() of a socket with SO_LINGER set. I'm not sure if strace is
> reporting this properly, but I think that the timeout being set is 8
> seconds (which seems like an awfully bad choice by real if so).

No, 8 is option length. This old strace does not show SO_LINGER option.

> Anyways, I've fouind it actually blocking for _much_ longer than 8
> seconds -- in fact, in once case, I

It means that it set linger to longer time.

> Any idea what is happening here? Any kind of quick-fix I can do here:
> (I have a high-proofile event tomorrow, and naturally, I don't have the
> source to the silly application)..

What is this pnserver? I suspect it sets linger to 0, which is illegal
from all the viewpoints. From viewpoint of 2.2 it is infinite linger,
from viewpoint of BSD and 2.3 it is immediate socket destruction.

It is interesting compatibility question, try to get newer strace,
probably it is better. Well, or check this with gdb. Or get my strace
from ftp.inr.ac.ru/ip-routing.

> Maybe I can quickly get the kernel
> to ignore SO_LINGER either entirely (and I guess I'll find out what
> breaks), or for just particular processes.

Nothing will break. Programs using SO_LINGER correctly just do not exist
in the nature. It is fully dead option.

Alexey Kuznetsov

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 21:00:21 EST