From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:42440) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qjeue-0006b4-Lw for qemu-devel@nongnu.org; Wed, 20 Jul 2011 18:06:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qjeub-0000Rr-VP for qemu-devel@nongnu.org; Wed, 20 Jul 2011 18:06:40 -0400 Received: from fmmailgate01.web.de ([217.72.192.221]:59472) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qjeua-0000Pj-S4 for qemu-devel@nongnu.org; Wed, 20 Jul 2011 18:06:37 -0400 Message-ID: <4E275169.9070402@web.de> Date: Thu, 21 Jul 2011 00:06:33 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <20110719115511.609C553E5@gandalf.tls.msk.ru> <4E25FBA6.3060803@web.de> <20110720163450.GA17333@amt.cnet> In-Reply-To: <20110720163450.GA17333@amt.cnet> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig74FBC580D37C294526D10F0E" Sender: jan.kiszka@web.de Subject: Re: [Qemu-devel] [PATCH] do not call monitor_resume() from migrate_fd_put_buffer() error path List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marcelo Tosatti Cc: Michael Tokarev , qemu-devel@nongnu.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig74FBC580D37C294526D10F0E Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 2011-07-20 18:34, Marcelo Tosatti wrote: > On Tue, Jul 19, 2011 at 11:48:22PM +0200, Jan Kiszka wrote: >> On 2011-07-19 13:46, Michael Tokarev wrote: >>> If we do, it results in double monitor_resume() (second being called >>> from migrate_fd_cleanup() anyway) and monitor suspend count becoming >>> negative. >>> >>> Cc'ing people from `git blame' list for the lines in question: the >>> change fixes the problem but I'm not sure what the original intention= >>> of this code was in this place. Unfortunately noone replied to two >>> my attempts to raise this issue. >>> >>> Signed-Off-By: Michael Tokarev >>> --- >>> migration.c | 3 --- >>> 1 files changed, 0 insertions(+), 3 deletions(-) >>> >>> diff --git a/migration.c b/migration.c >>> index af3a1f2..115588c 100644 >>> --- a/migration.c >>> +++ b/migration.c >>> @@ -330,9 +330,6 @@ ssize_t migrate_fd_put_buffer(void *opaque, const= void *data, size_t size) >>> if (ret =3D=3D -EAGAIN) { >>> qemu_set_fd_handler2(s->fd, NULL, NULL, migrate_fd_put_notif= y, s); >>> } else if (ret < 0) { >>> - if (s->mon) { >>> - monitor_resume(s->mon); >>> - } >>> s->state =3D MIG_STATE_ERROR; >>> notifier_list_notify(&migration_state_notifiers); >>> } >> >> Looks reasonable to me, but Marcelo should comment on this, specifical= ly >> which scenario once required the resume. >> >> Jan >=20 > If the monitor was suspended (migrate without -d), then this path must > resume. Should record that somewhere and check here. It's clear that we need to resume. The question is in which case migrate_fd_cleanup may not be called after an error in migrate_fd_put_buffer. Jan --------------enig74FBC580D37C294526D10F0E Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk4nUWkACgkQitSsb3rl5xTnXACcCwBuPS5D5hY4KHGU16enkljn 3bAAoIg2+MMc1a610KVyiPmyBlM3I/aK =08H1 -----END PGP SIGNATURE----- --------------enig74FBC580D37C294526D10F0E--