[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Xend exception at end of save/migration


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Graham, Simon" <Simon.Graham@xxxxxxxxxxx>
  • Date: Mon, 23 Apr 2007 11:54:57 -0400
  • Delivery-date: Mon, 23 Apr 2007 08:53:39 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AceFv73oVh12KQDVR6OSYGnYkUv0hQ==
  • Thread-topic: Xend exception at end of save/migration

We have noticed occasional exceptions being reported in 3.0.4 by xend at the 
end of save/live migration - it seems to me that this is caused by a lack of 
synchronization between the destroyDomain() done at the end of save and the 
code in XendDoimain.py that is watching for events on '@releaseDomain' - here's 
a sample of xend.log:

[2007-04-20 03:47:05 xend 8525] DEBUG (XendCheckpoint:95) Written done
[2007-04-20 03:47:05 xend 8527] INFO (XendCheckpoint:271) SUSPEND shinfo 
0000022e eip c01013a7 edx 00079894
[2007-04-20 03:47:05 xend 8527] INFO (XendCheckpoint:271) delta 9ms, dom0 33%, 
target 0%, sent 167Mb/s, dirtied 233Mb/s 64 pages
[2007-04-20 03:47:05 xend 8527] INFO (XendCheckpoint:271) Saving memory pages: 
iter 5  0%
 5: sent 64, skipped 0, delta 3ms, dom0 0%, target 0%, sent 699Mb/s, dirtied 
699Mb/s 64 pages
[2007-04-20 03:47:05 xend 8527] INFO (XendCheckpoint:271) Total pages sent= 
108424 (0.98x)
[2007-04-20 03:47:05 xend 8527] INFO (XendCheckpoint:271) (of which 0 were 
fixups)
[2007-04-20 03:47:05 xend 8527] INFO (XendCheckpoint:271) All memory is saved
[2007-04-20 03:47:05 xend 8527] INFO (XendCheckpoint:271) Save exit rc=0
[2007-04-20 03:47:05 xend.XendDomainInfo 8525] DEBUG (XendDomainInfo:1481) 
XendDomainInfo.destroyDomain(1)
[2007-04-20 03:47:05 xend 5720] ERROR (xswatch:79) read_watch failed
Traceback (most recent call last):
  File 
"/test_logs/builds/SuperNova/trunk/070420/platform/xen/vendor/dist/install/usr/lib/python/xen/xend/xenstore/xswatch.py",
 line 67, in watchMain
  File 
"/test_logs/builds/SuperNova/trunk/070420/platform/xen/vendor/dist/install/usr/lib/python/xen/xend/XendDomain.py",
 line 146, in _on_domains_changed
  File 
"/test_logs/builds/SuperNova/trunk/070420/platform/xen/vendor/dist/install/usr/lib/python/xen/xend/XendDomain.py",
 line 395, in _refresh
  File 
"/test_logs/builds/SuperNova/trunk/070420/platform/xen/vendor/dist/install/usr/lib/python/xen/xend/XendDomainInfo.py",
 line 1832, in update
  File 
"/test_logs/builds/SuperNova/trunk/070420/platform/xen/vendor/dist/install/usr/lib/python/xen/xend/XendDomainInfo.py",
 line 957, in refreshShutdown
  File "/usr/lib/python2.3/logging/__init__.py", line 893, in info
    apply(self._log, (INFO, msg, args), kwargs)
  File "/usr/lib/python2.3/logging/__init__.py", line 994, in _log
    self.handle(record)
  File "/usr/lib/python2.3/logging/__init__.py", line 1004, in handle
    self.callHandlers(record)
  File "/usr/lib/python2.3/logging/__init__.py", line 1037, in callHandlers
    hdlr.handle(record)
  File "/usr/lib/python2.3/logging/__init__.py", line 592, in handle
    self.emit(record)
  File "/usr/lib/python2.3/logging/handlers.py", line 102, in emit
    msg = "%s\n" % self.format(record)
  File "/usr/lib/python2.3/logging/__init__.py", line 567, in format
    return fmt.format(record)
  File "/usr/lib/python2.3/logging/__init__.py", line 362, in format
    record.message = record.getMessage()
  File "/usr/lib/python2.3/logging/__init__.py", line 233, in getMessage
    msg = msg % self.args
TypeError: int argument required

I think this can be explained by the fact that destroyDomain sets self.domId to 
None right after calling xc.domain_destroy - there is a window here where the 
_on_domains_changed processing in XendDomain.py can get into the 
refreshShutdown routine at the same time that self.domId is being set to None.

As far as I can tell, this code has not changed in unstable and this problem 
still exists; I guess it's mostly just cosmetic since the _on_domains_changed 
callback wraps the refresh call in a an exception handler, BUT it's 
disconcerting to see this error, apparently in destroyDomain until you look 
closely.

Simon

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.