[jira] [Created] (THRIFT-4075) Better MingW support
Aurelien Regat-Barrel created THRIFT-4075: - Summary: Better MingW support Key: THRIFT-4075 URL: https://issues.apache.org/jira/browse/THRIFT-4075 Project: Thrift Issue Type: Improvement Components: Build Process, C++ - Library Affects Versions: 0.10.0 Environment: MingW 5.3 / QtCreator (CMake) Reporter: Aurelien Regat-Barrel Priority: Trivial Hello, I am building Thrift on Windows with QtCreator as a front-end on top of CMake. I am using MingW 5.3 (Qt 5.7). I saw that you are working on improving the build experience on Windows with MingW (#THRIFT-4046) so here are my suggestions :) - The doc says Boost 1.53 is required, but actually *Boost 1.63 works better* because they fixed some issues preventing the use of Boost as header only - I was able to build Thrift with *Boost as header only* with very small changes. **Boost threads is not required** for MingW 5.3 (it should also work with MingW 4.9). This makes the build process much simpler because we just have to unzip the boost package and that's all. - Therefore you should consider passing *-DWITH_BOOSTTHREADS=OFF* in the [README-MSYS2.md doc|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob;f=build/cmake/README-MSYS2.md;h=06c0205056658e743352dabe9fbbc90e1eeaf49e;hb=2d6060d882069ed3e3d6302aa63ea7eb4bb155ad] - boost/cstdint.hpp is not required (*#define HAVE_STDINT_H*) Here's the changes I made to *thrift-0.10.0\lib\cpp\src\thrift\windows\config.h* to better support MingW and make it possible to use boost as header only. Since I don't know how to attach a patch here, I'll do it old school :) Before : {noformat} // use std::thread in MSVC11 (2012) or newer #if _MSC_VER >= 1700 #define USE_STD_THREAD 1 #else // otherwise use boost threads #define USE_BOOST_THREAD 1 #endif // VS2010 or later has stdint.h #if _MSC_VER >= 1600 #define HAVE_STDINT_H 1 #endif {noformat} After : {noformat} // use std::thread in MSVC11 (2012) or newer #if defined(_MSC_VER) && (_MSC_VER >= 1700) #define USE_STD_THREAD 1 #elif defined(__MINGW32__) #define USE_STD_THREAD 1 #else // otherwise use boost threads #define USE_BOOST_THREAD 1 #endif // VS2010 or later has stdint.h #if defined(_MSC_VER) && (_MSC_VER >= 1600) #define HAVE_STDINT_H 1 #elif defined(__MINGW32__) #define HAVE_STDINT_H 1 #endif {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] thrift issue #1156: THRIFT-4011 Use slices for Thrift sets
Github user dcelasun commented on the issue: https://github.com/apache/thrift/pull/1156 I finally hade some time to take a look at this. Duplicate detection is now implemented with `reflect.DeepEqual`. It isn't really ideal, but Go lacks a way of defining equality for arbitrary types, so this is the only possible implementation that supports `set` for any `T`. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4011) Sets of Thrift structs generate Go code that can't be serialized to JSON
[ https://issues.apache.org/jira/browse/THRIFT-4011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15857894#comment-15857894 ] ASF GitHub Bot commented on THRIFT-4011: Github user dcelasun commented on the issue: https://github.com/apache/thrift/pull/1156 I finally hade some time to take a look at this. Duplicate detection is now implemented with `reflect.DeepEqual`. It isn't really ideal, but Go lacks a way of defining equality for arbitrary types, so this is the only possible implementation that supports `set` for any `T`. > Sets of Thrift structs generate Go code that can't be serialized to JSON > > > Key: THRIFT-4011 > URL: https://issues.apache.org/jira/browse/THRIFT-4011 > Project: Thrift > Issue Type: Bug > Components: Go - Compiler >Reporter: Can Celasun > > Consider the following structs: > {code} > struct Foo { > 1: optional string foo > } > struct Bar { > 1: optional set foos > } > {code} > This compiles into the following Go code: > {code} > type Bar struct { > Foos map[*Foo]struct{} `thrift:"foos,1" db:"foos" json:"foos,omitempty"` > } > {code} > Even though the generated code has tags for JSON support, Bar can't be > serialized to JSON: > {code} > json: unsupported type: map[*Foo]struct {} > {code} > One solution would be to use slices, not maps, for Thrift sets. Thoughts? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
FINAL REMINDER: CFP for ApacheCon closes February 11th
Dear Apache Enthusiast, This is your FINAL reminder that the Call for Papers (CFP) for ApacheCon Miami is closing this weekend - February 11th. This is your final opportunity to submit a talk for consideration at this event. This year, we are running several mini conferences in conjunction with the main event, so if you're submitting for one of those events, please pay attention to the instructions below. Apache: Big Data * Event information: http://events.linuxfoundation.org/events/apache-big-data-north-america * CFP: http://events.linuxfoundation.org/events/apache-big-data-north-america/program/cfp Apache: IoT (Internet of Things) * Event Information: http://us.apacheiot.org/ * CFP - http://events.linuxfoundation.org/events/apachecon-north-america/program/cfp (Indicate 'IoT' in the Target Audience field) CloudStack Collaboration Conference * Event information: http://us.cloudstackcollab.org/ * CFP - http://events.linuxfoundation.org/events/apachecon-north-america/program/cfp (Indicate 'CloudStack' in the Target Audience field) FlexJS Summit * Event information - http://us.apacheflexjs.org/ * CFP - http://events.linuxfoundation.org/events/apachecon-north-america/program/cfp (Indicate 'Flex' in the Target Audience field) TomcatCon * Event information - https://tomcat.apache.org/conference.html * CFP - http://events.linuxfoundation.org/events/apachecon-north-america/program/cfp (Indicate 'Tomcat' in the Target Audience field) All other topics and projects * Event information - http://events.linuxfoundation.org/events/apachecon-north-america/program/about * CFP - http://events.linuxfoundation.org/events/apachecon-north-america/program/cfp Admission to any of these events also grants you access to all of the others. Thanks, and we look forward to seeing you in Miami! -- Rich Bowen VP Conferences, Apache Software Foundation rbo...@apache.org Twitter: @apachecon (You are receiving this email because you are subscribed to a dev@ or users@ list of some Apache Software Foundation project. If you do not wish to receive email from these lists any more, you must follow that list's unsubscription procedure. View the headers of this message for unsubscription instructions.)
[jira] [Commented] (THRIFT-4018) Ruby server can corrupt connections by putting ApplicationException in the middle of a response
[ https://issues.apache.org/jira/browse/THRIFT-4018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858029#comment-15858029 ] ASF GitHub Bot commented on THRIFT-4018: GitHub user dbravender opened a pull request: https://github.com/apache/thrift/pull/1179 THRIFT-4018 corruption after ApplicationException in Ruby server This fixes an issue where a Ruby Thrift server can corrupt connections by putting ApplicationException in the middle of a response. See https://issues.apache.org/jira/browse/THRIFT-4018 for more information. You can merge this pull request into a Git repository by running: $ git pull https://github.com/dbravender/thrift defect/THRIFT-4018-corruption-after-ApplicationException-off-master Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1179.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1179 commit db76008a57402a6d838267ea017332d5c97f484c Author: Dan Bravender Date: 2016-12-20T14:57:56Z THRIFT-4018 reproduction test case commit 7ab9983de2d1a6d7bb943e799288b7f0050b309d Author: Dan Bravender Date: 2017-01-02T19:40:11Z THRIFT-4018 validate response before putting it on the wire Client: ruby Fixes an issue where an invalid response could corrupt all future responses > Ruby server can corrupt connections by putting ApplicationException in the > middle of a response > --- > > Key: THRIFT-4018 > URL: https://issues.apache.org/jira/browse/THRIFT-4018 > Project: Thrift > Issue Type: Bug > Components: Ruby - Library >Affects Versions: 0.9.3 >Reporter: Dan Bravender > > # Have a client make a call to a thrift server method that returns an invalid > value for an enum > # Have the client make another call to the same method that returns an > invalid value for an enum > *Expected*: Thrift server responds with an ApplicationException for both calls > *Actual*: The thrift server responds with ApplicationException for the first > call but then further calls can't be parsed by the client because there is > unexpected data that the client cannot parse > I discovered this while writing a test case for THRIFT-3781 though it is the > opposite problem. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] thrift pull request #1179: THRIFT-4018 corruption after ApplicationException...
GitHub user dbravender opened a pull request: https://github.com/apache/thrift/pull/1179 THRIFT-4018 corruption after ApplicationException in Ruby server This fixes an issue where a Ruby Thrift server can corrupt connections by putting ApplicationException in the middle of a response. See https://issues.apache.org/jira/browse/THRIFT-4018 for more information. You can merge this pull request into a Git repository by running: $ git pull https://github.com/dbravender/thrift defect/THRIFT-4018-corruption-after-ApplicationException-off-master Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1179.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1179 commit db76008a57402a6d838267ea017332d5c97f484c Author: Dan Bravender Date: 2016-12-20T14:57:56Z THRIFT-4018 reproduction test case commit 7ab9983de2d1a6d7bb943e799288b7f0050b309d Author: Dan Bravender Date: 2017-01-02T19:40:11Z THRIFT-4018 validate response before putting it on the wire Client: ruby Fixes an issue where an invalid response could corrupt all future responses --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] thrift pull request #1156: THRIFT-4011 Use slices for Thrift sets
Github user jeking3 commented on a diff in the pull request: https://github.com/apache/thrift/pull/1156#discussion_r100088653 --- Diff: lib/go/test/tests/thrifttest_driver.go --- @@ -162,7 +162,7 @@ func (p *ThriftTestDriver) Start() { t.Fatal("TestStringMap failed") } - setTestInput := map[int32]struct{}{1: {}, 2: {}, 3: {}} + setTestInput := []int32{1, 2, 3} --- End diff -- Syntax looks much better than before. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4011) Sets of Thrift structs generate Go code that can't be serialized to JSON
[ https://issues.apache.org/jira/browse/THRIFT-4011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858111#comment-15858111 ] ASF GitHub Bot commented on THRIFT-4011: Github user jeking3 commented on a diff in the pull request: https://github.com/apache/thrift/pull/1156#discussion_r100088653 --- Diff: lib/go/test/tests/thrifttest_driver.go --- @@ -162,7 +162,7 @@ func (p *ThriftTestDriver) Start() { t.Fatal("TestStringMap failed") } - setTestInput := map[int32]struct{}{1: {}, 2: {}, 3: {}} + setTestInput := []int32{1, 2, 3} --- End diff -- Syntax looks much better than before. > Sets of Thrift structs generate Go code that can't be serialized to JSON > > > Key: THRIFT-4011 > URL: https://issues.apache.org/jira/browse/THRIFT-4011 > Project: Thrift > Issue Type: Bug > Components: Go - Compiler >Reporter: Can Celasun > > Consider the following structs: > {code} > struct Foo { > 1: optional string foo > } > struct Bar { > 1: optional set foos > } > {code} > This compiles into the following Go code: > {code} > type Bar struct { > Foos map[*Foo]struct{} `thrift:"foos,1" db:"foos" json:"foos,omitempty"` > } > {code} > Even though the generated code has tags for JSON support, Bar can't be > serialized to JSON: > {code} > json: unsupported type: map[*Foo]struct {} > {code} > One solution would be to use slices, not maps, for Thrift sets. Thoughts? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] thrift pull request #1156: THRIFT-4011 Use slices for Thrift sets
Github user dcelasun commented on a diff in the pull request: https://github.com/apache/thrift/pull/1156#discussion_r100089847 --- Diff: lib/go/test/tests/thrifttest_driver.go --- @@ -162,7 +162,7 @@ func (p *ThriftTestDriver) Start() { t.Fatal("TestStringMap failed") } - setTestInput := map[int32]struct{}{1: {}, 2: {}, 3: {}} + setTestInput := []int32{1, 2, 3} --- End diff -- Yeah, it's also finally serializable to JSON for non-primitive types. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4011) Sets of Thrift structs generate Go code that can't be serialized to JSON
[ https://issues.apache.org/jira/browse/THRIFT-4011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858121#comment-15858121 ] ASF GitHub Bot commented on THRIFT-4011: Github user dcelasun commented on a diff in the pull request: https://github.com/apache/thrift/pull/1156#discussion_r100089847 --- Diff: lib/go/test/tests/thrifttest_driver.go --- @@ -162,7 +162,7 @@ func (p *ThriftTestDriver) Start() { t.Fatal("TestStringMap failed") } - setTestInput := map[int32]struct{}{1: {}, 2: {}, 3: {}} + setTestInput := []int32{1, 2, 3} --- End diff -- Yeah, it's also finally serializable to JSON for non-primitive types. > Sets of Thrift structs generate Go code that can't be serialized to JSON > > > Key: THRIFT-4011 > URL: https://issues.apache.org/jira/browse/THRIFT-4011 > Project: Thrift > Issue Type: Bug > Components: Go - Compiler >Reporter: Can Celasun > > Consider the following structs: > {code} > struct Foo { > 1: optional string foo > } > struct Bar { > 1: optional set foos > } > {code} > This compiles into the following Go code: > {code} > type Bar struct { > Foos map[*Foo]struct{} `thrift:"foos,1" db:"foos" json:"foos,omitempty"` > } > {code} > Even though the generated code has tags for JSON support, Bar can't be > serialized to JSON: > {code} > json: unsupported type: map[*Foo]struct {} > {code} > One solution would be to use slices, not maps, for Thrift sets. Thoughts? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (THRIFT-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers
James E. King, III created THRIFT-4076: -- Summary: Appveyor builds failing because ant 1.9.8 was removed from apache servers Key: THRIFT-4076 URL: https://issues.apache.org/jira/browse/THRIFT-4076 Project: Thrift Issue Type: Bug Components: Build Process Affects Versions: 0.10.0 Environment: Appyevor CI Reporter: James E. King, III Assignee: James E. King, III Priority: Blocker ant was upgraded to 1.9.9 and broke our build I am going to switch it over to using chocolatey. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4075) Better MingW support
[ https://issues.apache.org/jira/browse/THRIFT-4075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858159#comment-15858159 ] James E. King, III commented on THRIFT-4075: For this patch, do I also need to check __MINGW64__ ? It looked like __MINGW32__ was not defined in 64-bit builds based on searches I did about MinGW but I could be wrong. Unfortunately on windows builds we have this windows/config.h which is a bit custom and doesn't follow the rules passed into the make. Ideally cmake would identify this is MinGW of a particular version and set the right thing in a standard generated config.h. There's a separate story for this assigned to me that I will get to. windows/config.h should be removed in favor of having cmake generate one and putting it in the right location. We should consider having an Appveyor CI build job for MinGW as well as for MSVC (which is what we have now). > Better MingW support > > > Key: THRIFT-4075 > URL: https://issues.apache.org/jira/browse/THRIFT-4075 > Project: Thrift > Issue Type: Improvement > Components: Build Process, C++ - Library >Affects Versions: 0.10.0 > Environment: MingW 5.3 / QtCreator (CMake) >Reporter: Aurelien Regat-Barrel >Priority: Trivial > > Hello, > I am building Thrift on Windows with QtCreator as a front-end on top of > CMake. I am using MingW 5.3 (Qt 5.7). > I saw that you are working on improving the build experience on Windows with > MingW (#THRIFT-4046) so here are my suggestions :) > - The doc says Boost 1.53 is required, but actually *Boost 1.63 works better* > because they fixed some issues preventing the use of Boost as header only > - I was able to build Thrift with *Boost as header only* with very small > changes. **Boost threads is not required** for MingW 5.3 (it should also work > with MingW 4.9). This makes the build process much simpler because we just > have to unzip the boost package and that's all. > - Therefore you should consider passing *-DWITH_BOOSTTHREADS=OFF* in the > [README-MSYS2.md > doc|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob;f=build/cmake/README-MSYS2.md;h=06c0205056658e743352dabe9fbbc90e1eeaf49e;hb=2d6060d882069ed3e3d6302aa63ea7eb4bb155ad] > - boost/cstdint.hpp is not required (*#define HAVE_STDINT_H*) > Here's the changes I made to > *thrift-0.10.0\lib\cpp\src\thrift\windows\config.h* to better support MingW > and make it possible to use boost as header only. > Since I don't know how to attach a patch here, I'll do it old school :) > Before : > {noformat} > // use std::thread in MSVC11 (2012) or newer > #if _MSC_VER >= 1700 > #define USE_STD_THREAD 1 > #else > // otherwise use boost threads > #define USE_BOOST_THREAD 1 > #endif > // VS2010 or later has stdint.h > #if _MSC_VER >= 1600 > #define HAVE_STDINT_H 1 > #endif > {noformat} > After : > {noformat} > // use std::thread in MSVC11 (2012) or newer > #if defined(_MSC_VER) && (_MSC_VER >= 1700) > #define USE_STD_THREAD 1 > #elif defined(__MINGW32__) > #define USE_STD_THREAD 1 > #else > // otherwise use boost threads > #define USE_BOOST_THREAD 1 > #endif > // VS2010 or later has stdint.h > #if defined(_MSC_VER) && (_MSC_VER >= 1600) > #define HAVE_STDINT_H 1 > #elif defined(__MINGW32__) > #define HAVE_STDINT_H 1 > #endif > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Assigned] (THRIFT-4075) Better MingW support
[ https://issues.apache.org/jira/browse/THRIFT-4075?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III reassigned THRIFT-4075: -- Assignee: James E. King, III > Better MingW support > > > Key: THRIFT-4075 > URL: https://issues.apache.org/jira/browse/THRIFT-4075 > Project: Thrift > Issue Type: Improvement > Components: Build Process, C++ - Library >Affects Versions: 0.10.0 > Environment: MingW 5.3 / QtCreator (CMake) >Reporter: Aurelien Regat-Barrel >Assignee: James E. King, III >Priority: Trivial > > Hello, > I am building Thrift on Windows with QtCreator as a front-end on top of > CMake. I am using MingW 5.3 (Qt 5.7). > I saw that you are working on improving the build experience on Windows with > MingW (#THRIFT-4046) so here are my suggestions :) > - The doc says Boost 1.53 is required, but actually *Boost 1.63 works better* > because they fixed some issues preventing the use of Boost as header only > - I was able to build Thrift with *Boost as header only* with very small > changes. **Boost threads is not required** for MingW 5.3 (it should also work > with MingW 4.9). This makes the build process much simpler because we just > have to unzip the boost package and that's all. > - Therefore you should consider passing *-DWITH_BOOSTTHREADS=OFF* in the > [README-MSYS2.md > doc|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob;f=build/cmake/README-MSYS2.md;h=06c0205056658e743352dabe9fbbc90e1eeaf49e;hb=2d6060d882069ed3e3d6302aa63ea7eb4bb155ad] > - boost/cstdint.hpp is not required (*#define HAVE_STDINT_H*) > Here's the changes I made to > *thrift-0.10.0\lib\cpp\src\thrift\windows\config.h* to better support MingW > and make it possible to use boost as header only. > Since I don't know how to attach a patch here, I'll do it old school :) > Before : > {noformat} > // use std::thread in MSVC11 (2012) or newer > #if _MSC_VER >= 1700 > #define USE_STD_THREAD 1 > #else > // otherwise use boost threads > #define USE_BOOST_THREAD 1 > #endif > // VS2010 or later has stdint.h > #if _MSC_VER >= 1600 > #define HAVE_STDINT_H 1 > #endif > {noformat} > After : > {noformat} > // use std::thread in MSVC11 (2012) or newer > #if defined(_MSC_VER) && (_MSC_VER >= 1700) > #define USE_STD_THREAD 1 > #elif defined(__MINGW32__) > #define USE_STD_THREAD 1 > #else > // otherwise use boost threads > #define USE_BOOST_THREAD 1 > #endif > // VS2010 or later has stdint.h > #if defined(_MSC_VER) && (_MSC_VER >= 1600) > #define HAVE_STDINT_H 1 > #elif defined(__MINGW32__) > #define HAVE_STDINT_H 1 > #endif > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4075) Better MingW support
[ https://issues.apache.org/jira/browse/THRIFT-4075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858166#comment-15858166 ] James E. King, III commented on THRIFT-4075: To submit a patch see: https://thrift.apache.org/docs/HowToContribute In particular you already have the thrift ticket number. You would just need to clone the repo, make a branch called THRIFT-4075, make your changes, push them to github, and open a pull request mentioning THRIFT-4075 in the title. Once I fix the broken Appveyor build (see THRIFT-4076) I will take a look at submitting something for you if you have not done so already. > Better MingW support > > > Key: THRIFT-4075 > URL: https://issues.apache.org/jira/browse/THRIFT-4075 > Project: Thrift > Issue Type: Improvement > Components: Build Process, C++ - Library >Affects Versions: 0.10.0 > Environment: MingW 5.3 / QtCreator (CMake) >Reporter: Aurelien Regat-Barrel >Assignee: James E. King, III >Priority: Trivial > > Hello, > I am building Thrift on Windows with QtCreator as a front-end on top of > CMake. I am using MingW 5.3 (Qt 5.7). > I saw that you are working on improving the build experience on Windows with > MingW (#THRIFT-4046) so here are my suggestions :) > - The doc says Boost 1.53 is required, but actually *Boost 1.63 works better* > because they fixed some issues preventing the use of Boost as header only > - I was able to build Thrift with *Boost as header only* with very small > changes. **Boost threads is not required** for MingW 5.3 (it should also work > with MingW 4.9). This makes the build process much simpler because we just > have to unzip the boost package and that's all. > - Therefore you should consider passing *-DWITH_BOOSTTHREADS=OFF* in the > [README-MSYS2.md > doc|https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob;f=build/cmake/README-MSYS2.md;h=06c0205056658e743352dabe9fbbc90e1eeaf49e;hb=2d6060d882069ed3e3d6302aa63ea7eb4bb155ad] > - boost/cstdint.hpp is not required (*#define HAVE_STDINT_H*) > Here's the changes I made to > *thrift-0.10.0\lib\cpp\src\thrift\windows\config.h* to better support MingW > and make it possible to use boost as header only. > Since I don't know how to attach a patch here, I'll do it old school :) > Before : > {noformat} > // use std::thread in MSVC11 (2012) or newer > #if _MSC_VER >= 1700 > #define USE_STD_THREAD 1 > #else > // otherwise use boost threads > #define USE_BOOST_THREAD 1 > #endif > // VS2010 or later has stdint.h > #if _MSC_VER >= 1600 > #define HAVE_STDINT_H 1 > #endif > {noformat} > After : > {noformat} > // use std::thread in MSVC11 (2012) or newer > #if defined(_MSC_VER) && (_MSC_VER >= 1700) > #define USE_STD_THREAD 1 > #elif defined(__MINGW32__) > #define USE_STD_THREAD 1 > #else > // otherwise use boost threads > #define USE_BOOST_THREAD 1 > #endif > // VS2010 or later has stdint.h > #if defined(_MSC_VER) && (_MSC_VER >= 1600) > #define HAVE_STDINT_H 1 > #elif defined(__MINGW32__) > #define HAVE_STDINT_H 1 > #endif > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] thrift pull request #1180: THRIFT-4076 fix appveyor ant issue
GitHub user jeking3 opened a pull request: https://github.com/apache/thrift/pull/1180 THRIFT-4076 fix appveyor ant issue This is something of an experiment as I am changing the appveyor build to use chocolatey to install ant instead of grabbing it directly from the apache server. Apache does not provide a stable link to get the latest stable build so every time ant is revised, the build we download and use is deleted and our builds fail. You can merge this pull request into a Git repository by running: $ git pull https://github.com/jeking3/thrift THRIFT-4076 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1180.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1180 commit 9a2e98fbe50e46d749e5990386d55eb3fe34 Author: James E. King, III Date: 2017-02-08T16:09:51Z THRIFT-4076 fix appveyor ant issue --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers
[ https://issues.apache.org/jira/browse/THRIFT-4076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858176#comment-15858176 ] ASF GitHub Bot commented on THRIFT-4076: GitHub user jeking3 opened a pull request: https://github.com/apache/thrift/pull/1180 THRIFT-4076 fix appveyor ant issue This is something of an experiment as I am changing the appveyor build to use chocolatey to install ant instead of grabbing it directly from the apache server. Apache does not provide a stable link to get the latest stable build so every time ant is revised, the build we download and use is deleted and our builds fail. You can merge this pull request into a Git repository by running: $ git pull https://github.com/jeking3/thrift THRIFT-4076 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1180.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1180 commit 9a2e98fbe50e46d749e5990386d55eb3fe34 Author: James E. King, III Date: 2017-02-08T16:09:51Z THRIFT-4076 fix appveyor ant issue > Appveyor builds failing because ant 1.9.8 was removed from apache servers > - > > Key: THRIFT-4076 > URL: https://issues.apache.org/jira/browse/THRIFT-4076 > Project: Thrift > Issue Type: Bug > Components: Build Process >Affects Versions: 0.10.0 > Environment: Appyevor CI >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Blocker > > ant was upgraded to 1.9.9 and broke our build > I am going to switch it over to using chocolatey. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (THRIFT-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers
[ https://issues.apache.org/jira/browse/THRIFT-4076?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III resolved THRIFT-4076. Resolution: Fixed Fix Version/s: 0.11.0 I changed ant installation to use chocolatey and upgraded to winflexbison3. > Appveyor builds failing because ant 1.9.8 was removed from apache servers > - > > Key: THRIFT-4076 > URL: https://issues.apache.org/jira/browse/THRIFT-4076 > Project: Thrift > Issue Type: Bug > Components: Build Process >Affects Versions: 0.10.0 > Environment: Appyevor CI >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Blocker > Fix For: 0.11.0 > > > ant was upgraded to 1.9.9 and broke our build > I am going to switch it over to using chocolatey. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] thrift pull request #1180: THRIFT-4076 fix appveyor ant issue
Github user jeking3 closed the pull request at: https://github.com/apache/thrift/pull/1180 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] thrift issue #1180: THRIFT-4076 fix appveyor ant issue
Github user jeking3 commented on the issue: https://github.com/apache/thrift/pull/1180 This was merged; I wanted to close it to cancel any travis job that hasn't run yet. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers
[ https://issues.apache.org/jira/browse/THRIFT-4076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858286#comment-15858286 ] ASF GitHub Bot commented on THRIFT-4076: Github user jeking3 commented on the issue: https://github.com/apache/thrift/pull/1180 This was merged; I wanted to close it to cancel any travis job that hasn't run yet. > Appveyor builds failing because ant 1.9.8 was removed from apache servers > - > > Key: THRIFT-4076 > URL: https://issues.apache.org/jira/browse/THRIFT-4076 > Project: Thrift > Issue Type: Bug > Components: Build Process >Affects Versions: 0.10.0 > Environment: Appyevor CI >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Blocker > Fix For: 0.11.0 > > > ant was upgraded to 1.9.9 and broke our build > I am going to switch it over to using chocolatey. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers
[ https://issues.apache.org/jira/browse/THRIFT-4076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858285#comment-15858285 ] ASF GitHub Bot commented on THRIFT-4076: Github user jeking3 closed the pull request at: https://github.com/apache/thrift/pull/1180 > Appveyor builds failing because ant 1.9.8 was removed from apache servers > - > > Key: THRIFT-4076 > URL: https://issues.apache.org/jira/browse/THRIFT-4076 > Project: Thrift > Issue Type: Bug > Components: Build Process >Affects Versions: 0.10.0 > Environment: Appyevor CI >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Blocker > Fix For: 0.11.0 > > > ant was upgraded to 1.9.9 and broke our build > I am going to switch it over to using chocolatey. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (THRIFT-4077) AI_ADDRCONFIG redefined after recent change to PlatformSocket header
James E. King, III created THRIFT-4077: -- Summary: AI_ADDRCONFIG redefined after recent change to PlatformSocket header Key: THRIFT-4077 URL: https://issues.apache.org/jira/browse/THRIFT-4077 Project: Thrift Issue Type: Bug Components: C++ - Library Affects Versions: 0.11.0 Environment: Appveyor CI Reporter: James E. King, III Assignee: James E. King, III Priority: Minor {noformat} C:\Program Files (x86)\Windows Kits\8.1\Include\shared\ws2def.h(858): warning C4005: 'AI_ADDRCONFIG': macro redefinition (compiling source file C:\projects\thrift\lib\cpp\src\thrift\server\TThreadPoolServer.cpp) [C:\projects\thrift\cmake-build\lib\cpp\thrift_static.vcxproj] C:\projects\thrift\lib\cpp\src\thrift/transport/PlatformSocket.h(82): note: see previous definition of 'AI_ADDRCONFIG' (compiling source file C:\projects\thrift\lib\cpp\src\thrift\server\TThreadPoolServer.cpp) TPipe.cpp C:\Program Files (x86)\Windows Kits\8.1\Include\shared\ws2def.h(858): warning C4005: 'AI_ADDRCONFIG': macro redefinition (compiling source file C:\projects\thrift\lib\cpp\src\thrift\server\TThreadedServer.cpp) [C:\projects\thrift\cmake-build\lib\cpp\thrift_static.vcxproj] C:\projects\thrift\lib\cpp\src\thrift/transport/PlatformSocket.h(82): note: see previous definition of 'AI_ADDRCONFIG' (compiling source file C:\projects\thrift\lib\cpp\src\thrift\server\TThreadedServer.cpp) C:\Program Files (x86)\Windows Kits\8.1\Include\shared\ws2def.h(858): warning C4005: 'AI_ADDRCONFIG': macro redefinition (compiling source file C:\projects\thrift\lib\cpp\src\thrift\transport\TPipe.cpp) [C:\projects\thrift\cmake-build\lib\cpp\thrift_static.vcxproj] {noformat} from Appveyor CI build: https://ci.appveyor.com/project/ApacheSoftwareFoundation/thrift/build/951 It looks like we need to include the correct winsock header before we determine if AI_ADDRCONFIG needs to be defined. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4018) Ruby server can corrupt connections by putting ApplicationException in the middle of a response
[ https://issues.apache.org/jira/browse/THRIFT-4018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858293#comment-15858293 ] James E. King, III commented on THRIFT-4018: Based on your title here, wouldn't it be better to prevent the ruby server from being able to corrupt the stream on the sending side? > Ruby server can corrupt connections by putting ApplicationException in the > middle of a response > --- > > Key: THRIFT-4018 > URL: https://issues.apache.org/jira/browse/THRIFT-4018 > Project: Thrift > Issue Type: Bug > Components: Ruby - Library >Affects Versions: 0.9.3 >Reporter: Dan Bravender > > # Have a client make a call to a thrift server method that returns an invalid > value for an enum > # Have the client make another call to the same method that returns an > invalid value for an enum > *Expected*: Thrift server responds with an ApplicationException for both calls > *Actual*: The thrift server responds with ApplicationException for the first > call but then further calls can't be parsed by the client because there is > unexpected data that the client cannot parse > I discovered this while writing a test case for THRIFT-3781 though it is the > opposite problem. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (THRIFT-4018) Ruby server can corrupt connections by putting ApplicationException in the middle of a response
[ https://issues.apache.org/jira/browse/THRIFT-4018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858293#comment-15858293 ] James E. King, III edited comment on THRIFT-4018 at 2/8/17 6:02 PM: Based on the title of this ticket, wouldn't it be better to prevent the ruby server from being able to corrupt the stream on the sending side? was (Author: jking3): Based on your title here, wouldn't it be better to prevent the ruby server from being able to corrupt the stream on the sending side? > Ruby server can corrupt connections by putting ApplicationException in the > middle of a response > --- > > Key: THRIFT-4018 > URL: https://issues.apache.org/jira/browse/THRIFT-4018 > Project: Thrift > Issue Type: Bug > Components: Ruby - Library >Affects Versions: 0.9.3 >Reporter: Dan Bravender > > # Have a client make a call to a thrift server method that returns an invalid > value for an enum > # Have the client make another call to the same method that returns an > invalid value for an enum > *Expected*: Thrift server responds with an ApplicationException for both calls > *Actual*: The thrift server responds with ApplicationException for the first > call but then further calls can't be parsed by the client because there is > unexpected data that the client cannot parse > I discovered this while writing a test case for THRIFT-3781 though it is the > opposite problem. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] thrift pull request #1174: THRIFT-4043 ensure perl files do not end up in /u...
Github user asfgit closed the pull request at: https://github.com/apache/thrift/pull/1174 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4043) thrift perl debian package is placing files in the wrong place
[ https://issues.apache.org/jira/browse/THRIFT-4043?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858326#comment-15858326 ] ASF GitHub Bot commented on THRIFT-4043: Github user asfgit closed the pull request at: https://github.com/apache/thrift/pull/1174 > thrift perl debian package is placing files in the wrong place > -- > > Key: THRIFT-4043 > URL: https://issues.apache.org/jira/browse/THRIFT-4043 > Project: Thrift > Issue Type: Bug > Components: Build Process, Perl - Library >Affects Versions: 0.10.0 > Environment: Ubuntu docker build environment, installing on Ubuntu > 14.04 LTS >Reporter: James E. King, III >Assignee: James E. King, III > > The libthrift-perl-0.10.0 package is installing things into /usr/lib, when it > should be going into /usr/share/perl5. > This means "Thrift.pm" is being dropped directly into /usr/lib/Thrift.pm > right now. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (THRIFT-4078) TServiceClient.java pollutes System.out with debug message
Christopher Tubbs created THRIFT-4078: - Summary: TServiceClient.java pollutes System.out with debug message Key: THRIFT-4078 URL: https://issues.apache.org/jira/browse/THRIFT-4078 Project: Thrift Issue Type: Bug Components: Java - Library Affects Versions: 0.10.0 Reporter: Christopher Tubbs Priority: Blocker I believe this issue would warrant a 0.10.1 fix. It's quite frustrating. Inside {{lib/java/src/org/apache/thrift/TServiceClient.java}}, there appears to be a debugging message which was left in. This pollutes the client application's console with "Received 1" messages. See Line 84 in the {{receiveBase}} method: {code} System.out.format("Received %d%n", msg.seqid); {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Closed] (THRIFT-4078) TServiceClient.java pollutes System.out with debug message
[ https://issues.apache.org/jira/browse/THRIFT-4078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christopher Tubbs closed THRIFT-4078. - Resolution: Duplicate Closed as duplicate of THRIFT-4062 > TServiceClient.java pollutes System.out with debug message > -- > > Key: THRIFT-4078 > URL: https://issues.apache.org/jira/browse/THRIFT-4078 > Project: Thrift > Issue Type: Bug > Components: Java - Library >Affects Versions: 0.10.0 >Reporter: Christopher Tubbs >Priority: Blocker > > I believe this issue would warrant a 0.10.1 fix. It's quite frustrating. > Inside {{lib/java/src/org/apache/thrift/TServiceClient.java}}, there appears > to be a debugging message which was left in. This pollutes the client > application's console with "Received 1" messages. See Line 84 in the > {{receiveBase}} method: > {code} > System.out.format("Received %d%n", msg.seqid); > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4062) Remove debug print from TServiceClient
[ https://issues.apache.org/jira/browse/THRIFT-4062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858587#comment-15858587 ] Christopher Tubbs commented on THRIFT-4062: --- Any chance this issue alone would warrant a rapid release of 0.10.1? Given the impact on usability of thrift 0.10.0, I think it would be a shame to wait until 0.11.0 > Remove debug print from TServiceClient > -- > > Key: THRIFT-4062 > URL: https://issues.apache.org/jira/browse/THRIFT-4062 > Project: Thrift > Issue Type: Improvement > Components: Java - Library >Reporter: Jens Geyer >Assignee: Tom Davis > Fix For: 0.11.0 > > > GitHub user tdavis opened a pull request: > https://github.com/apache/thrift/pull/1173 > Remove debug print from TServiceClient > Client: Java > You can merge this pull request into a Git repository by running: > $ git pull https://github.com/tdavis/thrift patch-1 > Alternatively you can review and apply these changes as the patch at: > https://github.com/apache/thrift/pull/1173.patch > To close this pull request, make a commit to your master/trunk branch > with (at least) the following in the commit message: > This closes #1173 > > > commit 670ad408b7f601798db7cf7b659ac231ba53c6a9 > Author: Tom Davis > Date: 2017-01-31T17:01:50Z > Remove debug print from TServiceClient > > Client: Java > > --- > If your project is set up for it, you can reply to this email and have your > reply appear on GitHub as well. If your project does not have this feature > enabled and wishes so, or if the feature is enabled but not working, please > contact infrastructure at infrastruct...@apache.org or file a JIRA ticket > with INFRA. > --- -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (THRIFT-4079) Generated perl code that returns structures from included thrift files is missing a necessary use clause
James E. King, III created THRIFT-4079: -- Summary: Generated perl code that returns structures from included thrift files is missing a necessary use clause Key: THRIFT-4079 URL: https://issues.apache.org/jira/browse/THRIFT-4079 Project: Thrift Issue Type: Bug Components: Perl - Compiler Affects Versions: 0.10.0 Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 Reporter: James E. King, III Assignee: James E. King, III Priority: Critical I made a very simple example which I will attach, however in a nutshell if I define a structure in one thrift file like this: {{ForeignInfo.thrift:}} {noformat} namespace perl org.fiction.rpc struct ForeignInfo { 1: string someData } {noformat} Then I define a service in another namespace like this: {{SomeService.thrift:}} {noformat} namespace perl org.real include "ForeignInfo.thrift" service Company { ForeignInfo.ForeignInfo getForeignInfoList(); } {noformat} Then I compile both of them, the resulting generated perl code in {{gen-perl/org/real/Company.pm}} has the following use clauses in it: {noformat} require 5.6.0; use strict; use warnings; use Thrift; use org::real::Types; {noformat} Later on in the file we have: {noformat} SWITCH: for($fid) { /^0$/ && do{ if ($ftype == TType::STRUCT) { $self->{success} = new org::fiction::rpc::ForeignInfo(); $xfer += $self->{success}->read($input); } else { $xfer += $input->skip($ftype); } last; }; $xfer += $input->skip($ftype); } {noformat} If you put a simple wrapper around this call, the client gets an exception: {noformat} Undefined subroutine &org::fiction::rpc::ForeignInfo called at gen-perl/org/real/Company.pm line 98 {noformat} Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a use clause for the Types defined by the include it cannot be used. If I add this line to the generated code in Company.pm: {noformat} use org::fiction::rpc::Types; {noformat} Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (THRIFT-4079) Generated perl code that returns structures from included thrift files is missing a necessary use clause
[ https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III updated THRIFT-4079: --- Labels: regression (was: ) > Generated perl code that returns structures from included thrift files is > missing a necessary use clause > > > Key: THRIFT-4079 > URL: https://issues.apache.org/jira/browse/THRIFT-4079 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Critical > Labels: regression > > I made a very simple example which I will attach, however in a nutshell if I > define a structure in one thrift file like this: > {{ForeignInfo.thrift:}} > {noformat} > namespace perl org.fiction.rpc > struct ForeignInfo > { > 1: string someData > } > {noformat} > Then I define a service in another namespace like this: > {{SomeService.thrift:}} > {noformat} > namespace perl org.real > include "ForeignInfo.thrift" > service Company > { > ForeignInfo.ForeignInfo getForeignInfoList(); > } > {noformat} > Then I compile both of them, the resulting generated perl code in > {{gen-perl/org/real/Company.pm}} has the following use clauses in it: > {noformat} > require 5.6.0; > use strict; > use warnings; > use Thrift; > use org::real::Types; > {noformat} > Later on in the file we have: > {noformat} > SWITCH: for($fid) > { > /^0$/ && do{ if ($ftype == TType::STRUCT) { > $self->{success} = new org::fiction::rpc::ForeignInfo(); > $xfer += $self->{success}->read($input); > } else { > $xfer += $input->skip($ftype); > } > last; }; > $xfer += $input->skip($ftype); > } > {noformat} > If you put a simple wrapper around this call, the client gets an exception: > {noformat} > Undefined subroutine &org::fiction::rpc::ForeignInfo called at > gen-perl/org/real/Company.pm line 98 > {noformat} > Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a > use clause for the Types defined by the include it cannot be used. > If I add this line to the generated code in Company.pm: > {noformat} > use org::fiction::rpc::Types; > {noformat} > Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (THRIFT-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause
[ https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III updated THRIFT-4079: --- Summary: [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause (was: Generated perl code that returns structures from included thrift files is missing a necessary use clause) > [Regression] Generated perl code that returns structures from included thrift > files is missing a necessary use clause > - > > Key: THRIFT-4079 > URL: https://issues.apache.org/jira/browse/THRIFT-4079 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Critical > Labels: regression > > I made a very simple example which I will attach, however in a nutshell if I > define a structure in one thrift file like this: > {{ForeignInfo.thrift:}} > {noformat} > namespace perl org.fiction.rpc > struct ForeignInfo > { > 1: string someData > } > {noformat} > Then I define a service in another namespace like this: > {{SomeService.thrift:}} > {noformat} > namespace perl org.real > include "ForeignInfo.thrift" > service Company > { > ForeignInfo.ForeignInfo getForeignInfoList(); > } > {noformat} > Then I compile both of them, the resulting generated perl code in > {{gen-perl/org/real/Company.pm}} has the following use clauses in it: > {noformat} > require 5.6.0; > use strict; > use warnings; > use Thrift; > use org::real::Types; > {noformat} > Later on in the file we have: > {noformat} > SWITCH: for($fid) > { > /^0$/ && do{ if ($ftype == TType::STRUCT) { > $self->{success} = new org::fiction::rpc::ForeignInfo(); > $xfer += $self->{success}->read($input); > } else { > $xfer += $input->skip($ftype); > } > last; }; > $xfer += $input->skip($ftype); > } > {noformat} > If you put a simple wrapper around this call, the client gets an exception: > {noformat} > Undefined subroutine &org::fiction::rpc::ForeignInfo called at > gen-perl/org/real/Company.pm line 98 > {noformat} > Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a > use clause for the Types defined by the include it cannot be used. > If I add this line to the generated code in Company.pm: > {noformat} > use org::fiction::rpc::Types; > {noformat} > Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause
[ https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858616#comment-15858616 ] James E. King, III commented on THRIFT-4079: I have confirmed this is a regression from the thrift 0.8.0 compiler. The thrift 0.9.0 compiler shows this issue. I'm really surprised this hasn't been reported until now... it makes me wonder how many folks are using thrift with perl. :( > [Regression] Generated perl code that returns structures from included thrift > files is missing a necessary use clause > - > > Key: THRIFT-4079 > URL: https://issues.apache.org/jira/browse/THRIFT-4079 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Critical > Labels: regression > > I made a very simple example which I will attach, however in a nutshell if I > define a structure in one thrift file like this: > {{ForeignInfo.thrift:}} > {noformat} > namespace perl org.fiction.rpc > struct ForeignInfo > { > 1: string someData > } > {noformat} > Then I define a service in another namespace like this: > {{SomeService.thrift:}} > {noformat} > namespace perl org.real > include "ForeignInfo.thrift" > service Company > { > ForeignInfo.ForeignInfo getForeignInfoList(); > } > {noformat} > Then I compile both of them, the resulting generated perl code in > {{gen-perl/org/real/Company.pm}} has the following use clauses in it: > {noformat} > require 5.6.0; > use strict; > use warnings; > use Thrift; > use org::real::Types; > {noformat} > Later on in the file we have: > {noformat} > SWITCH: for($fid) > { > /^0$/ && do{ if ($ftype == TType::STRUCT) { > $self->{success} = new org::fiction::rpc::ForeignInfo(); > $xfer += $self->{success}->read($input); > } else { > $xfer += $input->skip($ftype); > } > last; }; > $xfer += $input->skip($ftype); > } > {noformat} > If you put a simple wrapper around this call, the client gets an exception: > {noformat} > Undefined subroutine &org::fiction::rpc::ForeignInfo called at > gen-perl/org/real/Company.pm line 98 > {noformat} > Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a > use clause for the Types defined by the include it cannot be used. > If I add this line to the generated code in Company.pm: > {noformat} > use org::fiction::rpc::Types; > {noformat} > Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (THRIFT-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause
[ https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III updated THRIFT-4079: --- Attachment: THRIFT-4079-example.tgz > [Regression] Generated perl code that returns structures from included thrift > files is missing a necessary use clause > - > > Key: THRIFT-4079 > URL: https://issues.apache.org/jira/browse/THRIFT-4079 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Critical > Labels: regression > Attachments: THRIFT-4079-example.tgz > > > I made a very simple example which I will attach, however in a nutshell if I > define a structure in one thrift file like this: > {{ForeignInfo.thrift:}} > {noformat} > namespace perl org.fiction.rpc > struct ForeignInfo > { > 1: string someData > } > {noformat} > Then I define a service in another namespace like this: > {{SomeService.thrift:}} > {noformat} > namespace perl org.real > include "ForeignInfo.thrift" > service Company > { > ForeignInfo.ForeignInfo getForeignInfoList(); > } > {noformat} > Then I compile both of them, the resulting generated perl code in > {{gen-perl/org/real/Company.pm}} has the following use clauses in it: > {noformat} > require 5.6.0; > use strict; > use warnings; > use Thrift; > use org::real::Types; > {noformat} > Later on in the file we have: > {noformat} > SWITCH: for($fid) > { > /^0$/ && do{ if ($ftype == TType::STRUCT) { > $self->{success} = new org::fiction::rpc::ForeignInfo(); > $xfer += $self->{success}->read($input); > } else { > $xfer += $input->skip($ftype); > } > last; }; > $xfer += $input->skip($ftype); > } > {noformat} > If you put a simple wrapper around this call, the client gets an exception: > {noformat} > Undefined subroutine &org::fiction::rpc::ForeignInfo called at > gen-perl/org/real/Company.pm line 98 > {noformat} > Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a > use clause for the Types defined by the include it cannot be used. > If I add this line to the generated code in Company.pm: > {noformat} > use org::fiction::rpc::Types; > {noformat} > Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause
[ https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858626#comment-15858626 ] James E. King, III commented on THRIFT-4079: This also means there is either a missing or disabled test case that would exercise this behavior in "make cross". I will have to look into that. > [Regression] Generated perl code that returns structures from included thrift > files is missing a necessary use clause > - > > Key: THRIFT-4079 > URL: https://issues.apache.org/jira/browse/THRIFT-4079 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Critical > Labels: regression > Attachments: THRIFT-4079-example.tgz > > > I made a very simple example which I will attach, however in a nutshell if I > define a structure in one thrift file like this: > {{ForeignInfo.thrift:}} > {noformat} > namespace perl org.fiction.rpc > struct ForeignInfo > { > 1: string someData > } > {noformat} > Then I define a service in another namespace like this: > {{SomeService.thrift:}} > {noformat} > namespace perl org.real > include "ForeignInfo.thrift" > service Company > { > ForeignInfo.ForeignInfo getForeignInfoList(); > } > {noformat} > Then I compile both of them, the resulting generated perl code in > {{gen-perl/org/real/Company.pm}} has the following use clauses in it: > {noformat} > require 5.6.0; > use strict; > use warnings; > use Thrift; > use org::real::Types; > {noformat} > Later on in the file we have: > {noformat} > SWITCH: for($fid) > { > /^0$/ && do{ if ($ftype == TType::STRUCT) { > $self->{success} = new org::fiction::rpc::ForeignInfo(); > $xfer += $self->{success}->read($input); > } else { > $xfer += $input->skip($ftype); > } > last; }; > $xfer += $input->skip($ftype); > } > {noformat} > If you put a simple wrapper around this call, the client gets an exception: > {noformat} > Undefined subroutine &org::fiction::rpc::ForeignInfo called at > gen-perl/org/real/Company.pm line 98 > {noformat} > Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a > use clause for the Types defined by the include it cannot be used. > If I add this line to the generated code in Company.pm: > {noformat} > use org::fiction::rpc::Types; > {noformat} > Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4062) Remove debug print from TServiceClient
[ https://issues.apache.org/jira/browse/THRIFT-4062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858630#comment-15858630 ] James E. King, III commented on THRIFT-4062: @jfarrell can speak about the currently planned release schedule. I assume this is a significant performance and usability problem (making log files wrap, for example) because of that print on every sequence that was in there? > Remove debug print from TServiceClient > -- > > Key: THRIFT-4062 > URL: https://issues.apache.org/jira/browse/THRIFT-4062 > Project: Thrift > Issue Type: Improvement > Components: Java - Library >Reporter: Jens Geyer >Assignee: Tom Davis > Fix For: 0.11.0 > > > GitHub user tdavis opened a pull request: > https://github.com/apache/thrift/pull/1173 > Remove debug print from TServiceClient > Client: Java > You can merge this pull request into a Git repository by running: > $ git pull https://github.com/tdavis/thrift patch-1 > Alternatively you can review and apply these changes as the patch at: > https://github.com/apache/thrift/pull/1173.patch > To close this pull request, make a commit to your master/trunk branch > with (at least) the following in the commit message: > This closes #1173 > > > commit 670ad408b7f601798db7cf7b659ac231ba53c6a9 > Author: Tom Davis > Date: 2017-01-31T17:01:50Z > Remove debug print from TServiceClient > > Client: Java > > --- > If your project is set up for it, you can reply to this email and have your > reply appear on GitHub as well. If your project does not have this feature > enabled and wishes so, or if the feature is enabled but not working, please > contact infrastructure at infrastruct...@apache.org or file a JIRA ticket > with INFRA. > --- -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4062) Remove debug print from TServiceClient
[ https://issues.apache.org/jira/browse/THRIFT-4062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858640#comment-15858640 ] Christopher Tubbs commented on THRIFT-4062: --- Not sure about performance... but since it's in the client code, it affects the direct user interaction with any command-line Java client tools using thrift, spamming the user's console. That's a huge usability problem. I applied a workaround by modifying the generated code to use a wrapped version of TServiceClient in the interim, for my use case, but it's kinda problematic if everybody needs to do that. A rapid release 0.10.1 containing this fix would be a big improvement, and greatly appreciated, even if it contained no other fixes. > Remove debug print from TServiceClient > -- > > Key: THRIFT-4062 > URL: https://issues.apache.org/jira/browse/THRIFT-4062 > Project: Thrift > Issue Type: Improvement > Components: Java - Library >Reporter: Jens Geyer >Assignee: Tom Davis > Fix For: 0.11.0 > > > GitHub user tdavis opened a pull request: > https://github.com/apache/thrift/pull/1173 > Remove debug print from TServiceClient > Client: Java > You can merge this pull request into a Git repository by running: > $ git pull https://github.com/tdavis/thrift patch-1 > Alternatively you can review and apply these changes as the patch at: > https://github.com/apache/thrift/pull/1173.patch > To close this pull request, make a commit to your master/trunk branch > with (at least) the following in the commit message: > This closes #1173 > > > commit 670ad408b7f601798db7cf7b659ac231ba53c6a9 > Author: Tom Davis > Date: 2017-01-31T17:01:50Z > Remove debug print from TServiceClient > > Client: Java > > --- > If your project is set up for it, you can reply to this email and have your > reply appear on GitHub as well. If your project does not have this feature > enabled and wishes so, or if the feature is enabled but not working, please > contact infrastructure at infrastruct...@apache.org or file a JIRA ticket > with INFRA. > --- -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (THRIFT-4043) thrift perl debian package is placing files in the wrong place
[ https://issues.apache.org/jira/browse/THRIFT-4043?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III resolved THRIFT-4043. Resolution: Fixed Fix Version/s: 0.11.0 The fix has been merged; the perl library goes into /usr/share/perl5 using the debian package install. > thrift perl debian package is placing files in the wrong place > -- > > Key: THRIFT-4043 > URL: https://issues.apache.org/jira/browse/THRIFT-4043 > Project: Thrift > Issue Type: Bug > Components: Build Process, Perl - Library >Affects Versions: 0.10.0 > Environment: Ubuntu docker build environment, installing on Ubuntu > 14.04 LTS >Reporter: James E. King, III >Assignee: James E. King, III > Fix For: 0.11.0 > > > The libthrift-perl-0.10.0 package is installing things into /usr/lib, when it > should be going into /usr/share/perl5. > This means "Thrift.pm" is being dropped directly into /usr/lib/Thrift.pm > right now. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] thrift pull request #1176: THRIFT-4065 fix SIGCHLD handling for perl Forking...
Github user asfgit closed the pull request at: https://github.com/apache/thrift/pull/1176 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4065) Document Perl ForkingServer signal restriction imposed by THRIFT-3848 and remove unnecessary code
[ https://issues.apache.org/jira/browse/THRIFT-4065?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858843#comment-15858843 ] ASF GitHub Bot commented on THRIFT-4065: Github user asfgit closed the pull request at: https://github.com/apache/thrift/pull/1176 > Document Perl ForkingServer signal restriction imposed by THRIFT-3848 and > remove unnecessary code > - > > Key: THRIFT-4065 > URL: https://issues.apache.org/jira/browse/THRIFT-4065 > Project: Thrift > Issue Type: Bug > Components: Perl - Library >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS, Perl 5.18 >Reporter: James E. King, III >Assignee: James E. King, III > > The Perl ForkingServer sets SIGCHLD to be ignores so that the forks can be > automatically reaped, since the ForkingServer doesn't care about the child > exit code. > The fix for THRIFT-3848 was incomplete. It needs to reset the signal handler > in the child to use a default SIGCHLD handler so any thrift handler > implementation relying on SIGCHLD will execute properly. > Also due to the fact that SIGCHLD is ignored in ForkingServer, the > _collectChildren and call to waitpid() are unnecessary and can be removed, > along with the children hash, from _parent(). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (THRIFT-4065) Document Perl ForkingServer signal restriction imposed by THRIFT-3848 and remove unnecessary code
[ https://issues.apache.org/jira/browse/THRIFT-4065?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III resolved THRIFT-4065. Resolution: Fixed Fix Version/s: 0.11.0 Tested this in a couple different scenarios and it allows the handler's forked children to use SIGCHLD to fork if they need to. > Document Perl ForkingServer signal restriction imposed by THRIFT-3848 and > remove unnecessary code > - > > Key: THRIFT-4065 > URL: https://issues.apache.org/jira/browse/THRIFT-4065 > Project: Thrift > Issue Type: Bug > Components: Perl - Library >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS, Perl 5.18 >Reporter: James E. King, III >Assignee: James E. King, III > Fix For: 0.11.0 > > > The Perl ForkingServer sets SIGCHLD to be ignores so that the forks can be > automatically reaped, since the ForkingServer doesn't care about the child > exit code. > The fix for THRIFT-3848 was incomplete. It needs to reset the signal handler > in the child to use a default SIGCHLD handler so any thrift handler > implementation relying on SIGCHLD will execute properly. > Also due to the fact that SIGCHLD is ignored in ForkingServer, the > _collectChildren and call to waitpid() are unnecessary and can be removed, > along with the children hash, from _parent(). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (THRIFT-4070) Generated PHP for Thrift sets are incompatible with PHP
[ https://issues.apache.org/jira/browse/THRIFT-4070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III updated THRIFT-4070: --- Component/s: PHP - Compiler > Generated PHP for Thrift sets are incompatible with PHP > --- > > Key: THRIFT-4070 > URL: https://issues.apache.org/jira/browse/THRIFT-4070 > Project: Thrift > Issue Type: Bug > Components: PHP - Compiler >Reporter: David Reiman >Priority: Blocker > > In the `TBase` class that all Thrift generated code inherits from, there is a > `_writeList` method that takes a boolean of whether or not the "list" in > question is a set. The assumption here is that since PHP has no built-in Set > data type, we can duplicate the uniqueness constraint of Sets by looking at > the keys of a PHP associative array. Here's the associated code in > `_writeList`: > ``` > foreach ($var as $key => $val) { > $elem = $set ? $key : $val; > if (isset($ewrite)) { > $xfer += $output->$ewrite($elem); > } else { > switch ($etype) { > case TType::STRUCT: > $xfer += $elem->write($output); > break; > ``` > I want to point out again that if we're using a `TType::SET`, the `$set` > variable will be `true`, and `$elem` will be the `$key`, not the `$value`. > Here's the problem, from PHP array documentation > (http://php.net/manual/en/language.types.array.php): > "The key can either be an integer or a string. The value can be of any > type...Arrays and objects can not be used as keys. Doing so will result in a > warning: Illegal offset type." > In other words, it is impossible to implement a Thrift set of anything other > than strings or integers given the current implementation of PHP generated > code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (THRIFT-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause
[ https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III updated THRIFT-4079: --- Labels: (was: regression) > [Regression] Generated perl code that returns structures from included thrift > files is missing a necessary use clause > - > > Key: THRIFT-4079 > URL: https://issues.apache.org/jira/browse/THRIFT-4079 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 >Reporter: James E. King, III >Assignee: James E. King, III > Attachments: THRIFT-4079-example.tgz > > > I made a very simple example which I will attach, however in a nutshell if I > define a structure in one thrift file like this: > {{ForeignInfo.thrift:}} > {noformat} > namespace perl org.fiction.rpc > struct ForeignInfo > { > 1: string someData > } > {noformat} > Then I define a service in another namespace like this: > {{SomeService.thrift:}} > {noformat} > namespace perl org.real > include "ForeignInfo.thrift" > service Company > { > ForeignInfo.ForeignInfo getForeignInfoList(); > } > {noformat} > Then I compile both of them, the resulting generated perl code in > {{gen-perl/org/real/Company.pm}} has the following use clauses in it: > {noformat} > require 5.6.0; > use strict; > use warnings; > use Thrift; > use org::real::Types; > {noformat} > Later on in the file we have: > {noformat} > SWITCH: for($fid) > { > /^0$/ && do{ if ($ftype == TType::STRUCT) { > $self->{success} = new org::fiction::rpc::ForeignInfo(); > $xfer += $self->{success}->read($input); > } else { > $xfer += $input->skip($ftype); > } > last; }; > $xfer += $input->skip($ftype); > } > {noformat} > If you put a simple wrapper around this call, the client gets an exception: > {noformat} > Undefined subroutine &org::fiction::rpc::ForeignInfo called at > gen-perl/org/real/Company.pm line 98 > {noformat} > Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a > use clause for the Types defined by the include it cannot be used. > If I add this line to the generated code in Company.pm: > {noformat} > use org::fiction::rpc::Types; > {noformat} > Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (THRIFT-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause
[ https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858616#comment-15858616 ] James E. King, III edited comment on THRIFT-4079 at 2/9/17 2:16 AM: This is not a regression; it just hasn't been reported before. was (Author: jking3): I have confirmed this is a regression from the thrift 0.8.0 compiler. The thrift 0.9.0 compiler shows this issue. I'm really surprised this hasn't been reported until now... it makes me wonder how many folks are using thrift with perl. :( > [Regression] Generated perl code that returns structures from included thrift > files is missing a necessary use clause > - > > Key: THRIFT-4079 > URL: https://issues.apache.org/jira/browse/THRIFT-4079 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 >Reporter: James E. King, III >Assignee: James E. King, III >Priority: Critical > Attachments: THRIFT-4079-example.tgz > > > I made a very simple example which I will attach, however in a nutshell if I > define a structure in one thrift file like this: > {{ForeignInfo.thrift:}} > {noformat} > namespace perl org.fiction.rpc > struct ForeignInfo > { > 1: string someData > } > {noformat} > Then I define a service in another namespace like this: > {{SomeService.thrift:}} > {noformat} > namespace perl org.real > include "ForeignInfo.thrift" > service Company > { > ForeignInfo.ForeignInfo getForeignInfoList(); > } > {noformat} > Then I compile both of them, the resulting generated perl code in > {{gen-perl/org/real/Company.pm}} has the following use clauses in it: > {noformat} > require 5.6.0; > use strict; > use warnings; > use Thrift; > use org::real::Types; > {noformat} > Later on in the file we have: > {noformat} > SWITCH: for($fid) > { > /^0$/ && do{ if ($ftype == TType::STRUCT) { > $self->{success} = new org::fiction::rpc::ForeignInfo(); > $xfer += $self->{success}->read($input); > } else { > $xfer += $input->skip($ftype); > } > last; }; > $xfer += $input->skip($ftype); > } > {noformat} > If you put a simple wrapper around this call, the client gets an exception: > {noformat} > Undefined subroutine &org::fiction::rpc::ForeignInfo called at > gen-perl/org/real/Company.pm line 98 > {noformat} > Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a > use clause for the Types defined by the include it cannot be used. > If I add this line to the generated code in Company.pm: > {noformat} > use org::fiction::rpc::Types; > {noformat} > Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (THRIFT-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause
[ https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III updated THRIFT-4079: --- Priority: Major (was: Critical) > [Regression] Generated perl code that returns structures from included thrift > files is missing a necessary use clause > - > > Key: THRIFT-4079 > URL: https://issues.apache.org/jira/browse/THRIFT-4079 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 >Reporter: James E. King, III >Assignee: James E. King, III > Attachments: THRIFT-4079-example.tgz > > > I made a very simple example which I will attach, however in a nutshell if I > define a structure in one thrift file like this: > {{ForeignInfo.thrift:}} > {noformat} > namespace perl org.fiction.rpc > struct ForeignInfo > { > 1: string someData > } > {noformat} > Then I define a service in another namespace like this: > {{SomeService.thrift:}} > {noformat} > namespace perl org.real > include "ForeignInfo.thrift" > service Company > { > ForeignInfo.ForeignInfo getForeignInfoList(); > } > {noformat} > Then I compile both of them, the resulting generated perl code in > {{gen-perl/org/real/Company.pm}} has the following use clauses in it: > {noformat} > require 5.6.0; > use strict; > use warnings; > use Thrift; > use org::real::Types; > {noformat} > Later on in the file we have: > {noformat} > SWITCH: for($fid) > { > /^0$/ && do{ if ($ftype == TType::STRUCT) { > $self->{success} = new org::fiction::rpc::ForeignInfo(); > $xfer += $self->{success}->read($input); > } else { > $xfer += $input->skip($ftype); > } > last; }; > $xfer += $input->skip($ftype); > } > {noformat} > If you put a simple wrapper around this call, the client gets an exception: > {noformat} > Undefined subroutine &org::fiction::rpc::ForeignInfo called at > gen-perl/org/real/Company.pm line 98 > {noformat} > Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a > use clause for the Types defined by the include it cannot be used. > If I add this line to the generated code in Company.pm: > {noformat} > use org::fiction::rpc::Types; > {noformat} > Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
Need help to cross compile thrift to armel on Ubuntu 14.04LTS
Hi I am trying to cross compile thrift to armel using ./configure --host=arm-linux-gnueabi --without-java --without-qt4 --without-python --with-c_glib --with-cpp --without-test make But I am getting errors make[4]: Entering directory `/home/XCode/thrift/thrift/lib/cpp/test' ../../../compiler/cpp/thrift --gen cpp ../../../test/DebugProtoTest.thrift /lib/ld-linux.so.3: No such file or directory I would appreciate if anyone can help me to get the cross compile Karthik
[GitHub] thrift pull request #1181: THRIFT-4079 add missing use clauses for included ...
GitHub user jeking3 opened a pull request: https://github.com/apache/thrift/pull/1181 THRIFT-4079 add missing use clauses for included thrift sources in generated perl modules Sadly the state of perl unit testing appears to be pretty sad... I don't see any tests for perl being run with "make check", nor are they run in the perl package maker (for cpan installs). There are three test files but I'm not sure how they get run, if at all. So there's no test for this. I tested it on the example I submitted and it resolves the issue. You can merge this pull request into a Git repository by running: $ git pull https://github.com/jeking3/thrift THRIFT-4079 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1181.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1181 commit 7c8b5baa884cc9fe58ec8f10da528e4f7d0bcc75 Author: James E. King, III Date: 2017-02-09T02:14:11Z THRIFT-4079 add missing use clauses for included thrift sources in generated perl modules --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause
[ https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858905#comment-15858905 ] ASF GitHub Bot commented on THRIFT-4079: GitHub user jeking3 opened a pull request: https://github.com/apache/thrift/pull/1181 THRIFT-4079 add missing use clauses for included thrift sources in generated perl modules Sadly the state of perl unit testing appears to be pretty sad... I don't see any tests for perl being run with "make check", nor are they run in the perl package maker (for cpan installs). There are three test files but I'm not sure how they get run, if at all. So there's no test for this. I tested it on the example I submitted and it resolves the issue. You can merge this pull request into a Git repository by running: $ git pull https://github.com/jeking3/thrift THRIFT-4079 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1181.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1181 commit 7c8b5baa884cc9fe58ec8f10da528e4f7d0bcc75 Author: James E. King, III Date: 2017-02-09T02:14:11Z THRIFT-4079 add missing use clauses for included thrift sources in generated perl modules > [Regression] Generated perl code that returns structures from included thrift > files is missing a necessary use clause > - > > Key: THRIFT-4079 > URL: https://issues.apache.org/jira/browse/THRIFT-4079 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler >Affects Versions: 0.10.0 > Environment: Ubuntu 14.04 LTS (perl 5.18.2) with thrift 0.10.0 >Reporter: James E. King, III >Assignee: James E. King, III > Attachments: THRIFT-4079-example.tgz > > > I made a very simple example which I will attach, however in a nutshell if I > define a structure in one thrift file like this: > {{ForeignInfo.thrift:}} > {noformat} > namespace perl org.fiction.rpc > struct ForeignInfo > { > 1: string someData > } > {noformat} > Then I define a service in another namespace like this: > {{SomeService.thrift:}} > {noformat} > namespace perl org.real > include "ForeignInfo.thrift" > service Company > { > ForeignInfo.ForeignInfo getForeignInfoList(); > } > {noformat} > Then I compile both of them, the resulting generated perl code in > {{gen-perl/org/real/Company.pm}} has the following use clauses in it: > {noformat} > require 5.6.0; > use strict; > use warnings; > use Thrift; > use org::real::Types; > {noformat} > Later on in the file we have: > {noformat} > SWITCH: for($fid) > { > /^0$/ && do{ if ($ftype == TType::STRUCT) { > $self->{success} = new org::fiction::rpc::ForeignInfo(); > $xfer += $self->{success}->read($input); > } else { > $xfer += $input->skip($ftype); > } > last; }; > $xfer += $input->skip($ftype); > } > {noformat} > If you put a simple wrapper around this call, the client gets an exception: > {noformat} > Undefined subroutine &org::fiction::rpc::ForeignInfo called at > gen-perl/org/real/Company.pm line 98 > {noformat} > Line 98 is where {{org::fiction::rpc::ForeignInfo}} is mentioned. Without a > use clause for the Types defined by the include it cannot be used. > If I add this line to the generated code in Company.pm: > {noformat} > use org::fiction::rpc::Types; > {noformat} > Then everything works. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (THRIFT-4070) Generated PHP for Thrift sets are incompatible with PHP
[ https://issues.apache.org/jira/browse/THRIFT-4070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] James E. King, III updated THRIFT-4070: --- Priority: Major (was: Blocker) > Generated PHP for Thrift sets are incompatible with PHP > --- > > Key: THRIFT-4070 > URL: https://issues.apache.org/jira/browse/THRIFT-4070 > Project: Thrift > Issue Type: Bug > Components: PHP - Compiler >Reporter: David Reiman > > In the `TBase` class that all Thrift generated code inherits from, there is a > `_writeList` method that takes a boolean of whether or not the "list" in > question is a set. The assumption here is that since PHP has no built-in Set > data type, we can duplicate the uniqueness constraint of Sets by looking at > the keys of a PHP associative array. Here's the associated code in > `_writeList`: > ``` > foreach ($var as $key => $val) { > $elem = $set ? $key : $val; > if (isset($ewrite)) { > $xfer += $output->$ewrite($elem); > } else { > switch ($etype) { > case TType::STRUCT: > $xfer += $elem->write($output); > break; > ``` > I want to point out again that if we're using a `TType::SET`, the `$set` > variable will be `true`, and `$elem` will be the `$key`, not the `$value`. > Here's the problem, from PHP array documentation > (http://php.net/manual/en/language.types.array.php): > "The key can either be an integer or a string. The value can be of any > type...Arrays and objects can not be used as keys. Doing so will result in a > warning: Illegal offset type." > In other words, it is impossible to implement a Thrift set of anything other > than strings or integers given the current implementation of PHP generated > code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4070) Generated PHP for Thrift sets are incompatible with PHP
[ https://issues.apache.org/jira/browse/THRIFT-4070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858990#comment-15858990 ] James E. King, III commented on THRIFT-4070: Is there a set library / class for php that would be useful here? http://php.net/manual/en/class.ds-set.php > Generated PHP for Thrift sets are incompatible with PHP > --- > > Key: THRIFT-4070 > URL: https://issues.apache.org/jira/browse/THRIFT-4070 > Project: Thrift > Issue Type: Bug > Components: PHP - Compiler >Reporter: David Reiman > > In the `TBase` class that all Thrift generated code inherits from, there is a > `_writeList` method that takes a boolean of whether or not the "list" in > question is a set. The assumption here is that since PHP has no built-in Set > data type, we can duplicate the uniqueness constraint of Sets by looking at > the keys of a PHP associative array. Here's the associated code in > `_writeList`: > ``` > foreach ($var as $key => $val) { > $elem = $set ? $key : $val; > if (isset($ewrite)) { > $xfer += $output->$ewrite($elem); > } else { > switch ($etype) { > case TType::STRUCT: > $xfer += $elem->write($output); > break; > ``` > I want to point out again that if we're using a `TType::SET`, the `$set` > variable will be `true`, and `$elem` will be the `$key`, not the `$value`. > Here's the problem, from PHP array documentation > (http://php.net/manual/en/language.types.array.php): > "The key can either be an integer or a string. The value can be of any > type...Arrays and objects can not be used as keys. Doing so will result in a > warning: Illegal offset type." > In other words, it is impossible to implement a Thrift set of anything other > than strings or integers given the current implementation of PHP generated > code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (THRIFT-4073) enum files are still being generated with unused imports
[ https://issues.apache.org/jira/browse/THRIFT-4073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15859058#comment-15859058 ] ASF GitHub Bot commented on THRIFT-4073: GitHub user bgould opened a pull request: https://github.com/apache/thrift/pull/1182 THRIFT-4073 enum files are still being generated with unused imports You can merge this pull request into a Git repository by running: $ git pull https://github.com/bgould/thrift THRIFT-4073 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1182.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1182 commit 9e3f77b9b8aa88c9530ed13f63ed71e47b738efe Author: BCG Date: 2017-02-09T05:31:42Z removed imports from generated enums > enum files are still being generated with unused imports > > > Key: THRIFT-4073 > URL: https://issues.apache.org/jira/browse/THRIFT-4073 > Project: Thrift > Issue Type: Bug > Components: Java - Compiler >Affects Versions: 0.10.0 >Reporter: Christopher Tubbs > > I love that import statements are no longer being generated, because it means > less "unused imports" warnings from my compiler and checkstyle rules. > However, it appears that the enum generation did not get as much care as > class file generation. There still remain some import statements in enum > files. All of them are unused because of the fully-qualified types being used > instead, so they are safe to delete. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] thrift pull request #1182: THRIFT-4073 enum files are still being generated ...
GitHub user bgould opened a pull request: https://github.com/apache/thrift/pull/1182 THRIFT-4073 enum files are still being generated with unused imports You can merge this pull request into a Git repository by running: $ git pull https://github.com/bgould/thrift THRIFT-4073 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1182.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1182 commit 9e3f77b9b8aa88c9530ed13f63ed71e47b738efe Author: BCG Date: 2017-02-09T05:31:42Z removed imports from generated enums --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---