
14 Mar
2012
14 Mar
'12
5:33 p.m.
Hi, I've got a theory on what's happening now, but I am not sure how to fix this. The following seems to be the order of events that kills libvirtd: [Thread A] lxcDomainDestroyFlags requested [Thread A] acquires driver lock [Thread A] cgroup killing triggers VIR_EVENT_HANDLE_HANGUP [Thread B] lxcMonitorEvent is run, but blocks on acquiring the driver lock (thread A has it) [Thread A] more killing, thead A frees domain AKA "vm" [Thread A] releases driver lock [Thread B] wakes up, acquires driver lock, operates on freed "vm" data with unpredictable behaviour any ideas/comments? best, Tom