Comment 3 for bug 1806126

Revision history for this message
Matthew Booth (mbooth-9) wrote :

The TestingException raised above during evacuate from compute0 to compute1 is intended behaviour. It's mocked by the test itself in order to raise that.

Of all the failures I looked at which didn't just look like lots of unrelated random things going wrong (e.g. http://logs.openstack.org/22/606122/7/check/nova-tox-functional/1f3126b/job-output.txt) the failure looks like a timeout during initial instance create using the Flat backend. We _wait_for_server_parameter() there with the default 5 second timeout. I'll bet it's just taking longer than that for some reason. It's hard to know without DEBUG enabled, though.

Interesting that the failures (I looked at) were all on the flat backend. The flat backend touches the filesystem, but rbd does not, but they're both mocked. Flat creates an image by touching it with:

  open(_self.path, 'a').close()

I guess that could theoretically be slow if we were experiencing horrendous IO lag, but it seems unlikely. Similarly exists for flat is an os.path.exists(), whereas for Rbd it's a dict lookup. Again, that seems unlikely to be slow. The only obvious difference of moderate complexity between the two is resolve_driver_format().

I obviously haven't reproduced this locally, and probably can't, but I'll see if I can profile it somehow to see where most of the time goes on my system, at least.