xm list -> XendDomain:list_sorted() -> XendDomain:list() -> XendDomain:_refresh() -> XendDomainInfo:update(refresh = True) Surely such non-modifying commands should not be altering state? Why aren''t we passing in refresh = False in these cases? This is a nasty problem if (say) dumpCore fails: every time we try to xm list, then it will ''notice'' that the domain is in the crashed state, try to dump core, fail and plop that error back to ''xm list''. regards john _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Thu, Jan 04, 2007 at 07:30:42PM +0000, John Levon wrote:> > xm list -> XendDomain:list_sorted() -> XendDomain:list() -> > XendDomain:_refresh() -> XendDomainInfo:update(refresh = True) > > Surely such non-modifying commands should not be altering state? Why > aren''t we passing in refresh = False in these cases?Yes, you''re right, we should. There''s a patch on its way.> This is a nasty problem if (say) dumpCore fails: every time we try to xm > list, then it will ''notice'' that the domain is in the crashed state, try > to dump core, fail and plop that error back to ''xm list''.This is still a problem, regardless -- that function will be called every time a domain starts or stops, so you will still get multiple attempts to dump core. Could you spin a patch to record the failure in the store, so that we don''t try and dump core again? Ewan. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Fri, Jan 05, 2007 at 12:36:30PM +0000, Ewan Mellor wrote:> > xm list -> XendDomain:list_sorted() -> XendDomain:list() -> > > XendDomain:_refresh() -> XendDomainInfo:update(refresh = True) > > > > Surely such non-modifying commands should not be altering state? Why > > aren''t we passing in refresh = False in these cases? > > Yes, you''re right, we should. There''s a patch on its way.Great.> > This is a nasty problem if (say) dumpCore fails: every time we try to xm > > list, then it will ''notice'' that the domain is in the crashed state, try > > to dump core, fail and plop that error back to ''xm list''. > > This is still a problem, regardless -- that function will be called every time > a domain starts or stops, so you will still get multiple attempts to dump > core. Could you spin a patch to record the failure in the store, so that we > don''t try and dump core again?Hmm, for this specific case, isn''t it better to catch the exception from dumpCore and continue? i.e. something like: if xoptions.get_enable_dump(): try: self.dumpCore() except XendError x: pass restart_reason = ''crash'' self._stateSet(DOM_STATE_HALTED) BTW: def dumpCore(self, corefile = None): """Create a core dump for this domain. Nothrow guarantee.""" ^^^^^^^^^^^^^^^^^ hmm :) regards john _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Fri, Jan 05, 2007 at 03:13:07PM +0000, John Levon wrote:> > > This is a nasty problem if (say) dumpCore fails: every time we try to xm > > > list, then it will ''notice'' that the domain is in the crashed state, try > > > to dump core, fail and plop that error back to ''xm list''. > > > > This is still a problem, regardless -- that function will be called every time > > a domain starts or stops, so you will still get multiple attempts to dump > > core. Could you spin a patch to record the failure in the store, so that we > > don''t try and dump core again? > > Hmm, for this specific case, isn''t it better to catch the exception from > dumpCore and continue? i.e. something like: > > if xoptions.get_enable_dump(): > try: > self.dumpCore() > except XendError x: > pass > > restart_reason = ''crash'' > self._stateSet(DOM_STATE_HALTED) > > BTW: > > def dumpCore(self, corefile = None): > """Create a core dump for this domain. Nothrow guarantee."""Yes, it looks like someone''s committed the heinous crime of breaking this function''s guarantees without dealing with the fallout. I shall poke him with a long, sharp stick. And then fix the problem. Ewan. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel