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

Re: [Xen-devel] "xm save" trouble -- deadlock?

To: Gerd Knorr <kraxel@xxxxxxx>
Subject: Re: [Xen-devel] "xm save" trouble -- deadlock?
From: Gerd Knorr <kraxel@xxxxxxx>
Date: Tue, 01 Nov 2005 18:15:27 +0100
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 01 Nov 2005 17:12:32 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <43679B4C.3030804@xxxxxxx>
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>
References: <43679B4C.3030804@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050715)
xend in turn doesn't read from the pipe but is waiting for some lock:

  master-xen root /vm/ttylinux# strace -p6567
  Process 6567 attached - interrupt to quit
  futex(0x8087370, FUTEX_WAIT, 0, NULL <unfinished ...>
  Process 6567 detached

Oh, xend is multithreaded:

  master-xen root /vm/ttylinux# ls /proc/6567/task
  .  ..  6567  6568  6569  6570  6571  6581  7977

7977 seems to be responsible for the xc_save and does this:

  master-xen root /vm/ttylinux# strace -p7977
  Process 7977 attached - interrupt to quit
  read(20,  <unfinished ...>
  Process 7977 detached

fd 20 is the other end of the *stdout* pipe, whereas xc_save writes stuff to *stderr*. Hmm. Maybe xend causes the deadlock by simply reading from the wrong file handle?

Some of the other threads behave in a strange way as well:

  master-xen root /vm/ttylinux# strace -p6568
  Process 6568 attached - interrupt to quit
  select(4, [3], [], [], {0, 960000})     = 0 (Timeout)
  futex(0x80e53b8, FUTEX_WAKE, 1)         = 0
accept(3, 0x408193f8, [110]) = -1 EAGAIN (Resource temporarily unavailable)

There is no point in calling accept(3) unless select() flags file handle #3 as readable.

Looks like I'll go browse some python code tomorrow ...

  Gerd


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