WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Xend exception at end of save/migration
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
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] Xend exception at end of save/migration, Graham, Simon <=