[igt-dev] [PATCH i-g-t 3/6] runner: Continue using socket comms when getting an invalid packet
Petri Latvala
petri.latvala at intel.com
Tue Nov 8 10:07:30 UTC 2022
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 <petri.latvala at intel.com>
Cc: Arkadiusz Hiler <arek at hiler.eu>
Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
---
runner/executor.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/runner/executor.c b/runner/executor.c
index 7fa932ac..c5f03614 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -1082,10 +1082,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
More information about the igt-dev
mailing list