lkml.org 
[lkml]   [2005]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: kernel error in system call accept() under kernel 2.6.8
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 majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-10-05 17:44    [W:0.156 / U:0.292 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site