Alan,
meanwhile we could generate a strace for the problem.
However, I guess that the strace does not give the desired
information (see parts below).
Additionally we added in the program the output of the return
value of the accept() system call . The return value is -512
and the errno value is 0!
Usually the return value should be -1 and the errno should
contain the value without the sign of the error.
Any idea or comment on this ?
Thanks,
Peter Düllings
---------<strace>------------
2682 09:25:29.238663 accept(21, <unfinished ...>
2688 09:25:29.263486 accept(33, {sa_family=AF_INET, sin_port=htons(32811),
sin_addr=inet_addr("127.0.0.1")}, [16]) = 40 <27.171270>
2688 09:25:56.589969 accept(33, 0x82fa7e0, [16]) = ? ERESTARTSYS (To be
restarted) <0.385453>
2688 09:25:56.975563 --- SIGCHLD (Child exited) @ 0 (0) ---
2688 09:25:56.975676 accept(33, 0x82fa7e0, [16]) = ? ERESTARTSYS (To be
restarted) <0.205963>
2688 09:25:57.181770 --- SIGCHLD (Child exited) @ 0 (0) ---
2688 09:25:57.181842 accept(33, <unfinished ...>
2682 09:25:57.231961 <... accept resumed> {sa_family=AF_INET,
sin_port=htons
(32882), sin_addr=inet_addr("127.0.0.1")}, [16]) = 43 <27.993066>
2682 09:25:57.234320 accept(21, <unfinished ...>
2688 09:25:57.538314 <... accept resumed> 0x82fa7e0, [16]) = ? ERESTARTSYS
(To be restarted) <0.356435>
2688 09:25:57.538429 --- SIGCHLD (Child exited) @ 0 (0) ---
2688 09:25:57.538488 accept(33, 0x82fa7e0, [16]) = ? ERESTARTSYS (To be
restarted) <0.015688>
2688 09:25:57.554315 --- SIGCHLD (Child exited) @ 0 (0) ---
2688 09:25:57.554370 accept(33, 0x82fa7e0, [16]) = ? ERESTARTSYS (To be
restarted) <0.192660>
2688 09:25:57.747151 --- SIGCHLD (Child exited) @ 0 (0) ---
2688 09:25:57.747236 accept(33, 0x82fa7e0, [16]) = ? ERESTARTSYS (To be
restarted) <0.097813>
....
.
---------</strace>------------
Alan Cox wrote:
On Maw, 2005-09-20 at 16:25 +0200, Peter Duellings wrote:
Obviously there are some cases where the accept() system call does
not set the errno variable if the accept() system call returns
with a value less than zero:
Not actually possible. The kernel returns a positive value, zero or a
negative value which is the errno code negated. It has no mechanism to
return a negative value and not error.
What does strace show for the failing case ?
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]