[GitHub] thrift pull request #1182: THRIFT-4073 enum files are still being generated ...

2017-02-08 Thread bgould
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.
---


[jira] [Updated] (THRIFT-4070) Generated PHP for Thrift sets are incompatible with PHP

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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 ::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)


[GitHub] thrift pull request #1181: THRIFT-4079 add missing use clauses for included ...

2017-02-08 Thread jeking3
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.
---


Need help to cross compile thrift to armel on Ubuntu 14.04LTS

2017-02-08 Thread Samba Siva Karthik Bollam
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


[jira] [Updated] (THRIFT-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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 ::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

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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 ::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

2017-02-08 Thread James E. King, III (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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 ::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

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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] [Resolved] (THRIFT-4065) Document Perl ForkingServer signal restriction imposed by THRIFT-3848 and remove unnecessary code

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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] [Commented] (THRIFT-4065) Document Perl ForkingServer signal restriction imposed by THRIFT-3848 and remove unnecessary code

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4065?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[GitHub] thrift pull request #1176: THRIFT-4065 fix SIGCHLD handling for perl Forking...

2017-02-08 Thread asfgit
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] [Resolved] (THRIFT-4043) thrift perl debian package is placing files in the wrong place

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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)


[jira] [Commented] (THRIFT-4062) Remove debug print from TServiceClient

2017-02-08 Thread Christopher Tubbs (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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] [Commented] (THRIFT-4062) Remove debug print from TServiceClient

2017-02-08 Thread James E. King, III (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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-4079) [Regression] Generated perl code that returns structures from included thrift files is missing a necessary use clause

2017-02-08 Thread James E. King, III (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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 ::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

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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 ::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

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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 ::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] [Created] (THRIFT-4079) Generated perl code that returns structures from included thrift files is missing a necessary use clause

2017-02-08 Thread James E. King, III (JIRA)
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 ::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

2017-02-08 Thread Christopher Tubbs (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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] [Closed] (THRIFT-4078) TServiceClient.java pollutes System.out with debug message

2017-02-08 Thread Christopher Tubbs (JIRA)

 [ 
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] [Created] (THRIFT-4078) TServiceClient.java pollutes System.out with debug message

2017-02-08 Thread Christopher Tubbs (JIRA)
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] [Commented] (THRIFT-4043) thrift perl debian package is placing files in the wrong place

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4043?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[GitHub] thrift pull request #1174: THRIFT-4043 ensure perl files do not end up in /u...

2017-02-08 Thread asfgit
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] [Comment Edited] (THRIFT-4018) Ruby server can corrupt connections by putting ApplicationException in the middle of a response

2017-02-08 Thread James E. King, III (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[jira] [Commented] (THRIFT-4018) Ruby server can corrupt connections by putting ApplicationException in the middle of a response

2017-02-08 Thread James E. King, III (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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] [Created] (THRIFT-4077) AI_ADDRCONFIG redefined after recent change to PlatformSocket header

2017-02-08 Thread James E. King, III (JIRA)
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-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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] [Commented] (THRIFT-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[GitHub] thrift issue #1180: THRIFT-4076 fix appveyor ant issue

2017-02-08 Thread jeking3
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.
---


[GitHub] thrift pull request #1180: THRIFT-4076 fix appveyor ant issue

2017-02-08 Thread jeking3
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.
---


[jira] [Resolved] (THRIFT-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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)


[jira] [Commented] (THRIFT-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[GitHub] thrift pull request #1180: THRIFT-4076 fix appveyor ant issue

2017-02-08 Thread jeking3
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] [Assigned] (THRIFT-4075) Better MingW support

2017-02-08 Thread James E. King, III (JIRA)

 [ 
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

2017-02-08 Thread James E. King, III (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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] [Created] (THRIFT-4076) Appveyor builds failing because ant 1.9.8 was removed from apache servers

2017-02-08 Thread James E. King, III (JIRA)
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-4011) Sets of Thrift structs generate Go code that can't be serialized to JSON

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[GitHub] thrift pull request #1156: THRIFT-4011 Use slices for Thrift sets

2017-02-08 Thread dcelasun
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

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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

2017-02-08 Thread jeking3
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.
---


[GitHub] thrift pull request #1179: THRIFT-4018 corruption after ApplicationException...

2017-02-08 Thread dbravender
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.
---


[jira] [Commented] (THRIFT-4018) Ruby server can corrupt connections by putting ApplicationException in the middle of a response

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


FINAL REMINDER: CFP for ApacheCon closes February 11th

2017-02-08 Thread Rich Bowen
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-4011) Sets of Thrift structs generate Go code that can't be serialized to JSON

2017-02-08 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/THRIFT-4011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[GitHub] thrift issue #1156: THRIFT-4011 Use slices for Thrift sets

2017-02-08 Thread dcelasun
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] [Created] (THRIFT-4075) Better MingW support

2017-02-08 Thread Aurelien Regat-Barrel (JIRA)
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)