Hi Alex, Do you have a repo/branch for this patch?.
I'm having issues applying... ... alimon@blackbox:~/upstream/ptest-runner2$ git am -3 ~/Downloads/\[ptest-runner\]\[PATCH\ 3_3\]\ utils.c_\ add\ system\ data\ collection\ when\ a\ test\ gets\ stuck..eml Applying: utils.c: add system data collection when a test gets stuck. error: sha1 information is lacking or useless (utils.c). error: could not build fake ancestor Patch failed at 0001 utils.c: add system data collection when a test gets stuck. hint: Use 'git am --show-current-patch=diff' to see the failed patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". ... Regards, Anibal On Thu, 16 Sept 2021 at 07:46, Alexander Kanavin <[email protected]> wrote: > Currently, ptest-runner simply kills the offending test without further > ado, > which is not at all helpful when trying to figure out why it happens > (especially if such hangs are intermittent and rare). There's now a script > that gets executed before killing the test, so ideas on what to have in it > are welcome. > > Signed-off-by: Alexander Kanavin <[email protected]> > --- > Makefile | 2 +- > ptest-runner-collect-system-data | 5 +++++ > utils.c | 24 ++++++++++++++++++++++++ > 3 files changed, 30 insertions(+), 1 deletion(-) > create mode 100755 ptest-runner-collect-system-data > > diff --git a/Makefile b/Makefile > index a6372de..168cf5a 100644 > --- a/Makefile > +++ b/Makefile > @@ -43,7 +43,7 @@ $(TEST_EXECUTABLE): $(TEST_OBJECTS) > $(CC) $(LDFLAGS) $(TEST_OBJECTS) -o $@ $(TEST_LIBSTATIC) > $(TEST_LDFLAGS) > > check: $(TEST_EXECUTABLE) > - ./$(TEST_EXECUTABLE) -d $(TEST_DATA) > + PATH=.:$(PATH) ./$(TEST_EXECUTABLE) -d $(TEST_DATA) > > .c.o: > $(CC) $(CFLAGS) -c $< -o $@ > diff --git a/ptest-runner-collect-system-data > b/ptest-runner-collect-system-data > new file mode 100755 > index 0000000..5bfeaf3 > --- /dev/null > +++ b/ptest-runner-collect-system-data > @@ -0,0 +1,5 @@ > +#!/bin/sh > +# Other ideas on what to do when a ptest gets stuck welcome. > +pstree -a -l > +df > +free > diff --git a/utils.c b/utils.c > index 58c3aa1..a67ac11 100644 > --- a/utils.c > +++ b/utils.c > @@ -281,6 +281,27 @@ close_fds(void) > } > } > > +static void > +collect_system_state(FILE* fout) > +{ > + char *cmd = "ptest-runner-collect-system-data"; > + > + char buf[1024]; > + FILE *fp; > + > + if ((fp = popen(cmd, "r")) == NULL) { > + fprintf(fout, "Error opening pipe!\n"); > + } > + > + while (fgets(buf, 1024, fp) != NULL) { > + fprintf(fout, "%s", buf); > + } > + > + if(pclose(fp)) { > + fprintf(fout, "Command not found or exited with error > status\n"); > + } > +} > + > static void * > read_child(void *arg) > { > @@ -313,6 +334,9 @@ read_child(void *arg) > } > > } else if (r == 0) { > + // no output from the test after a timeout; the > test is stuck, so collect > + // as much data from the system as possible and > kill the test > + collect_system_state(_child_reader.fps[0]); > _child_reader.timeouted = 1; > kill(-_child_reader.pid, SIGKILL); > } > -- > 2.33.0 > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#54815): https://lists.yoctoproject.org/g/yocto/message/54815 Mute This Topic: https://lists.yoctoproject.org/mt/85650481/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
