[ python-Bugs-1467080 ] Many functions in socket module are not thread safe
SourceForge.net
noreply at sourceforge.net
Sun Apr 9 15:09:24 CEST 2006
Bugs item #1467080, was opened at 2006-04-09 01:09
Message generated for change (Settings changed) made by gbrandl
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1467080&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
>Category: None
>Group: Python 2.4
Status: Open
Resolution: None
Priority: 5
Submitted By: Maxim Sobolev (sobomax)
Assigned to: Nobody/Anonymous (nobody)
Summary: Many functions in socket module are not thread safe
Initial Comment:
The socket module make a great effort to be thread-safe, but misses one
big point - it uses single per-instance buffer to hold resolved
sockaddr_xxx structures. Therefore, on SMP system it is possible that
several threads calling functions that perform address resolution in
parallel will stomp on each other resulting in incorrect or invalid address
to be used in each case.
For example, two threads calling sendto() in parallel can result in packets
to be sent to incorrect addresses - packets from thread one from time to
time will be sent to address requested by thread two and vice versa.
Another, smaller issue is that the call to getnameinfo() is not protected
with netdb mutex on systems that don't have thread-safe resolver.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1467080&group_id=5470
More information about the Python-bugs-list
mailing list