mesos-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominic Hamon (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (MESOS-1632) Seg fault due to infinite recursion "<< RepeatedPtrField<Resource>"
Date Thu, 24 Jul 2014 00:08:43 GMT

    [ https://issues.apache.org/jira/browse/MESOS-1632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14072547#comment-14072547
] 

Dominic Hamon edited comment on MESOS-1632 at 7/24/14 12:06 AM:
----------------------------------------------------------------

I think this is due to an implicit conversion from {{RepeatedPtrField<Resource>}} to
{{Resources}}.

Having looked deeper, making this explicit isn't really an option given it's part of the public
API and relied on when extracting resources from offers.

It's still unclear to me why the method lookup would change based on the stream operator changes.


was (Author: dhamon):
I think this is due to an implicit conversion from {{RepeatedPtrField<Resource>}} to
{{Resources}}. We should try to make that conversion explicit. The stream operators are already
explicitly converting anyway.

> Seg fault due to infinite recursion "<< RepeatedPtrField<Resource>"
> -------------------------------------------------------------------
>
>                 Key: MESOS-1632
>                 URL: https://issues.apache.org/jira/browse/MESOS-1632
>             Project: Mesos
>          Issue Type: Bug
>    Affects Versions: 0.20.0
>            Reporter: Yan Xu
>            Assignee: Isabel Jimenez
>
> {noformat:title=error}
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7fffe7daa940 (LWP 40525)]
> 0x00007ffff4fb3b78 in _int_malloc () from /lib64/libc.so.6
> (gdb) bt
> #0  0x00007ffff4fb3b78 in _int_malloc () from /lib64/libc.so.6
> #1  0x00007ffff4fb609e in malloc () from /lib64/libc.so.6
> #2  0x00007ffff55db25d in operator new(unsigned long) () from /usr/lib64/libstdc++.so.6
> #3  0x00007ffff55db379 in operator new[](unsigned long) () from /usr/lib64/libstdc++.so.6
> #4  0x00007ffff6f83c97 in google::protobuf::internal::RepeatedPtrFieldBase::Reserve (this=0xd401b10,
new_size=<optimized out>) at google/protobuf/repeated_field.cc:51
> #5  0x00007ffff6d9d526 in MergeFrom<google::protobuf::RepeatedPtrField<mesos::Value_Range>::TypeHandler>
(other=..., this=0xd401b10) at ../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/google/protobuf/repeated_field.h:864
> #6  MergeFrom (other=..., this=0xd401b10) at ../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/google/protobuf/repeated_field.h:1091
> #7  mesos::Value_Ranges::MergeFrom (this=0xd401b00, from=...) at mesos.pb.cc:7440
> #8  0x00007ffff6da1e3d in mesos::Resource::MergeFrom (this=this@entry=0xd401a90, from=...)
at mesos.pb.cc:9196
> #9  0x00000000004c5acc in Merge (to=<optimized out>, from=...) at ../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/google/protobuf/repeated_field.h:339
> #10 google::protobuf::internal::RepeatedPtrFieldBase::MergeFrom<google::protobuf::RepeatedPtrField<mesos::Resource>::TypeHandler>
(this=this@entry=0x7fffe75ab240, other=...)
>     at ../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/google/protobuf/repeated_field.h:866
> #11 0x00000000004c5d56 in MergeFrom (other=..., this=0x7fffe75ab240) at ../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/google/protobuf/repeated_field.h:1091
> #12 Resources (_resources=..., this=0x7fffe75ab240) at ../../include/mesos/resources.hpp:78
> #13 mesos::operator<< (stream=..., resources=...) at ../../include/mesos/resources.hpp:251
> #14 0x00000000004c5e7a in operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251

> #15 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #16 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #17 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #18 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #19 mesos::operator<< (stream=..., resources=...) at ../../include/mesos/resources.hpp:251
> #20 0x00000000004c5e7a in operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #21 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #22 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #23 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #24 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #25 mesos::operator<< (stream=..., resources=...) at ../../include/mesos/resources.hpp:251
> #26 0x00000000004c5e7a in operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #27 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #28 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #29 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #30 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #31 mesos::operator<< (stream=..., resources=...) at ../../include/mesos/resources.hpp:251
> #32 0x00000000004c5e7a in operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #33 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #34 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> #35 operator<< (resources=..., stream=...) at ../../include/mesos/resources.hpp:251
> ...
> {noformat}
> {code:title=relevant code}
>   /*implicit*/
>   Resources(const google::protobuf::RepeatedPtrField<Resource>& _resources)
>   {
>     resources.MergeFrom(_resources);
>   }
> inline std::ostream& operator << (
>     std::ostream& stream,
>     const google::protobuf::RepeatedPtrField<Resource>& resources)
> {
>   return stream << Resources(resources);
> }
> {code}
> It was fine before this commit: https://github.com/apache/mesos/commit/c9d1c4cd1be097e3bcee63855847da272c43bc68



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message