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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to