You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Zhongbo Tian (JIRA)" <ji...@apache.org> on 2016/12/12 05:35:58 UTC

[jira] [Comment Edited] (MESOS-6644) Mesos master failed to devolve Scheduler HTTP v1 Call

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

Zhongbo Tian edited comment on MESOS-6644 at 12/12/16 5:35 AM:
---------------------------------------------------------------

Hmm, seems our message is too large:
``$ ls -al mesos_protobuf_exception.txt 
-rw-r--r-- 1 tianzhongbo tianzhongbo 90893605 12月 12 13:06 mesos_protobuf_exception.txt
``

and when I tries to devolve this message manually, I gets:
``[libprotobuf ERROR google/protobuf/io/coded_stream.cc:171] A protocol message was rejected because it was too big (more than 67108864 bytes).  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
``


was (Author: windreamer):
Hmm, seems our message is too large:
```
$ ls -al mesos_protobuf_exception.txt 
-rw-r--r-- 1 tianzhongbo tianzhongbo 90893605 12月 12 13:06 mesos_protobuf_exception.txt
```

and when I tries to devolve this message manually, I gets:
```
[libprotobuf ERROR google/protobuf/io/coded_stream.cc:171] A protocol message was rejected because it was too big (more than 67108864 bytes).  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
```

> Mesos master failed to devolve Scheduler HTTP v1 Call
> -----------------------------------------------------
>
>                 Key: MESOS-6644
>                 URL: https://issues.apache.org/jira/browse/MESOS-6644
>             Project: Mesos
>          Issue Type: Bug
>          Components: HTTP API
>    Affects Versions: 0.27.2
>            Reporter: Zhongbo Tian
>         Attachments: parsed_result_by_windreamer.txt
>
>
> Master failed with an assertion:
> {code:none}
> Check failed: t.ParsePartialFromString(data) Failed to parse mesos.scheduler.Call while devolving from mesos.v1.scheduler.Call
> {code}
> it is rare and hard to catch, so we patch the master to trying to dump the failed message:
> {code:none}
> diff --git a/src/internal/devolve.cpp b/src/internal/devolve.cpp
> index efcc5d6..0c457a9 100644
> --- a/src/internal/devolve.cpp
> +++ b/src/internal/devolve.cpp
> @@ -42,7 +42,8 @@ static T devolve(const google::protobuf::Message& message)
>    // be set and we don't want an exception to get thrown.
>    CHECK(t.ParsePartialFromString(data))
>      << "Failed to parse " << t.GetTypeName()
> -    << " while devolving from " << message.GetTypeName();
> +    << " while devolving from " << message.GetTypeName()
> +    << " data: [" << data << "]";
>  
>    return t;
> }
> {code}
> and we get a partial dump of the message (seems glog only keep 32k logging maximum"), pls get the base64-ed dumped message here
> {code:none}
> curl -Ls https://gist.github.com/windreamer/48fb1b99ee3d4398f746766ee5879149/raw/8e5038c7d47c3db297bd12724ac1cca67ba93f53/dumped.base64| base64 -d
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)