[jdev] Bug in jabberd2 (2.1.13) on win32

Dan Hulme dhulme at gmail.com
Wed Jan 23 18:14:54 CST 2008


Have tracked the problem down to this point:

mio_wsasync.h: 68

    static void _mio_free_fd(mio_t m, mio_priv_fd_t priv_fd)            \
    {                                                                   \
        priv_fd->next_free = MIO(m)->next_free;                         \
        priv_fd->mio_fd.fd = 0;                                         \
        MIO(m)->next_free = priv_fd;                                    \
    }                                                                   \


This function appears to try to append the old closed socket to a
linked list of free sockets.  When the new connection tries to use
this socket, it has trouble.  Once the next connection connects,
however, it will not use that socket as it is still in use, so it will
work.  Not sure why the socket that is being appended is broken, but
if this function is not called (at mio_impl.h: 267), the program works
"fine."  It may not be reusing sockets, but everything else works.

Hope this helps.

-Dan

On Jan 23, 2008 9:26 AM, Dan Hulme <dhulme at gmail.com> wrote:
> You might also mention that the win32 is broken on 2.1.21 (doesn't compile).
>
>
> On Jan 23, 2008 9:16 AM, Tomasz Sterna <tomek at xiaoka.com> wrote:
> > On Śr, 2008-01-23 at 08:48 -0800, Dan Hulme wrote:
> > > Am I correct in assuming this means it uses wsasync?
> >
> > I guess so.
> > That could mean, that there is a bug in wsasync implementation.
> > I  will talk to Win32 build maintainer about.
> >
> >
> > --
> >
> >   /\_./o__ Tomasz Sterna
> >  (/^/(_^^' http://www.xiaoka.com/
> > ._.(_.)_   im:smoku at xiaoka.com
> >
> >
>


More information about the JDev mailing list