Johan Cockx wrote:
> 
> 
> On Tue, Oct 12, 2010 at 12:05 PM, Gilles Chanteperdrix
> <gilles.chanteperd...@xenomai.org
> <mailto:gilles.chanteperd...@xenomai.org>> wrote:
> 
>     Johan Cockx wrote:
>     >
>     >
>     > On Mon, Oct 11, 2010 at 4:07 PM, Gilles Chanteperdrix
>     > <gilles.chanteperd...@xenomai.org
>     <mailto:gilles.chanteperd...@xenomai.org>
>     > <mailto:gilles.chanteperd...@xenomai.org
>     <mailto:gilles.chanteperd...@xenomai.org>>> wrote:
>     >
>     >     Johan Cockx wrote:
>     >     > A printf in src/skins/posix/select.c confirms that __wrap_select
>     >     is called.
>     >
>     >     Ok, but there are many branches here, could you check whether
>     it emits
>     >     the syscall, and if yes, what is the result of this syscall?
>     >
>     >
>     > First,  it executes:
>     >     err = XENOMAI_SKINCALL5(__pse51_muxid, __pse51_select, __nfds,
>     >                 __readfds, __writefds, __exceptfds, __timeout);
>     > (which expands to assembly code;  is this the syscall you are
>     referring to?)
>     >
>     > This returns err == -9 ( == -EBADF),  so it continues to call
>     > __real_select (which as far as I understand it calls the plain
>     > non-xenomai select) which returns 0 (timeout).
>     >
>     > EBADF suggests that there is something wrong with the file descriptor,
>     > but I have no clue what. The code that creates this file
>     descriptor was
>     > attached to my previous mail (recv.c).
> 
>     It means that one of the file descriptors you pass to select is not a
>     Xenomai file descriptor.
> 
> 
> Ok,  but the one file descriptor that I am passing in was created with a
> socket() call,  and since I am using the posix skin,  I assume it should
> be a Xenomai file descriptor.  Is there any way that the socket() call
> (using the posix skin) could return a non-Xenomai file descriptor?

Yes, if it ends up calling __real_socket instead of socket. You can
instrument the __wrap_socket code, the same way you did with
__wrap_select, to see what happens.

> 
> 
>     >     > Attached is a small stand-alone test case.  It consists of two
>     >     programs:
>     >     > recv.c will wait for a udp message with a timeout of 10 sec
>     (using
>     >     > select), and send.c will send a udp message. If recv is started
>     >     and then
>     >     > send (in another terminal),  recv should return immediatly
>     without
>     >     > timeout;  however,  it continues to wait until a timeout occurs.
>     >
>     >     By standalone, I meant without RTnet. So, please verify that
>     you also
>     >     get the bug without RTnet, and post a mail to the Xenomai-help
>     mailing
>     >     list (as opposed to the rtnet mailing list, which is the
>     mailing list
>     >     where you are posting currently).
>     >
>     >
>     > I am not sure how to test the bug with Xenomai but without RTnet. If I
>     > replace --posix-cflags and --posix-ldflags by --xeno-flags and
>     > --xeno-ldflags and use a plain (non-rt) IP address,  there is no
>     problem.
> 
>     Try posix message queues.
> 
> Sorry,  not clear to me: how can I reproduce a bug related to UDP
> messages with posix message queues?

The point is to know whether it is a generic select bug or an UDP socket
bug. If it happens with posix message queues, it is a select bug. If it
happens only with UDP sockets, then it is related to UDP sockets somehow.


-- 
                                                                Gilles.

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to