On Wed, Apr 22, 2015 at 11:53:18AM -0700, Gurucharan Shetty wrote:
> It has been observed that sometimes Windows unit tests hang.
> This happens when a daemon is started but does not get terminated
> when the test ends.
> 
> In one particular case, OVS_VSWITCHD_STOP is called which inturn
> calls 'ovs-appctl exit'. This causes ovs-vswitchd's atexit handler
> to cleanup the pidfiles. After this, the pthread destructurs get
> called and a deadlock happens in there. This results in the
> daemons not getting force killed resulting in the tests hanging
> because the cleanup file tries to run the command
> "kill `cat ovs-vswitchd.pid`" and ovs-vswitchd.pid no longer exists.
> 
> With this commit, we write the pid value of the daemons in the
> cleanup file (instead of asking it to 'cat' the value later from
> the pidfile). This way, even if the pidfiles get deleted, we can
> still kill the daemons.
> 
> This commit also changes the way daemons are force killed in
> Windows. It was observed that 'taskkill //F ' failed to kill
> a deadlocked daemon running its pthread destructor. But
> tskill succeeds.
> 
> Signed-off-by: Gurucharan Shetty <gshe...@nicira.com>
> (ON_EXIT_UNQUOTED macro provided by Ben.)
> Co-authored-by: Ben Pfaff <b...@nicira.com>

Thanks!  I guess you need my sign-off in this case since I'm a coauthor:

Signed-off-by: Ben Pfaff <b...@nicira.com>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to