DragonFly commits List (threaded) for 2005-07
Re: cvs commit: src/sys/kern uipc_socket.c uipc_socket2.c src/sys/sys socketvar.h
Matthew Dillon wrote:
Fix a sockbuf race. Currently the m_free*() path can block, due to
objcache_put() blocking when it must access the global depot. This breaks
the critical section *AND the BGL during a time when the sockbuf state is
inconsistent. Another process accessing the same sockbuf would then
corrupt it. Since depot access is fairly rare, this bug typically required
a number of hours to reproduce.
Would it work better if we would pass down flags to objcache_put, which
can indicate that blocking is bad, and then either spin with trytoken or
plainly destruct the object directly?
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low $$$ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \