|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] Minor fix to xentop to stop it dying when domains go
Currently, xentop exits with a failure if xenstat_get_node() returns
NULL - this can happen if a VM is deleted between the time
xenstat_get_node() gets the list of VMs and the time it attempts to
collect information about the VMs. This patch modifies xentop to simply
ignore a NULL return and loop around to try the call again.
Note that the patch supplied is against 3.0.testing although I think
unstable is basically the same.
Signed-off-by: Simon Graham Simon.Graham@xxxxxxxxxxx
---
Index: xentop.c
===================================================================
--- xentop.c (revision 3098)
+++ xentop.c (working copy)
@@ -762,14 +762,18 @@
{
xenstat_domain **domains;
unsigned int i, num_domains = 0;
+ xenstat_node *new_node = xenstat_get_node(xhandle,
XENSTAT_ALL);
- /* Now get the node information */
+ if (new_node == NULL) {
+ // This can happen if domains change during call - just
+ // return and try again
+ return;
+ }
+
if (prev_node != NULL)
xenstat_free_node(prev_node);
prev_node = cur_node;
- cur_node = xenstat_get_node(xhandle, XENSTAT_ALL);
- if (cur_node == NULL)
- fail("Failed to retrieve statistics from libxenstat\n");
+ cur_node = new_node;
/* dump summary top information */
do_summary();
@@ -871,8 +875,10 @@
if(ch != ERR || (curtime.tv_sec - oldtime.tv_sec) >=
delay) {
clear();
top();
- oldtime = curtime;
- refresh();
+ if (cur_node != NULL) {
+ oldtime = curtime;
+ refresh();
+ }
}
ch = getch();
} while (handle_key(ch));
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH] Minor fix to xentop to stop it dying when domains go away at the wrong time,
Graham, Simon <=
|
|
|
|
|