Hi David,

This was a classical race condition, where one thread was accessing the connPtr of another thread while it was de-allocating. The committed version should not lead to this situation anymore.

In general, it is not the best approach to check in every connection the state of all connections, which is a quadratic operation on the number of running connections. I would rather recommend to use either nsvs to track connections/peers, or to use a separate monitoring thread keeping this information
up to date, receiving information about starting and ending threads.

please check, if the changes work as well with your setup and tests.
-g

Am 06.10.17 um 11:46 AM schrieb David Osborne:
However, the ns_server call is the first thing it does. In fact I can strip the filter down to only do the following and still get the same signal 11 (it also segfaults if returning filter_ok but takes longer)

proc filter_dos_check { event args } {
    set requests_active [ns_server -server [ns_info server] -pool {} active -checkforproxy]
    return filter_return
}

Thanks for the patch.


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to