From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vincent Hanquez Subject: Re: why xenstore-* hangs if xenstored is not started Date: Tue, 22 Jun 2010 08:44:50 +0100 Message-ID: <4C2069F2.9090408@eu.citrix.com> References: <4C206713.6030508@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4C206713.6030508@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Yu Zhiguo Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On 22/06/10 08:32, Yu Zhiguo wrote: > Running xenstore-* when xenstored is not started, it will hang and > cannot accept any signal, e.g. SIGINT. > I seems that the process is blocked at accessing '/proc/xen/xenbus'. > > # mount -t xenfs xenfs /proc/xen/ > # xenstore-ls > > call trace: > do_ls() -> xs_directory() -> xs_talkv() -> xs_write_all() -> write() > > BLOCK is no problem but why process cannot accept signal, Any opinion? > > > If start xenstored in other console, xenstore-ls executes and then > receive the signal, seems the signal is pended... > That's the common behavior of task stuck in a kernel operation (ps aux will show the task at D, and /proc//wchan will tell you exactly where it's blocked in the kernel). the write is going to wait for a xenstored reply in kernel mode since by default the xenstore-* tools use the kernel xenstore page to communicate with xenstored. The unix socket operations doesn't have this "problems" (xenstore-* -s) -- Vincent