From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id E3EA110E44C for ; Mon, 7 Nov 2022 16:16:09 +0000 (UTC) Date: Mon, 7 Nov 2022 17:16:05 +0100 From: Kamil Konieczny To: igt-dev@lists.freedesktop.org Message-ID: References: <20221107120151.2365523-1-petri.latvala@intel.com> <20221107120151.2365523-3-petri.latvala@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20221107120151.2365523-3-petri.latvala@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 3/6] runner: Continue using socket comms when getting an invalid packet List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Petri Latvala Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: On 2022-11-07 at 14:01:48 +0200, Petri Latvala wrote: > If a packet of invalid size is received, inject a message in the dump, > override result to warn, and continue grabbing packets. > > Signed-off-by: Petri Latvala > Cc: Arkadiusz Hiler > Cc: Kamil Konieczny Reviewed-by: Kamil Konieczny > --- > runner/executor.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/runner/executor.c b/runner/executor.c > index 1fcc9afe..c6389e25 100644 > --- a/runner/executor.c > +++ b/runner/executor.c > @@ -1079,10 +1079,21 @@ static int monitor_output(pid_t child, > > packet = (struct runnerpacket *)buf; > if (s < sizeof(*packet) || s != packet->size) { > + struct runnerpacket *message, *override; > + > errf("Socket communication error: Received %zd bytes, expected %zd\n", > s, s >= sizeof(packet->size) ? packet->size : sizeof(*packet)); > - close(socketfd); > - socketfd = -1; > + message = runnerpacket_log(STDOUT_FILENO, > + "\nrunner: Socket communication error, invalid packet size. " > + "Packet is discarded, test result and logs might be incorrect.\n"); > + write_packet_with_canary(outputs[_F_SOCKET], message, false); > + free(message); > + > + override = runnerpacket_resultoverride("warn"); > + write_packet_with_canary(outputs[_F_SOCKET], override, settings->sync); > + free(override); > + > + /* Continue using socket comms, hope for the best. */ > goto socket_end; > } > > -- > 2.30.2 >