Not sure what happened here, I published the patches in https://github.com/kanavin/ptest-runner2
Alex On Thu, 23 Sept 2021 at 18:33, Anibal Limon <[email protected]> wrote: > 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 (#54816): https://lists.yoctoproject.org/g/yocto/message/54816 Mute This Topic: https://lists.yoctoproject.org/mt/85650481/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
