You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Qian Zhang <zh...@gmail.com> on 2020/02/25 01:26:56 UTC
Review Request 72162: Accommodated the "Infinity" value in the JSON
<-> Protobuf conversion.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72162/
-----------------------------------------------------------
Review request for mesos, Andrei Budnik and Greg Mann.
Bugs: MESOS-10064
https://issues.apache.org/jira/browse/MESOS-10064
Repository: mesos
Description
-------
Accommodated the "Infinity" value in the JSON <-> Protobuf conversion.
Diffs
-----
3rdparty/stout/include/stout/jsonify.hpp 7a239d846de5679e9c2b80aa4e617a72fdeac92c
3rdparty/stout/include/stout/protobuf.hpp fcd91d5ea822612e4b32d157fcbc5f0dedeba823
3rdparty/stout/tests/protobuf_tests.cpp 55889dc432a9459965d3dd75052d672828cdea90
3rdparty/stout/tests/protobuf_tests.proto 5e20215fcc69e400358847d0ce943d8c18f2a9e0
Diff: https://reviews.apache.org/r/72162/diff/1/
Testing
-------
Thanks,
Qian Zhang
Re: Review Request 72162: Accommodated the "Infinity" value in the
JSON <-> Protobuf conversion.
Posted by Qian Zhang <zh...@gmail.com>.
> On Feb. 27, 2020, 11:34 p.m., Greg Mann wrote:
> > 3rdparty/stout/include/stout/jsonify.hpp
> > Line 91 (original), 91-96 (patched)
> > <https://reviews.apache.org/r/72162/diff/1/?file=2212014#file2212014line91>
> >
> > One other option here and elsewhere is to redefine `RAPIDJSON_WRITE_DEFAULT_FLAGS`; not sure if one or the other is more desirable, WDYT?
Yeah, I agree redefining `RAPIDJSON_WRITE_DEFAULT_FLAGS` is better.
> On Feb. 27, 2020, 11:34 p.m., Greg Mann wrote:
> > 3rdparty/stout/tests/protobuf_tests.cpp
> > Lines 885 (patched)
> > <https://reviews.apache.org/r/72162/diff/1/?file=2212016#file2212016line885>
> >
> > Does this ordering matter? Can we remove this comment?
Yeah, it matters, otherwise this test will fail because the keys in the output of `stringify(object)` are in alphabetical order.
- Qian
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72162/#review219673
-----------------------------------------------------------
On March 2, 2020, 2:31 p.m., Qian Zhang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/72162/
> -----------------------------------------------------------
>
> (Updated March 2, 2020, 2:31 p.m.)
>
>
> Review request for mesos, Andrei Budnik, Andrei Sekretenko, Benjamin Mahler, and Greg Mann.
>
>
> Bugs: MESOS-10064
> https://issues.apache.org/jira/browse/MESOS-10064
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Accommodated the "Infinity" value in the JSON <-> Protobuf conversion.
>
>
> Diffs
> -----
>
> 3rdparty/stout/include/stout/jsonify.hpp 7a239d846de5679e9c2b80aa4e617a72fdeac92c
> 3rdparty/stout/include/stout/protobuf.hpp fcd91d5ea822612e4b32d157fcbc5f0dedeba823
> 3rdparty/stout/tests/protobuf_tests.cpp 55889dc432a9459965d3dd75052d672828cdea90
> 3rdparty/stout/tests/protobuf_tests.proto 5e20215fcc69e400358847d0ce943d8c18f2a9e0
>
>
> Diff: https://reviews.apache.org/r/72162/diff/2/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Qian Zhang
>
>
Re: Review Request 72162: Accommodated the "Infinity" value in the
JSON <-> Protobuf conversion.
Posted by Greg Mann <gr...@mesosphere.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72162/#review219673
-----------------------------------------------------------
3rdparty/stout/include/stout/jsonify.hpp
Line 91 (original), 91-96 (patched)
<https://reviews.apache.org/r/72162/#comment307883>
One other option here and elsewhere is to redefine `RAPIDJSON_WRITE_DEFAULT_FLAGS`; not sure if one or the other is more desirable, WDYT?
3rdparty/stout/tests/protobuf_tests.cpp
Lines 885 (patched)
<https://reviews.apache.org/r/72162/#comment307884>
Does this ordering matter? Can we remove this comment?
3rdparty/stout/tests/protobuf_tests.cpp
Lines 910-913 (patched)
<https://reviews.apache.org/r/72162/#comment307885>
Could you verify the contents of the result here as well?
- Greg Mann
On Feb. 25, 2020, 1:26 a.m., Qian Zhang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/72162/
> -----------------------------------------------------------
>
> (Updated Feb. 25, 2020, 1:26 a.m.)
>
>
> Review request for mesos, Andrei Budnik and Greg Mann.
>
>
> Bugs: MESOS-10064
> https://issues.apache.org/jira/browse/MESOS-10064
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Accommodated the "Infinity" value in the JSON <-> Protobuf conversion.
>
>
> Diffs
> -----
>
> 3rdparty/stout/include/stout/jsonify.hpp 7a239d846de5679e9c2b80aa4e617a72fdeac92c
> 3rdparty/stout/include/stout/protobuf.hpp fcd91d5ea822612e4b32d157fcbc5f0dedeba823
> 3rdparty/stout/tests/protobuf_tests.cpp 55889dc432a9459965d3dd75052d672828cdea90
> 3rdparty/stout/tests/protobuf_tests.proto 5e20215fcc69e400358847d0ce943d8c18f2a9e0
>
>
> Diff: https://reviews.apache.org/r/72162/diff/1/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Qian Zhang
>
>
Re: Review Request 72162: Accommodated the "Infinity" value in the
JSON <-> Protobuf conversion.
Posted by Qian Zhang <zh...@gmail.com>.
> On Feb. 26, 2020, 1:23 a.m., Andrei Budnik wrote:
> > 3rdparty/stout/include/stout/protobuf.hpp
> > Lines 549 (patched)
> > <https://reviews.apache.org/r/72162/diff/1/?file=2212015#file2212015line549>
> >
> > Is `double` infinity a better option here given that `JSON::Number` stores a value in `double`?
Yeah, I agree!
- Qian
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72162/#review219657
-----------------------------------------------------------
On Feb. 28, 2020, 1:46 a.m., Qian Zhang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/72162/
> -----------------------------------------------------------
>
> (Updated Feb. 28, 2020, 1:46 a.m.)
>
>
> Review request for mesos, Andrei Budnik, Andrei Sekretenko, Benjamin Mahler, and Greg Mann.
>
>
> Bugs: MESOS-10064
> https://issues.apache.org/jira/browse/MESOS-10064
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Accommodated the "Infinity" value in the JSON <-> Protobuf conversion.
>
>
> Diffs
> -----
>
> 3rdparty/stout/include/stout/jsonify.hpp 7a239d846de5679e9c2b80aa4e617a72fdeac92c
> 3rdparty/stout/include/stout/protobuf.hpp fcd91d5ea822612e4b32d157fcbc5f0dedeba823
> 3rdparty/stout/tests/protobuf_tests.cpp 55889dc432a9459965d3dd75052d672828cdea90
> 3rdparty/stout/tests/protobuf_tests.proto 5e20215fcc69e400358847d0ce943d8c18f2a9e0
>
>
> Diff: https://reviews.apache.org/r/72162/diff/1/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Qian Zhang
>
>
Re: Review Request 72162: Accommodated the "Infinity" value in the
JSON <-> Protobuf conversion.
Posted by Qian Zhang <zh...@gmail.com>.
> On Feb. 26, 2020, 1:23 a.m., Andrei Budnik wrote:
> > 3rdparty/stout/include/stout/protobuf.hpp
> > Lines 551 (patched)
> > <https://reviews.apache.org/r/72162/diff/1/?file=2212015#file2212015line551>
> >
> > It looks like `JSON::parse()` alone can't parse infinite values from a json string that has been serialized by `jsonify()`. If so, can it cause any issues? Do we want a test for such a case?
> >
> > What prevents us from parsing infinite values in `JSON::parse()`?
>
> Greg Mann wrote:
> Sorry could you clarify - does your first question imply that `jsonify()` serializes infinity values into a format different than the string in the unit test in this patch?
>
> Regarding your second question, I think that the updates to the rapid json writers enable JSON::parse() to handle infinite values, don't they? The new test case parses "Infinity" etc. using `JSON::parse()`.
Andrei, I do not follow your questions too, could you please elaborate?
- Qian
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72162/#review219657
-----------------------------------------------------------
On Feb. 28, 2020, 1:46 a.m., Qian Zhang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/72162/
> -----------------------------------------------------------
>
> (Updated Feb. 28, 2020, 1:46 a.m.)
>
>
> Review request for mesos, Andrei Budnik, Andrei Sekretenko, Benjamin Mahler, and Greg Mann.
>
>
> Bugs: MESOS-10064
> https://issues.apache.org/jira/browse/MESOS-10064
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Accommodated the "Infinity" value in the JSON <-> Protobuf conversion.
>
>
> Diffs
> -----
>
> 3rdparty/stout/include/stout/jsonify.hpp 7a239d846de5679e9c2b80aa4e617a72fdeac92c
> 3rdparty/stout/include/stout/protobuf.hpp fcd91d5ea822612e4b32d157fcbc5f0dedeba823
> 3rdparty/stout/tests/protobuf_tests.cpp 55889dc432a9459965d3dd75052d672828cdea90
> 3rdparty/stout/tests/protobuf_tests.proto 5e20215fcc69e400358847d0ce943d8c18f2a9e0
>
>
> Diff: https://reviews.apache.org/r/72162/diff/1/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Qian Zhang
>
>
Re: Review Request 72162: Accommodated the "Infinity" value in the
JSON <-> Protobuf conversion.
Posted by Andrei Budnik <ab...@mesosphere.com>.
> On Фев. 25, 2020, 5:23 п.п., Andrei Budnik wrote:
> > 3rdparty/stout/include/stout/protobuf.hpp
> > Lines 551 (patched)
> > <https://reviews.apache.org/r/72162/diff/1/?file=2212015#file2212015line551>
> >
> > It looks like `JSON::parse()` alone can't parse infinite values from a json string that has been serialized by `jsonify()`. If so, can it cause any issues? Do we want a test for such a case?
> >
> > What prevents us from parsing infinite values in `JSON::parse()`?
>
> Greg Mann wrote:
> Sorry could you clarify - does your first question imply that `jsonify()` serializes infinity values into a format different than the string in the unit test in this patch?
>
> Regarding your second question, I think that the updates to the rapid json writers enable JSON::parse() to handle infinite values, don't they? The new test case parses "Infinity" etc. using `JSON::parse()`.
>
> Qian Zhang wrote:
> Andrei, I do not follow your questions too, could you please elaborate?
If a `JSON::parse<JSON::Number>()` could parse `Infinity` values, we wouldn't need to modify this `operator()`. A `JSON::parse` function specialization for `JSON::Number` type could return `std::numeric_limits<double>::infinity()` if the argument equals to `"Infinity"`.
However, some call sites of the `parse` function may find the new behavior unacceptable as we're trying to extend JSON by adding non-standard special values for infinities. Thus, I'm dropping this comment.
- Andrei
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72162/#review219657
-----------------------------------------------------------
On Март 2, 2020, 6:31 д.п., Qian Zhang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/72162/
> -----------------------------------------------------------
>
> (Updated Март 2, 2020, 6:31 д.п.)
>
>
> Review request for mesos, Andrei Budnik, Andrei Sekretenko, Benjamin Mahler, and Greg Mann.
>
>
> Bugs: MESOS-10064
> https://issues.apache.org/jira/browse/MESOS-10064
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Accommodated the "Infinity" value in the JSON <-> Protobuf conversion.
>
>
> Diffs
> -----
>
> 3rdparty/stout/include/stout/jsonify.hpp 7a239d846de5679e9c2b80aa4e617a72fdeac92c
> 3rdparty/stout/include/stout/protobuf.hpp fcd91d5ea822612e4b32d157fcbc5f0dedeba823
> 3rdparty/stout/tests/protobuf_tests.cpp 55889dc432a9459965d3dd75052d672828cdea90
> 3rdparty/stout/tests/protobuf_tests.proto 5e20215fcc69e400358847d0ce943d8c18f2a9e0
>
>
> Diff: https://reviews.apache.org/r/72162/diff/2/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Qian Zhang
>
>
Re: Review Request 72162: Accommodated the "Infinity" value in the
JSON <-> Protobuf conversion.
Posted by Greg Mann <gr...@mesosphere.io>.
> On Feb. 25, 2020, 5:23 p.m., Andrei Budnik wrote:
> > 3rdparty/stout/include/stout/protobuf.hpp
> > Lines 551 (patched)
> > <https://reviews.apache.org/r/72162/diff/1/?file=2212015#file2212015line551>
> >
> > It looks like `JSON::parse()` alone can't parse infinite values from a json string that has been serialized by `jsonify()`. If so, can it cause any issues? Do we want a test for such a case?
> >
> > What prevents us from parsing infinite values in `JSON::parse()`?
Sorry could you clarify - does your first question imply that `jsonify()` serializes infinity values into a format different than the string in the unit test in this patch?
Regarding your second question, I think that the updates to the rapid json writers enable JSON::parse() to handle infinite values, don't they? The new test case parses "Infinity" etc. using `JSON::parse()`.
- Greg
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72162/#review219657
-----------------------------------------------------------
On Feb. 25, 2020, 1:26 a.m., Qian Zhang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/72162/
> -----------------------------------------------------------
>
> (Updated Feb. 25, 2020, 1:26 a.m.)
>
>
> Review request for mesos, Andrei Budnik and Greg Mann.
>
>
> Bugs: MESOS-10064
> https://issues.apache.org/jira/browse/MESOS-10064
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Accommodated the "Infinity" value in the JSON <-> Protobuf conversion.
>
>
> Diffs
> -----
>
> 3rdparty/stout/include/stout/jsonify.hpp 7a239d846de5679e9c2b80aa4e617a72fdeac92c
> 3rdparty/stout/include/stout/protobuf.hpp fcd91d5ea822612e4b32d157fcbc5f0dedeba823
> 3rdparty/stout/tests/protobuf_tests.cpp 55889dc432a9459965d3dd75052d672828cdea90
> 3rdparty/stout/tests/protobuf_tests.proto 5e20215fcc69e400358847d0ce943d8c18f2a9e0
>
>
> Diff: https://reviews.apache.org/r/72162/diff/1/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Qian Zhang
>
>
Re: Review Request 72162: Accommodated the "Infinity" value in the
JSON <-> Protobuf conversion.
Posted by Andrei Budnik <ab...@mesosphere.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72162/#review219657
-----------------------------------------------------------
3rdparty/stout/include/stout/protobuf.hpp
Lines 549 (patched)
<https://reviews.apache.org/r/72162/#comment307866>
Is `double` infinity a better option here given that `JSON::Number` stores a value in `double`?
3rdparty/stout/include/stout/protobuf.hpp
Lines 551 (patched)
<https://reviews.apache.org/r/72162/#comment307867>
It looks like `JSON::parse()` alone can't parse infinite values from a json string that has been serialized by `jsonify()`. If so, can it cause any issues? Do we want a test for such a case?
What prevents us from parsing infinite values in `JSON::parse()`?
- Andrei Budnik
On Фев. 25, 2020, 1:26 д.п., Qian Zhang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/72162/
> -----------------------------------------------------------
>
> (Updated Фев. 25, 2020, 1:26 д.п.)
>
>
> Review request for mesos, Andrei Budnik and Greg Mann.
>
>
> Bugs: MESOS-10064
> https://issues.apache.org/jira/browse/MESOS-10064
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Accommodated the "Infinity" value in the JSON <-> Protobuf conversion.
>
>
> Diffs
> -----
>
> 3rdparty/stout/include/stout/jsonify.hpp 7a239d846de5679e9c2b80aa4e617a72fdeac92c
> 3rdparty/stout/include/stout/protobuf.hpp fcd91d5ea822612e4b32d157fcbc5f0dedeba823
> 3rdparty/stout/tests/protobuf_tests.cpp 55889dc432a9459965d3dd75052d672828cdea90
> 3rdparty/stout/tests/protobuf_tests.proto 5e20215fcc69e400358847d0ce943d8c18f2a9e0
>
>
> Diff: https://reviews.apache.org/r/72162/diff/1/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Qian Zhang
>
>