hm, don't know, what is happening for you? I thought, the child_init function is called at least once with rank <= 0 before the fork and then after the fork in every child process with rank > 0. And if the connection is already openend before the fork, it is not openend again in the child process. So in theory, the patch should have the effect, that one connection is openend in every child process. I tested this and for me it works like this with the patch applied, and only one connection is openend if the patch is not applied.
Regards, Emil
Am Thu, 13 Dec 2012 14:02:58 +0200 schrieb Juha Heinanen jh@tutpro.com:
Emil Kroymann writes:
the mediaproxy-module in 3.3 branch establishes a single shared connection to the mediaproxy dispatcher socket before sip-router is forking sub-processes. This leads to race-conditions when multiple calls to use_mediaproxy() are made in parallel. The fix is simple, it seems it was just forgotten to restrict the opening of the dispatcher connection to subprocess initialization. Patch attached.
emil,
i just applied your patch to master although i don't understand it. after patch, less connections are opened to dispatcher. why are you saying that before there was only one?
-- juha
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev