diff mbox

libstdc++ testsuite make targets check-parallel and check-performance don't work anymore

Message ID 20141104043400.GJ3961@redhat.com
State New
Headers show

Commit Message

Jonathan Wakely Nov. 4, 2014, 4:34 a.m. UTC
On 04/11/14 03:41 +0000, Jonathan Wakely wrote:
>On 03/11/14 22:07 +0000, Jonathan Wakely wrote:
>>On 3 November 2014 17:51, Paolo Carlini <paolo.carlini@oracle.com> wrote:
>>>.. other than the above issue, I see a segmentation fault for:
>>>
>>>    performance/ext/pb_ds/multimap_text_insert_mem_large.cc

Fixed like so.

Comments

Paolo Carlini Nov. 4, 2014, 1:13 p.m. UTC | #1
Hi again,

On 11/04/2014 05:34 AM, Jonathan Wakely wrote:
> On 04/11/14 03:41 +0000, Jonathan Wakely wrote:
>> On 03/11/14 22:07 +0000, Jonathan Wakely wrote:
>>> On 3 November 2014 17:51, Paolo Carlini <paolo.carlini@oracle.com> 
>>> wrote:
>>>> .. other than the above issue, I see a segmentation fault for:
>>>>
>>>>    performance/ext/pb_ds/multimap_text_insert_mem_large.cc
Not a big deal of course, but unfortunately today I'm seeing *two* 
segfaults for pb_ds:

performance/ext/pb_ds/multimap_text_insert_mem_large.cc
.../libstdc++-v3/scripts/check_performance: line 41: 16173 Segmentation 
fault      ./$EXE_NAME &>tmp.$FILE_NAME
performance/ext/pb_ds/multimap_text_insert_mem_small.cc
.../libstdc++-v3/scripts/check_performance: line 41: 16217 Segmentation 
fault      ./$EXE_NAME &>tmp.$FILE_NAME

Paolo.
Paolo Carlini Nov. 4, 2014, 1:30 p.m. UTC | #2
.. and also:

performance/ext/pb_ds/priority_queue_text_pop_mem.cc
.../libstdc++-v3/scripts/check_performance: line 41: 16905 Segmentation 
fault      ./$EXE_NAME &>tmp.$FILE_NAME

Paolo.
Jonathan Wakely Nov. 4, 2014, 3:32 p.m. UTC | #3
On 4 November 2014 13:13, Paolo Carlini <paolo.carlini@oracle.com> wrote:
> Hi again,
>
>
> On 11/04/2014 05:34 AM, Jonathan Wakely wrote:
>>
>> On 04/11/14 03:41 +0000, Jonathan Wakely wrote:
>>>
>>> On 03/11/14 22:07 +0000, Jonathan Wakely wrote:
>>>>
>>>> On 3 November 2014 17:51, Paolo Carlini <paolo.carlini@oracle.com>
>>>> wrote:
>>>>>
>>>>> .. other than the above issue, I see a segmentation fault for:
>>>>>
>>>>>    performance/ext/pb_ds/multimap_text_insert_mem_large.cc
>
> Not a big deal of course, but unfortunately today I'm seeing *two* segfaults
> for pb_ds:
>
> performance/ext/pb_ds/multimap_text_insert_mem_large.cc
> .../libstdc++-v3/scripts/check_performance: line 41: 16173 Segmentation
> fault      ./$EXE_NAME &>tmp.$FILE_NAME
> performance/ext/pb_ds/multimap_text_insert_mem_small.cc
> .../libstdc++-v3/scripts/check_performance: line 41: 16217 Segmentation
> fault      ./$EXE_NAME &>tmp.$FILE_NAME

They were both caused by the infinite recursion in the operator== for
tracker_allocator, which should be fixed.

However, my change to std::deque's move constructor introduced some
new failures, mostly due to dg-error line numbers that need to change,
but one real failure in 23_containers/deque/allocator/move_assign.cc

I'm not sure whether the right approach is to violate the requirement
that deque's move constructor move constructs the allocator, (which I
changed to copy construction, to meet the exception safety guarantee
that the RHS of the move construction maintains its invariants) or to
change the invariant so that a deque doesn't always have a map
allocated.

I'll fix it asap.
Paolo Carlini Nov. 4, 2014, 3:46 p.m. UTC | #4
Hi,

On 11/04/2014 04:32 PM, Jonathan Wakely wrote:
> Not a big deal of course, but unfortunately today I'm seeing *two* segfaults
> for pb_ds:
>
> performance/ext/pb_ds/multimap_text_insert_mem_large.cc
> .../libstdc++-v3/scripts/check_performance: line 41: 16173 Segmentation
> fault      ./$EXE_NAME &>tmp.$FILE_NAME
> performance/ext/pb_ds/multimap_text_insert_mem_small.cc
> .../libstdc++-v3/scripts/check_performance: line 41: 16217 Segmentation
> fault      ./$EXE_NAME &>tmp.$FILE_NAME
> They were both caused by the infinite recursion in the operator== for
> tracker_allocator, which should be fixed.
To be clear, I see (deterministically, apparently) the three pb_ds fails 
which I reported earlier today with a *current* tree. But the pb_ds 
issues are definitely low priority, unless they point to something 
serious elsewhere. Thanks for looking into that.

Paolo.
Paolo Carlini Nov. 4, 2014, 4:34 p.m. UTC | #5
On 11/04/2014 04:46 PM, Paolo Carlini wrote:
> Hi,
>
> On 11/04/2014 04:32 PM, Jonathan Wakely wrote:
>> Not a big deal of course, but unfortunately today I'm seeing *two* 
>> segfaults
>> for pb_ds:
>>
>> performance/ext/pb_ds/multimap_text_insert_mem_large.cc
>> .../libstdc++-v3/scripts/check_performance: line 41: 16173 Segmentation
>> fault      ./$EXE_NAME &>tmp.$FILE_NAME
>> performance/ext/pb_ds/multimap_text_insert_mem_small.cc
>> .../libstdc++-v3/scripts/check_performance: line 41: 16217 Segmentation
>> fault      ./$EXE_NAME &>tmp.$FILE_NAME
>> They were both caused by the infinite recursion in the operator== for
>> tracker_allocator, which should be fixed.
> To be clear, I see (deterministically, apparently) the three pb_ds 
> fails which I reported earlier today with a *current* tree. But the 
> pb_ds issues are definitely low priority, unless they point to 
> something serious elsewhere. Thanks for looking into that.
Ah! The testsuite_allocator.h fix of yours is still unapplied, didn't 
know that, sorry ;)

Paolo.
Jonathan Wakely Nov. 4, 2014, 4:55 p.m. UTC | #6
On 4 November 2014 16:34, Paolo Carlini wrote:
> Ah! The testsuite_allocator.h fix of yours is still unapplied, didn't know
> that, sorry ;)

My bad - I thought I'd committed it!  Done now.
diff mbox

Patch

commit 75a3f132da320a76baf7e82f4f850cdfce239a2e
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Nov 4 04:33:32 2014 +0000

    	* testsuite/util/testsuite_allocator.h (operator==): Fix recursion.

diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h
index 8edc0a5..dec8d1a 100644
--- a/libstdc++-v3/testsuite/util/testsuite_allocator.h
+++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h
@@ -209,7 +209,7 @@  namespace __gnu_test
     {
       const Alloc1& alloc1 = lhs;
       const Alloc2& alloc2 = rhs;
-      return lhs == rhs;
+      return alloc1 == alloc2;
     }
 
   template<class T1, class Alloc1, class T2, class Alloc2>