Anthony PERARD wrote:
On Mon, Feb 02, 2015 at 05:00:34PM -0700, Jim Fehlig wrote:
> This small series fixes some assertions we occasionally see in the
> libxl driver when running libvirt-TCK. The assertions were due to
> races between destroying per-domain libxl_ctx and receiving fd and
> timer callbacks associated with them. The races are masked by
> setting DEBUG loglevel in libvirtd.conf, so often missed by
> automated test setups that want DEBUG loglevel.
>
> Patch 1 actually fixes the assertions. Patch2 fixes a stupid mistake.
> See the commit messages for details.
>
> Jim Fehlig (2):
> libxl: fix fd and timer event handling
> libxl: Move setup of child processing code to driver initialization
>
> src/libxl/libxl_domain.c | 244 +----------------------------------------------
> src/libxl/libxl_driver.c | 212 +++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 212 insertions(+), 244 deletions(-)
>
Hi Jim,
I gave a try to those two patches with OpenStack. Assuming I haven't make any
mistake, it make things worse.
Thanks Anthony. I've cooked up a simpler reproducer and will
investigate. I do think these patches are an improvement, but they've
obviously uncovered a locking issue in the driver.
Regards,
Jim
Environment:
Ubuntu 14.04
with Xen package install (xen 4.4)
libvirt: master (47dd6c4)
Installed OpenStack via DevStack
Test: ./run_tempest.sh tempest.api.compute
Result:
without the patches, the tests run fine, they all succeed.
with the patches, the tests fail AND libvirt became unresponsible.
Running `virsh -c xen: list` does not return. (or any virsh command)
I have attach a backtrace, if that can help.