[0/3] Fix gdb.gdb/python-helper.exp + cleanups

Message ID 20220923141801.1106678-1-simon.marchi@polymtl.ca
Headers
Series Fix gdb.gdb/python-helper.exp + cleanups |

Message

Simon Marchi Sept. 23, 2022, 2:17 p.m. UTC
  My patches that touched TYPE_LENGTH and TYPE_TARGET_TYPE caused
regressions in gdb.gdb/python-helper.exp.  I forgot to update
gdb-gdb.py.in, as always.

It looks like my CI doesn't run the test properly.  Because inserting the
first breakpoint times out, do_self_tests skips the test.  I also had
troubles running the test locally due to these timeouts.  So the first
two patches address problems related to that, and the third one is the
actual fix.

Simon Marchi (3):
  gdb/testsuite: bump duration for the whole test in do_self_tests
  gdb/testsuite: use gdb_test in gdb.gdb/python-helper.exp
  gdb/testsuite: update field names in gdb-gdb.py.in

 gdb/gdb-gdb.py.in                       |  4 +-
 gdb/testsuite/gdb.gdb/python-helper.exp | 88 +++++--------------------
 gdb/testsuite/lib/gdb.exp               |  8 +--
 gdb/testsuite/lib/selftest-support.exp  | 36 +++-------
 4 files changed, 31 insertions(+), 105 deletions(-)


base-commit: 8e037eae6823caf5b9cb5b4feb3de838abb25956
  

Comments

Luis Machado Sept. 23, 2022, 5:02 p.m. UTC | #1
On 9/23/22 15:17, Simon Marchi via Gdb-patches wrote:
> My patches that touched TYPE_LENGTH and TYPE_TARGET_TYPE caused
> regressions in gdb.gdb/python-helper.exp.  I forgot to update
> gdb-gdb.py.in, as always.
> 
> It looks like my CI doesn't run the test properly.  Because inserting the
> first breakpoint times out, do_self_tests skips the test.  I also had
> troubles running the test locally due to these timeouts.  So the first
> two patches address problems related to that, and the third one is the
> actual fix.
> 
> Simon Marchi (3):
>    gdb/testsuite: bump duration for the whole test in do_self_tests
>    gdb/testsuite: use gdb_test in gdb.gdb/python-helper.exp
>    gdb/testsuite: update field names in gdb-gdb.py.in
> 
>   gdb/gdb-gdb.py.in                       |  4 +-
>   gdb/testsuite/gdb.gdb/python-helper.exp | 88 +++++--------------------
>   gdb/testsuite/lib/gdb.exp               |  8 +--
>   gdb/testsuite/lib/selftest-support.exp  | 36 +++-------
>   4 files changed, 31 insertions(+), 105 deletions(-)
> 
> 
> base-commit: 8e037eae6823caf5b9cb5b4feb3de838abb25956

Thanks for the series. I tested this on my end and it seems to work nicely.

The only hiccup I noticed is when GDB runs into a SIGSEGV due to the guile
interpreter hitting GC_find_limit_with_bound. I'm not sure why this happens. Maybe
it is a problem with guile and armhf.

I don't think it is a flaw with the patch though. We'd have to go out of our way
to handle something like this in the testcase.

So this series LGTM.
  
Tom de Vries Sept. 23, 2022, 9:35 p.m. UTC | #2
On 9/23/22 19:02, Luis Machado via Gdb-patches wrote:
> On 9/23/22 15:17, Simon Marchi via Gdb-patches wrote:
>> My patches that touched TYPE_LENGTH and TYPE_TARGET_TYPE caused
>> regressions in gdb.gdb/python-helper.exp.  I forgot to update
>> gdb-gdb.py.in, as always.
>>
>> It looks like my CI doesn't run the test properly.  Because inserting the
>> first breakpoint times out, do_self_tests skips the test.  I also had
>> troubles running the test locally due to these timeouts.  So the first
>> two patches address problems related to that, and the third one is the
>> actual fix.
>>
>> Simon Marchi (3):
>>    gdb/testsuite: bump duration for the whole test in do_self_tests
>>    gdb/testsuite: use gdb_test in gdb.gdb/python-helper.exp
>>    gdb/testsuite: update field names in gdb-gdb.py.in
>>
>>   gdb/gdb-gdb.py.in                       |  4 +-
>>   gdb/testsuite/gdb.gdb/python-helper.exp | 88 +++++--------------------
>>   gdb/testsuite/lib/gdb.exp               |  8 +--
>>   gdb/testsuite/lib/selftest-support.exp  | 36 +++-------
>>   4 files changed, 31 insertions(+), 105 deletions(-)
>>
>>
>> base-commit: 8e037eae6823caf5b9cb5b4feb3de838abb25956
> 
> Thanks for the series. I tested this on my end and it seems to work nicely.
> 
> The only hiccup I noticed is when GDB runs into a SIGSEGV due to the guile
> interpreter hitting GC_find_limit_with_bound. I'm not sure why this 
> happens. Maybe
> it is a problem with guile and armhf.

It's documented behaviour of libgc1, see
https://sourceware.org/bugzilla/show_bug.cgi?id=29325 .

Thanks,
- Tom

> 
> I don't think it is a flaw with the patch though. We'd have to go out of 
> our way
> to handle something like this in the testcase.
> 
> So this series LGTM.
  
Simon Marchi Sept. 26, 2022, 6:01 p.m. UTC | #3
On 2022-09-23 17:35, Tom de Vries wrote:
> On 9/23/22 19:02, Luis Machado via Gdb-patches wrote:
>> On 9/23/22 15:17, Simon Marchi via Gdb-patches wrote:
>>> My patches that touched TYPE_LENGTH and TYPE_TARGET_TYPE caused
>>> regressions in gdb.gdb/python-helper.exp.  I forgot to update
>>> gdb-gdb.py.in, as always.
>>>
>>> It looks like my CI doesn't run the test properly.  Because inserting the
>>> first breakpoint times out, do_self_tests skips the test.  I also had
>>> troubles running the test locally due to these timeouts.  So the first
>>> two patches address problems related to that, and the third one is the
>>> actual fix.
>>>
>>> Simon Marchi (3):
>>>    gdb/testsuite: bump duration for the whole test in do_self_tests
>>>    gdb/testsuite: use gdb_test in gdb.gdb/python-helper.exp
>>>    gdb/testsuite: update field names in gdb-gdb.py.in
>>>
>>>   gdb/gdb-gdb.py.in                       |  4 +-
>>>   gdb/testsuite/gdb.gdb/python-helper.exp | 88 +++++--------------------
>>>   gdb/testsuite/lib/gdb.exp               |  8 +--
>>>   gdb/testsuite/lib/selftest-support.exp  | 36 +++-------
>>>   4 files changed, 31 insertions(+), 105 deletions(-)
>>>
>>>
>>> base-commit: 8e037eae6823caf5b9cb5b4feb3de838abb25956
>>
>> Thanks for the series. I tested this on my end and it seems to work nicely.
>>
>> The only hiccup I noticed is when GDB runs into a SIGSEGV due to the guile
>> interpreter hitting GC_find_limit_with_bound. I'm not sure why this happens. Maybe
>> it is a problem with guile and armhf.
> 
> It's documented behaviour of libgc1, see
> https://sourceware.org/bugzilla/show_bug.cgi?id=29325 .

Ack, this is an orthogonal issue (and for some reason I don't see it on
my Arch Linux, but I have certainly seen it elsewhere).

Just to confirm, does the series look good to you too Tom?

Simon
  
Tom de Vries Sept. 26, 2022, 6:39 p.m. UTC | #4
On 9/26/22 20:01, Simon Marchi wrote:
> 
> 
> On 2022-09-23 17:35, Tom de Vries wrote:
>> On 9/23/22 19:02, Luis Machado via Gdb-patches wrote:
>>> On 9/23/22 15:17, Simon Marchi via Gdb-patches wrote:
>>>> My patches that touched TYPE_LENGTH and TYPE_TARGET_TYPE caused
>>>> regressions in gdb.gdb/python-helper.exp.  I forgot to update
>>>> gdb-gdb.py.in, as always.
>>>>
>>>> It looks like my CI doesn't run the test properly.  Because inserting the
>>>> first breakpoint times out, do_self_tests skips the test.  I also had
>>>> troubles running the test locally due to these timeouts.  So the first
>>>> two patches address problems related to that, and the third one is the
>>>> actual fix.
>>>>
>>>> Simon Marchi (3):
>>>>     gdb/testsuite: bump duration for the whole test in do_self_tests
>>>>     gdb/testsuite: use gdb_test in gdb.gdb/python-helper.exp
>>>>     gdb/testsuite: update field names in gdb-gdb.py.in
>>>>
>>>>    gdb/gdb-gdb.py.in                       |  4 +-
>>>>    gdb/testsuite/gdb.gdb/python-helper.exp | 88 +++++--------------------
>>>>    gdb/testsuite/lib/gdb.exp               |  8 +--
>>>>    gdb/testsuite/lib/selftest-support.exp  | 36 +++-------
>>>>    4 files changed, 31 insertions(+), 105 deletions(-)
>>>>
>>>>
>>>> base-commit: 8e037eae6823caf5b9cb5b4feb3de838abb25956
>>>
>>> Thanks for the series. I tested this on my end and it seems to work nicely.
>>>
>>> The only hiccup I noticed is when GDB runs into a SIGSEGV due to the guile
>>> interpreter hitting GC_find_limit_with_bound. I'm not sure why this happens. Maybe
>>> it is a problem with guile and armhf.
>>
>> It's documented behaviour of libgc1, see
>> https://sourceware.org/bugzilla/show_bug.cgi?id=29325 .
> 
> Ack, this is an orthogonal issue (and for some reason I don't see it on
> my Arch Linux, but I have certainly seen it elsewhere).
> 
> Just to confirm, does the series look good to you too Tom?
> 

Hi Simon,

it does, yes, thanks.

I did wonder a bit about the first patch, where we remove the whole bit 
about the 5 minute timeout, but after thinking a bit on this I realized 
that setting absolute timeouts like that are likely to be inaccurate, so 
replacing it with a relative one (timeout factor) is better.  The quoted 
example is likely to have an in increased timeout in the board settings 
anyway, so that could partially take care of the drop in timeout from 5m 
(600s) to 10 (timeout factor) * 10s (100s).

Anyway, I tested the series and it takes care of the regression for me.

Thanks,
- Tom
  
Simon Marchi Sept. 26, 2022, 9:33 p.m. UTC | #5
On 2022-09-26 14:39, Tom de Vries wrote:
> On 9/26/22 20:01, Simon Marchi wrote:
>>
>>
>> On 2022-09-23 17:35, Tom de Vries wrote:
>>> On 9/23/22 19:02, Luis Machado via Gdb-patches wrote:
>>>> On 9/23/22 15:17, Simon Marchi via Gdb-patches wrote:
>>>>> My patches that touched TYPE_LENGTH and TYPE_TARGET_TYPE caused
>>>>> regressions in gdb.gdb/python-helper.exp.  I forgot to update
>>>>> gdb-gdb.py.in, as always.
>>>>>
>>>>> It looks like my CI doesn't run the test properly.  Because inserting the
>>>>> first breakpoint times out, do_self_tests skips the test.  I also had
>>>>> troubles running the test locally due to these timeouts.  So the first
>>>>> two patches address problems related to that, and the third one is the
>>>>> actual fix.
>>>>>
>>>>> Simon Marchi (3):
>>>>>     gdb/testsuite: bump duration for the whole test in do_self_tests
>>>>>     gdb/testsuite: use gdb_test in gdb.gdb/python-helper.exp
>>>>>     gdb/testsuite: update field names in gdb-gdb.py.in
>>>>>
>>>>>    gdb/gdb-gdb.py.in                       |  4 +-
>>>>>    gdb/testsuite/gdb.gdb/python-helper.exp | 88 +++++--------------------
>>>>>    gdb/testsuite/lib/gdb.exp               |  8 +--
>>>>>    gdb/testsuite/lib/selftest-support.exp  | 36 +++-------
>>>>>    4 files changed, 31 insertions(+), 105 deletions(-)
>>>>>
>>>>>
>>>>> base-commit: 8e037eae6823caf5b9cb5b4feb3de838abb25956
>>>>
>>>> Thanks for the series. I tested this on my end and it seems to work nicely.
>>>>
>>>> The only hiccup I noticed is when GDB runs into a SIGSEGV due to the guile
>>>> interpreter hitting GC_find_limit_with_bound. I'm not sure why this happens. Maybe
>>>> it is a problem with guile and armhf.
>>>
>>> It's documented behaviour of libgc1, see
>>> https://sourceware.org/bugzilla/show_bug.cgi?id=29325 .
>>
>> Ack, this is an orthogonal issue (and for some reason I don't see it on
>> my Arch Linux, but I have certainly seen it elsewhere).
>>
>> Just to confirm, does the series look good to you too Tom?
>>
> 
> Hi Simon,
> 
> it does, yes, thanks.
> 
> I did wonder a bit about the first patch, where we remove the whole bit about the 5 minute timeout, but after thinking a bit on this I realized that setting absolute timeouts like that are likely to be inaccurate, so replacing it with a relative one (timeout factor) is better.  The quoted example is likely to have an in increased timeout in the board settings anyway, so that could partially take care of the drop in timeout from 5m (600s) to 10 (timeout factor) * 10s (100s).

Yeah, that was my thinking: if it's a slow board, it will have some
increased timeout already, and that will be multiplied by 10.  This is
better than one hard-coded value added 20 years ago for some specific
board.

> Anyway, I tested the series and it takes care of the regression for me.

Thanks, will push.

Simon
  
Guinevere Larsen Sept. 27, 2022, 10:34 a.m. UTC | #6
On 26/09/2022 20:01, Simon Marchi via Gdb-patches wrote:
>
> On 2022-09-23 17:35, Tom de Vries wrote:
>> On 9/23/22 19:02, Luis Machado via Gdb-patches wrote:
>>> On 9/23/22 15:17, Simon Marchi via Gdb-patches wrote:
>>>> My patches that touched TYPE_LENGTH and TYPE_TARGET_TYPE caused
>>>> regressions in gdb.gdb/python-helper.exp.  I forgot to update
>>>> gdb-gdb.py.in, as always.
>>>>
>>>> It looks like my CI doesn't run the test properly.  Because inserting the
>>>> first breakpoint times out, do_self_tests skips the test.  I also had
>>>> troubles running the test locally due to these timeouts.  So the first
>>>> two patches address problems related to that, and the third one is the
>>>> actual fix.
>>>>
>>>> Simon Marchi (3):
>>>>     gdb/testsuite: bump duration for the whole test in do_self_tests
>>>>     gdb/testsuite: use gdb_test in gdb.gdb/python-helper.exp
>>>>     gdb/testsuite: update field names in gdb-gdb.py.in
>>>>
>>>>    gdb/gdb-gdb.py.in                       |  4 +-
>>>>    gdb/testsuite/gdb.gdb/python-helper.exp | 88 +++++--------------------
>>>>    gdb/testsuite/lib/gdb.exp               |  8 +--
>>>>    gdb/testsuite/lib/selftest-support.exp  | 36 +++-------
>>>>    4 files changed, 31 insertions(+), 105 deletions(-)
>>>>
>>>>
>>>> base-commit: 8e037eae6823caf5b9cb5b4feb3de838abb25956
>>> Thanks for the series. I tested this on my end and it seems to work nicely.
>>>
>>> The only hiccup I noticed is when GDB runs into a SIGSEGV due to the guile
>>> interpreter hitting GC_find_limit_with_bound. I'm not sure why this happens. Maybe
>>> it is a problem with guile and armhf.
>> It's documented behaviour of libgc1, see
>> https://sourceware.org/bugzilla/show_bug.cgi?id=29325 .
> Ack, this is an orthogonal issue (and for some reason I don't see it on
> my Arch Linux, but I have certainly seen it elsewhere).

This bug happens because of an old version of libgc being used, where 
they used that segfault to probe memory for something. They have 
developed a new way of probing that doesn't trigger this segfault, but 
not all distributions seem to have backported it. It's probably not 
happening on Arch because htey have a new version of the library, while 
on fedora it was happening until recently (Alexandra backported that for 
us). Fixing this sort of needs to happen on a per-distro basis, as it 
isn't GDB related, it's an "available libraries" problem.

Cheers,
Bruno

>
> Just to confirm, does the series look good to you too Tom?
>
> Simon
>
  
Luis Machado Sept. 27, 2022, 10:42 a.m. UTC | #7
On 9/27/22 11:34, Bruno Larsen wrote:
> On 26/09/2022 20:01, Simon Marchi via Gdb-patches wrote:
>>
>> On 2022-09-23 17:35, Tom de Vries wrote:
>>> On 9/23/22 19:02, Luis Machado via Gdb-patches wrote:
>>>> On 9/23/22 15:17, Simon Marchi via Gdb-patches wrote:
>>>>> My patches that touched TYPE_LENGTH and TYPE_TARGET_TYPE caused
>>>>> regressions in gdb.gdb/python-helper.exp.  I forgot to update
>>>>> gdb-gdb.py.in, as always.
>>>>>
>>>>> It looks like my CI doesn't run the test properly.  Because inserting the
>>>>> first breakpoint times out, do_self_tests skips the test.  I also had
>>>>> troubles running the test locally due to these timeouts.  So the first
>>>>> two patches address problems related to that, and the third one is the
>>>>> actual fix.
>>>>>
>>>>> Simon Marchi (3):
>>>>>     gdb/testsuite: bump duration for the whole test in do_self_tests
>>>>>     gdb/testsuite: use gdb_test in gdb.gdb/python-helper.exp
>>>>>     gdb/testsuite: update field names in gdb-gdb.py.in
>>>>>
>>>>>    gdb/gdb-gdb.py.in                       |  4 +-
>>>>>    gdb/testsuite/gdb.gdb/python-helper.exp | 88 +++++--------------------
>>>>>    gdb/testsuite/lib/gdb.exp               |  8 +--
>>>>>    gdb/testsuite/lib/selftest-support.exp  | 36 +++-------
>>>>>    4 files changed, 31 insertions(+), 105 deletions(-)
>>>>>
>>>>>
>>>>> base-commit: 8e037eae6823caf5b9cb5b4feb3de838abb25956
>>>> Thanks for the series. I tested this on my end and it seems to work nicely.
>>>>
>>>> The only hiccup I noticed is when GDB runs into a SIGSEGV due to the guile
>>>> interpreter hitting GC_find_limit_with_bound. I'm not sure why this happens. Maybe
>>>> it is a problem with guile and armhf.
>>> It's documented behaviour of libgc1, see
>>> https://sourceware.org/bugzilla/show_bug.cgi?id=29325 .
>> Ack, this is an orthogonal issue (and for some reason I don't see it on
>> my Arch Linux, but I have certainly seen it elsewhere).
> 
> This bug happens because of an old version of libgc being used, where they used that segfault to probe memory for something. They have developed a new way of probing that doesn't trigger this segfault, but not all distributions seem to have backported it. It's probably not happening on Arch because htey have a new version of the library, while on fedora it was happening until recently (Alexandra backported that for us). Fixing this sort of needs to happen on a per-distro basis, as it isn't GDB related, it's an "available libraries" problem.

Thanks for the tip. I'll try to update the packages for this particular distro (Ubuntu 22.04).

> 
> Cheers,
> Bruno
> 
>>
>> Just to confirm, does the series look good to you too Tom?
>>
>> Simon
>>
>