seanjensengrey / cogen

Automatically exported from code.google.com/p/cogen
MIT License
0 stars 0 forks source link

perform_connect bug (dead lock when connecting to non-listening port) #17

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
I am writing a socks proxy using cogen and hit by this bug that when i connect 
to a non-
listening port with a cogen.core.sockets.Socket object, the CPU usage goes 
crazy. So I checked a 
bit and from the perform_connect function in cogen/core/proactors/base.py I see 
the following 
code:

{{{
    if act.connect_attempted:
        try:
            act.sock._fd.getpeername()
        except soerror, exc:
            if exc[0] not in (errno.EAGAIN, errno.EWOULDBLOCK,
                            errno.EINPROGRESS, errno.ENOTCONN):
                return
        return act
}}}

I'm new to cogen but isn't the `return` here supposed to be something like 
`raise exc`  instead?  
Anyway after i made the change here it's working ok for me.  Hope this helps.

Original issue reported on code.google.com by flawz...@gmail.com on 22 Dec 2009 at 1:26