[GitHub] thrift issue #1191: THRIFT-3706 - Implement multiplexor.

2017-02-20 Thread gadLinux
Github user gadLinux commented on the issue:

https://github.com/apache/thrift/pull/1191
  
Did you see that the test is working against Java? If you try a connection 
with and without multiplexed in one of the ends the connection doesn't work. 
The only way to see if the data is sent correctly is by using wireshark and see 
how the prefix is automatically added to the service. And processed in the 
server end. 

What do you need to merge?


---
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-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


Github user gadLinux commented on the issue:

https://github.com/apache/thrift/pull/1191
  
Did you see that the test is working against Java? If you try a connection 
with and without multiplexed in one of the ends the connection doesn't work. 
The only way to see if the data is sent correctly is by using wireshark and see 
how the prefix is automatically added to the service. And processed in the 
server end. 

What do you need to merge?


> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


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

2017-02-20 Thread dcelasun
Github user dcelasun commented on the issue:

https://github.com/apache/thrift/pull/1156
  
@Jens-G All tests green and rebased from master.


---
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-20 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4011:


Github user dcelasun commented on the issue:

https://github.com/apache/thrift/pull/1156
  
@Jens-G All tests green and rebased from master.


> 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 #1198: THRIFT-4077: fix Appveyor warnings (VS2015) in Pl...

2017-02-20 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1198


---
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 #1162: THRIFT-3973: Provide some tools to make it easier...

2017-02-20 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1162


---
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-3973) Remove MSVC C++ projects to improve maintainability; document building Thrift on Windows using CMake to generate project files

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

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

ASF GitHub Bot commented on THRIFT-3973:


Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1162


> Remove MSVC C++ projects to improve maintainability; document building Thrift 
> on Windows using CMake to generate project files
> --
>
> Key: THRIFT-3973
> URL: https://issues.apache.org/jira/browse/THRIFT-3973
> Project: Thrift
>  Issue Type: Story
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.10.0
> Environment: Windows
>Reporter: James E. King, III
>Assignee: James E. King, III
>
> A class of issues has popped up where the project files checked into the 
> project have become stale and/or the instructions for building on windows 
> need to be updated.
> These issues are linked to this item.  The purpose of this story is to 
> eliminate these issues by getting rid of the project files checked into the 
> project for windows (C++ specifically) and to update the web site 
> documentation on how to build the thrift libraries for windows (native, not 
> MinGW - those instructions will remain as-is).
> Acceptance Criteria:
> # Instructions for, and supporting tools (if any) are provided by the 
> project.  This must include support for:
> ## Compiler executable builds in debug and release form
> ## Static library builds in debug and release form (due to DLL export issues, 
> windows builds do not support dynamic library generation today)
> ## Support for optional library support like zlib, libevent, boost, std 
> (threads)
> ## Support for MSVC 2010 or later
> ## Support for CMake 3.6 or later
> # MSVC project files for C++ are removed from the project.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-4077) AI_ADDRCONFIG redefined after recent change to PlatformSocket header

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

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

ASF GitHub Bot commented on THRIFT-4077:


Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1198


> 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
> Fix For: 0.11.0
>
>
> {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] [Resolved] (THRIFT-4077) AI_ADDRCONFIG redefined after recent change to PlatformSocket header

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-4077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III resolved THRIFT-4077.

   Resolution: Fixed
Fix Version/s: 0.11.0

> 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
> Fix For: 0.11.0
>
>
> {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)


[GitHub] thrift issue #1197: THRIFT-4084: Add a SSL/TLS negotiation check to crossfea...

2017-02-20 Thread jeking3
Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1197
  
@nsuke this is ready for another review as all the code comments were 
addressed and we have a clean CI build.


---
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-4084) Improve SSL security in thrift by adding a make cross client that checks to make sure SSLv3 protocol cannot be negotiated

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

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

ASF GitHub Bot commented on THRIFT-4084:


Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1197
  
@nsuke this is ready for another review as all the code comments were 
addressed and we have a clean CI build.


> Improve SSL security in thrift by adding a make cross client that checks to 
> make sure SSLv3 protocol cannot be negotiated
> -
>
> Key: THRIFT-4084
> URL: https://issues.apache.org/jira/browse/THRIFT-4084
> Project: Thrift
>  Issue Type: Improvement
>  Components: Test Suite
>Affects Versions: 0.10.0
> Environment: Ubuntu Dockerfile
>Reporter: James E. King, III
>Assignee: James E. King, III
>  Labels: cross-validation, security, ssl, tls
>
> Following code review discussions in THRIFT-3369, and seeing THRIFT-3165 in 
> the backlog, I want to add a make cross "language" which isn't a language at 
> all, but a test that checks to see if it is possible to negotiate at various 
> SSL/TLS protocol versions.  This would be a client-only test, likely just a 
> bash script that leverages the openssl client and command line options to 
> connect to a test server and see if it handshakes and negotiates protocol 
> successfully.
> Without THRIFT-3165 implemented, it will ensure:
> * Can handshake using the universal SSLv23 context, however cannot negotiate 
> SSLv3
> * Can negotiate TLSv1.0, TLSv1.1, and TLSv1.2
> With THRIFT-3165 it needs to change to ensure:
> * Can handshake using TLSv1.2 but not any other version
> The solution I came up with was to add a new client called "secure" to make 
> crosstest.  test_secure is a simple bash script that checks the appropriate 
> rules above (the ones without THRIFT-3165, since it is not done), and I added 
> "secure" to the list of cross test "languages" in the top level configure 
> script.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift pull request #1197: THRIFT-4084: Add a SSL/TLS negotiation check to c...

2017-02-20 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1197


---
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-4084) Improve SSL security in thrift by adding a make cross client that checks to make sure SSLv3 protocol cannot be negotiated

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-4084?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III resolved THRIFT-4084.

   Resolution: Fixed
Fix Version/s: 0.11.0

> Improve SSL security in thrift by adding a make cross client that checks to 
> make sure SSLv3 protocol cannot be negotiated
> -
>
> Key: THRIFT-4084
> URL: https://issues.apache.org/jira/browse/THRIFT-4084
> Project: Thrift
>  Issue Type: Improvement
>  Components: Test Suite
>Affects Versions: 0.10.0
> Environment: Ubuntu Dockerfile
>Reporter: James E. King, III
>Assignee: James E. King, III
>  Labels: cross-validation, security, ssl, tls
> Fix For: 0.11.0
>
>
> Following code review discussions in THRIFT-3369, and seeing THRIFT-3165 in 
> the backlog, I want to add a make cross "language" which isn't a language at 
> all, but a test that checks to see if it is possible to negotiate at various 
> SSL/TLS protocol versions.  This would be a client-only test, likely just a 
> bash script that leverages the openssl client and command line options to 
> connect to a test server and see if it handshakes and negotiates protocol 
> successfully.
> Without THRIFT-3165 implemented, it will ensure:
> * Can handshake using the universal SSLv23 context, however cannot negotiate 
> SSLv3
> * Can negotiate TLSv1.0, TLSv1.1, and TLSv1.2
> With THRIFT-3165 it needs to change to ensure:
> * Can handshake using TLSv1.2 but not any other version
> The solution I came up with was to add a new client called "secure" to make 
> crosstest.  test_secure is a simple bash script that checks the appropriate 
> rules above (the ones without THRIFT-3165, since it is not done), and I added 
> "secure" to the list of cross test "languages" in the top level configure 
> script.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-4084) Improve SSL security in thrift by adding a make cross client that checks to make sure SSLv3 protocol cannot be negotiated

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

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

ASF GitHub Bot commented on THRIFT-4084:


Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1197


> Improve SSL security in thrift by adding a make cross client that checks to 
> make sure SSLv3 protocol cannot be negotiated
> -
>
> Key: THRIFT-4084
> URL: https://issues.apache.org/jira/browse/THRIFT-4084
> Project: Thrift
>  Issue Type: Improvement
>  Components: Test Suite
>Affects Versions: 0.10.0
> Environment: Ubuntu Dockerfile
>Reporter: James E. King, III
>Assignee: James E. King, III
>  Labels: cross-validation, security, ssl, tls
> Fix For: 0.11.0
>
>
> Following code review discussions in THRIFT-3369, and seeing THRIFT-3165 in 
> the backlog, I want to add a make cross "language" which isn't a language at 
> all, but a test that checks to see if it is possible to negotiate at various 
> SSL/TLS protocol versions.  This would be a client-only test, likely just a 
> bash script that leverages the openssl client and command line options to 
> connect to a test server and see if it handshakes and negotiates protocol 
> successfully.
> Without THRIFT-3165 implemented, it will ensure:
> * Can handshake using the universal SSLv23 context, however cannot negotiate 
> SSLv3
> * Can negotiate TLSv1.0, TLSv1.1, and TLSv1.2
> With THRIFT-3165 it needs to change to ensure:
> * Can handshake using TLSv1.2 but not any other version
> The solution I came up with was to add a new client called "secure" to make 
> crosstest.  test_secure is a simple bash script that checks the appropriate 
> rules above (the ones without THRIFT-3165, since it is not done), and I added 
> "secure" to the list of cross test "languages" in the top level configure 
> script.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (THRIFT-4084) Improve SSL security in thrift by adding a make cross client that checks to make sure SSLv3 protocol cannot be negotiated

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-4084?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III updated THRIFT-4084:
---
Description: 
Following code review discussions in THRIFT-3369, and seeing THRIFT-3165 in the 
backlog, I want to add a make cross "language" which isn't a language at all, 
but a test that checks to see if it is possible to negotiate at various SSL/TLS 
protocol versions.  This would be a client-only test, likely just a bash script 
that leverages the openssl client and command line options to connect to a test 
server and see if it handshakes and negotiates protocol successfully.

Without THRIFT-3165 implemented, it will ensure:

* Can handshake using the universal SSLv23 context, however cannot negotiate 
SSLv3
* Can negotiate TLSv1.0, TLSv1.1, and TLSv1.2

With THRIFT-3165 it needs to change to ensure:

* Can handshake using TLSv1.2 but not any other version

The solution I came up with was to add a new client called "secure" to make 
crosstest.  test_secure is a simple bash script that checks the appropriate 
rules above (the ones without THRIFT-3165, since it is not done), and I added 
"secure" to the list of cross test "languages" in the top level configure 
script.

After code review, it was moved into crossfeature and split into two parts - 
one called "nosslv3" checks to make sure the server is not negotiating sslv3.  
The other called "tls" checks ot make sure the server will negotiate at least 
one of TLSv1.0, TLSv1.1 or TLSv1.2.

  was:
Following code review discussions in THRIFT-3369, and seeing THRIFT-3165 in the 
backlog, I want to add a make cross "language" which isn't a language at all, 
but a test that checks to see if it is possible to negotiate at various SSL/TLS 
protocol versions.  This would be a client-only test, likely just a bash script 
that leverages the openssl client and command line options to connect to a test 
server and see if it handshakes and negotiates protocol successfully.

Without THRIFT-3165 implemented, it will ensure:

* Can handshake using the universal SSLv23 context, however cannot negotiate 
SSLv3
* Can negotiate TLSv1.0, TLSv1.1, and TLSv1.2

With THRIFT-3165 it needs to change to ensure:

* Can handshake using TLSv1.2 but not any other version

The solution I came up with was to add a new client called "secure" to make 
crosstest.  test_secure is a simple bash script that checks the appropriate 
rules above (the ones without THRIFT-3165, since it is not done), and I added 
"secure" to the list of cross test "languages" in the top level configure 
script.


> Improve SSL security in thrift by adding a make cross client that checks to 
> make sure SSLv3 protocol cannot be negotiated
> -
>
> Key: THRIFT-4084
> URL: https://issues.apache.org/jira/browse/THRIFT-4084
> Project: Thrift
>  Issue Type: Improvement
>  Components: Test Suite
>Affects Versions: 0.10.0
> Environment: Ubuntu Dockerfile
>Reporter: James E. King, III
>Assignee: James E. King, III
>  Labels: cross-validation, security, ssl, tls
> Fix For: 0.11.0
>
>
> Following code review discussions in THRIFT-3369, and seeing THRIFT-3165 in 
> the backlog, I want to add a make cross "language" which isn't a language at 
> all, but a test that checks to see if it is possible to negotiate at various 
> SSL/TLS protocol versions.  This would be a client-only test, likely just a 
> bash script that leverages the openssl client and command line options to 
> connect to a test server and see if it handshakes and negotiates protocol 
> successfully.
> Without THRIFT-3165 implemented, it will ensure:
> * Can handshake using the universal SSLv23 context, however cannot negotiate 
> SSLv3
> * Can negotiate TLSv1.0, TLSv1.1, and TLSv1.2
> With THRIFT-3165 it needs to change to ensure:
> * Can handshake using TLSv1.2 but not any other version
> The solution I came up with was to add a new client called "secure" to make 
> crosstest.  test_secure is a simple bash script that checks the appropriate 
> rules above (the ones without THRIFT-3165, since it is not done), and I added 
> "secure" to the list of cross test "languages" in the top level configure 
> script.
> After code review, it was moved into crossfeature and split into two parts - 
> one called "nosslv3" checks to make sure the server is not negotiating sslv3. 
>  The other called "tls" checks ot make sure the server will negotiate at 
> least one of TLSv1.0, TLSv1.1 or TLSv1.2.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift issue #1196: THRIFT-3891 TNonblockingServer configured with more than...

2017-02-20 Thread jeking3
Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1196
  
@nsuke this is ready for review again.


---
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-3891) TNonblockingServer configured with more than one IO threads does not always return from serve() upon stop()

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

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

ASF GitHub Bot commented on THRIFT-3891:


Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1196
  
@nsuke this is ready for review again.


> TNonblockingServer configured with more than one IO threads does not always 
> return from serve() upon stop()
> ---
>
> Key: THRIFT-3891
> URL: https://issues.apache.org/jira/browse/THRIFT-3891
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.9.3
>Reporter: Buğra Gedik
>Assignee: James E. King, III
>Priority: Minor
> Attachments: patch.diff
>
>
> Using {{TNonblockingServer}}, when the number of IO threads is > 1, there is 
> race condition in which {{stop()}} does not properly unblock {{serve()}}. 
> The problem manifests itself when {{stop()}} is called (obviously from a 
> different thread) soon after {{serve()}}. 
> The core issue is that, {{event_base_loopbreak()}} is called within the 
> {{stop()}} sequence without checking whether the IO thread has actually 
> entered its event loop. The documentation of {{event_base_loopbreak()}} says 
> (http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html)
> {quote}
> Note also that event_base_loopexit(base,NULL) and event_base_loopbreak(base) 
> act differently when no event loop is running: loopexit schedules the next 
> instance of the event loop to stop right after the next round of callbacks 
> are run (as if it had been invoked with EVLOOP_ONCE) whereas loopbreak only 
> stops a currently running loop, and has no effect if the event loop isn’t 
> running.
> {quote}
> Attached is a patch (against the released 0.9.3 version of the codebase).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift pull request #1196: THRIFT-3891 TNonblockingServer configured with mo...

2017-02-20 Thread bgedik
Github user bgedik commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1196#discussion_r102023002
  
--- Diff: lib/cpp/src/thrift/server/TNonblockingServer.cpp ---
@@ -1566,24 +1562,26 @@ void 
TNonblockingIOThread::setCurrentThreadHighPriority(bool value) {
 }
 
 void TNonblockingIOThread::run() {
-  if (eventBase_ == NULL)
+  if (eventBase_ == NULL) {
 registerEvents();
-
-  GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
-
+  }
   if (useHighPriority_) {
 setCurrentThreadHighPriority(true);
   }
 
-  // Run libevent engine, never returns, invokes calls to eventHandler
-  event_base_loop(eventBase_, 0);
+  if (eventBase_ != NULL)
+  {
+GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
+// Run libevent engine, never returns, invokes calls to eventHandler
+event_base_loop(eventBase_, 0);
 
-  if (useHighPriority_) {
-setCurrentThreadHighPriority(false);
-  }
+if (useHighPriority_) {
+  setCurrentThreadHighPriority(false);
+}
 
-  // cleans up our registered events
-  cleanupEvents();
+// cleans up our registered events
+cleanupEvents();
+  }
 
   GlobalOutput.printf("TNonblockingServer: IO thread #%d run() done!", 
number_);
--- End diff --

Is there any way to control the outputting of these messages? When we run 
with TNonblockingServer, we get these output. I couldn't find a way to mask 
them.


---
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-3891) TNonblockingServer configured with more than one IO threads does not always return from serve() upon stop()

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

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

ASF GitHub Bot commented on THRIFT-3891:


Github user bgedik commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1196#discussion_r102023002
  
--- Diff: lib/cpp/src/thrift/server/TNonblockingServer.cpp ---
@@ -1566,24 +1562,26 @@ void 
TNonblockingIOThread::setCurrentThreadHighPriority(bool value) {
 }
 
 void TNonblockingIOThread::run() {
-  if (eventBase_ == NULL)
+  if (eventBase_ == NULL) {
 registerEvents();
-
-  GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
-
+  }
   if (useHighPriority_) {
 setCurrentThreadHighPriority(true);
   }
 
-  // Run libevent engine, never returns, invokes calls to eventHandler
-  event_base_loop(eventBase_, 0);
+  if (eventBase_ != NULL)
+  {
+GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
+// Run libevent engine, never returns, invokes calls to eventHandler
+event_base_loop(eventBase_, 0);
 
-  if (useHighPriority_) {
-setCurrentThreadHighPriority(false);
-  }
+if (useHighPriority_) {
+  setCurrentThreadHighPriority(false);
+}
 
-  // cleans up our registered events
-  cleanupEvents();
+// cleans up our registered events
+cleanupEvents();
+  }
 
   GlobalOutput.printf("TNonblockingServer: IO thread #%d run() done!", 
number_);
--- End diff --

Is there any way to control the outputting of these messages? When we run 
with TNonblockingServer, we get these output. I couldn't find a way to mask 
them.


> TNonblockingServer configured with more than one IO threads does not always 
> return from serve() upon stop()
> ---
>
> Key: THRIFT-3891
> URL: https://issues.apache.org/jira/browse/THRIFT-3891
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.9.3
>Reporter: Buğra Gedik
>Assignee: James E. King, III
>Priority: Minor
> Attachments: patch.diff
>
>
> Using {{TNonblockingServer}}, when the number of IO threads is > 1, there is 
> race condition in which {{stop()}} does not properly unblock {{serve()}}. 
> The problem manifests itself when {{stop()}} is called (obviously from a 
> different thread) soon after {{serve()}}. 
> The core issue is that, {{event_base_loopbreak()}} is called within the 
> {{stop()}} sequence without checking whether the IO thread has actually 
> entered its event loop. The documentation of {{event_base_loopbreak()}} says 
> (http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html)
> {quote}
> Note also that event_base_loopexit(base,NULL) and event_base_loopbreak(base) 
> act differently when no event loop is running: loopexit schedules the next 
> instance of the event loop to stop right after the next round of callbacks 
> are run (as if it had been invoked with EVLOOP_ONCE) whereas loopbreak only 
> stops a currently running loop, and has no effect if the event loop isn’t 
> running.
> {quote}
> Attached is a patch (against the released 0.9.3 version of the codebase).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift pull request #1196: THRIFT-3891 TNonblockingServer configured with mo...

2017-02-20 Thread jeking3
Github user jeking3 commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1196#discussion_r102025071
  
--- Diff: lib/cpp/src/thrift/server/TNonblockingServer.cpp ---
@@ -1566,24 +1562,26 @@ void 
TNonblockingIOThread::setCurrentThreadHighPriority(bool value) {
 }
 
 void TNonblockingIOThread::run() {
-  if (eventBase_ == NULL)
+  if (eventBase_ == NULL) {
 registerEvents();
-
-  GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
-
+  }
   if (useHighPriority_) {
 setCurrentThreadHighPriority(true);
   }
 
-  // Run libevent engine, never returns, invokes calls to eventHandler
-  event_base_loop(eventBase_, 0);
+  if (eventBase_ != NULL)
+  {
+GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
+// Run libevent engine, never returns, invokes calls to eventHandler
+event_base_loop(eventBase_, 0);
 
-  if (useHighPriority_) {
-setCurrentThreadHighPriority(false);
-  }
+if (useHighPriority_) {
+  setCurrentThreadHighPriority(false);
+}
 
-  // cleans up our registered events
-  cleanupEvents();
+// cleans up our registered events
+cleanupEvents();
+  }
 
   GlobalOutput.printf("TNonblockingServer: IO thread #%d run() done!", 
number_);
--- End diff --

You can install your own GlobalOutput handler.  The hooks should be in the 
top level thrift header.


---
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-3891) TNonblockingServer configured with more than one IO threads does not always return from serve() upon stop()

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

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

ASF GitHub Bot commented on THRIFT-3891:


Github user jeking3 commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1196#discussion_r102025071
  
--- Diff: lib/cpp/src/thrift/server/TNonblockingServer.cpp ---
@@ -1566,24 +1562,26 @@ void 
TNonblockingIOThread::setCurrentThreadHighPriority(bool value) {
 }
 
 void TNonblockingIOThread::run() {
-  if (eventBase_ == NULL)
+  if (eventBase_ == NULL) {
 registerEvents();
-
-  GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
-
+  }
   if (useHighPriority_) {
 setCurrentThreadHighPriority(true);
   }
 
-  // Run libevent engine, never returns, invokes calls to eventHandler
-  event_base_loop(eventBase_, 0);
+  if (eventBase_ != NULL)
+  {
+GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
+// Run libevent engine, never returns, invokes calls to eventHandler
+event_base_loop(eventBase_, 0);
 
-  if (useHighPriority_) {
-setCurrentThreadHighPriority(false);
-  }
+if (useHighPriority_) {
+  setCurrentThreadHighPriority(false);
+}
 
-  // cleans up our registered events
-  cleanupEvents();
+// cleans up our registered events
+cleanupEvents();
+  }
 
   GlobalOutput.printf("TNonblockingServer: IO thread #%d run() done!", 
number_);
--- End diff --

You can install your own GlobalOutput handler.  The hooks should be in the 
top level thrift header.


> TNonblockingServer configured with more than one IO threads does not always 
> return from serve() upon stop()
> ---
>
> Key: THRIFT-3891
> URL: https://issues.apache.org/jira/browse/THRIFT-3891
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.9.3
>Reporter: Buğra Gedik
>Assignee: James E. King, III
>Priority: Minor
> Attachments: patch.diff
>
>
> Using {{TNonblockingServer}}, when the number of IO threads is > 1, there is 
> race condition in which {{stop()}} does not properly unblock {{serve()}}. 
> The problem manifests itself when {{stop()}} is called (obviously from a 
> different thread) soon after {{serve()}}. 
> The core issue is that, {{event_base_loopbreak()}} is called within the 
> {{stop()}} sequence without checking whether the IO thread has actually 
> entered its event loop. The documentation of {{event_base_loopbreak()}} says 
> (http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html)
> {quote}
> Note also that event_base_loopexit(base,NULL) and event_base_loopbreak(base) 
> act differently when no event loop is running: loopexit schedules the next 
> instance of the event loop to stop right after the next round of callbacks 
> are run (as if it had been invoked with EVLOOP_ONCE) whereas loopbreak only 
> stops a currently running loop, and has no effect if the event loop isn’t 
> running.
> {quote}
> Attached is a patch (against the released 0.9.3 version of the codebase).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift pull request #1196: THRIFT-3891 TNonblockingServer configured with mo...

2017-02-20 Thread bgedik
Github user bgedik commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1196#discussion_r102025490
  
--- Diff: lib/cpp/src/thrift/server/TNonblockingServer.cpp ---
@@ -1566,24 +1562,26 @@ void 
TNonblockingIOThread::setCurrentThreadHighPriority(bool value) {
 }
 
 void TNonblockingIOThread::run() {
-  if (eventBase_ == NULL)
+  if (eventBase_ == NULL) {
 registerEvents();
-
-  GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
-
+  }
   if (useHighPriority_) {
 setCurrentThreadHighPriority(true);
   }
 
-  // Run libevent engine, never returns, invokes calls to eventHandler
-  event_base_loop(eventBase_, 0);
+  if (eventBase_ != NULL)
+  {
+GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
+// Run libevent engine, never returns, invokes calls to eventHandler
+event_base_loop(eventBase_, 0);
 
-  if (useHighPriority_) {
-setCurrentThreadHighPriority(false);
-  }
+if (useHighPriority_) {
+  setCurrentThreadHighPriority(false);
+}
 
-  // cleans up our registered events
-  cleanupEvents();
+// cleans up our registered events
+cleanupEvents();
+  }
 
   GlobalOutput.printf("TNonblockingServer: IO thread #%d run() done!", 
number_);
--- End diff --

Thanks, but for a message like {{"TNonblockingServer: IO thread #0 run() 
done!"}} is there any kind of metadata that tells me if this is a info message 
or a warning/error message. It seems to be being output without any information 
attached to it. That makes it hard to filter the messages that we consider 
unnecessary.


---
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-3891) TNonblockingServer configured with more than one IO threads does not always return from serve() upon stop()

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

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

ASF GitHub Bot commented on THRIFT-3891:


Github user bgedik commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1196#discussion_r102025490
  
--- Diff: lib/cpp/src/thrift/server/TNonblockingServer.cpp ---
@@ -1566,24 +1562,26 @@ void 
TNonblockingIOThread::setCurrentThreadHighPriority(bool value) {
 }
 
 void TNonblockingIOThread::run() {
-  if (eventBase_ == NULL)
+  if (eventBase_ == NULL) {
 registerEvents();
-
-  GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
-
+  }
   if (useHighPriority_) {
 setCurrentThreadHighPriority(true);
   }
 
-  // Run libevent engine, never returns, invokes calls to eventHandler
-  event_base_loop(eventBase_, 0);
+  if (eventBase_ != NULL)
+  {
+GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
+// Run libevent engine, never returns, invokes calls to eventHandler
+event_base_loop(eventBase_, 0);
 
-  if (useHighPriority_) {
-setCurrentThreadHighPriority(false);
-  }
+if (useHighPriority_) {
+  setCurrentThreadHighPriority(false);
+}
 
-  // cleans up our registered events
-  cleanupEvents();
+// cleans up our registered events
+cleanupEvents();
+  }
 
   GlobalOutput.printf("TNonblockingServer: IO thread #%d run() done!", 
number_);
--- End diff --

Thanks, but for a message like {{"TNonblockingServer: IO thread #0 run() 
done!"}} is there any kind of metadata that tells me if this is a info message 
or a warning/error message. It seems to be being output without any information 
attached to it. That makes it hard to filter the messages that we consider 
unnecessary.


> TNonblockingServer configured with more than one IO threads does not always 
> return from serve() upon stop()
> ---
>
> Key: THRIFT-3891
> URL: https://issues.apache.org/jira/browse/THRIFT-3891
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.9.3
>Reporter: Buğra Gedik
>Assignee: James E. King, III
>Priority: Minor
> Attachments: patch.diff
>
>
> Using {{TNonblockingServer}}, when the number of IO threads is > 1, there is 
> race condition in which {{stop()}} does not properly unblock {{serve()}}. 
> The problem manifests itself when {{stop()}} is called (obviously from a 
> different thread) soon after {{serve()}}. 
> The core issue is that, {{event_base_loopbreak()}} is called within the 
> {{stop()}} sequence without checking whether the IO thread has actually 
> entered its event loop. The documentation of {{event_base_loopbreak()}} says 
> (http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html)
> {quote}
> Note also that event_base_loopexit(base,NULL) and event_base_loopbreak(base) 
> act differently when no event loop is running: loopexit schedules the next 
> instance of the event loop to stop right after the next round of callbacks 
> are run (as if it had been invoked with EVLOOP_ONCE) whereas loopbreak only 
> stops a currently running loop, and has no effect if the event loop isn’t 
> running.
> {quote}
> Attached is a patch (against the released 0.9.3 version of the codebase).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-3891) TNonblockingServer configured with more than one IO threads does not always return from serve() upon stop()

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

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

ASF GitHub Bot commented on THRIFT-3891:


Github user jeking3 commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1196#discussion_r102025979
  
--- Diff: lib/cpp/src/thrift/server/TNonblockingServer.cpp ---
@@ -1566,24 +1562,26 @@ void 
TNonblockingIOThread::setCurrentThreadHighPriority(bool value) {
 }
 
 void TNonblockingIOThread::run() {
-  if (eventBase_ == NULL)
+  if (eventBase_ == NULL) {
 registerEvents();
-
-  GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
-
+  }
   if (useHighPriority_) {
 setCurrentThreadHighPriority(true);
   }
 
-  // Run libevent engine, never returns, invokes calls to eventHandler
-  event_base_loop(eventBase_, 0);
+  if (eventBase_ != NULL)
+  {
+GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
+// Run libevent engine, never returns, invokes calls to eventHandler
+event_base_loop(eventBase_, 0);
 
-  if (useHighPriority_) {
-setCurrentThreadHighPriority(false);
-  }
+if (useHighPriority_) {
+  setCurrentThreadHighPriority(false);
+}
 
-  // cleans up our registered events
-  cleanupEvents();
+// cleans up our registered events
+cleanupEvents();
+  }
 
   GlobalOutput.printf("TNonblockingServer: IO thread #%d run() done!", 
number_);
--- End diff --

All of these messages were already in the implementation and they do not 
appear to have any discrimination as to the severity.  My assumption is they 
are all meant for "printf style debugging".


> TNonblockingServer configured with more than one IO threads does not always 
> return from serve() upon stop()
> ---
>
> Key: THRIFT-3891
> URL: https://issues.apache.org/jira/browse/THRIFT-3891
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.9.3
>Reporter: Buğra Gedik
>Assignee: James E. King, III
>Priority: Minor
> Attachments: patch.diff
>
>
> Using {{TNonblockingServer}}, when the number of IO threads is > 1, there is 
> race condition in which {{stop()}} does not properly unblock {{serve()}}. 
> The problem manifests itself when {{stop()}} is called (obviously from a 
> different thread) soon after {{serve()}}. 
> The core issue is that, {{event_base_loopbreak()}} is called within the 
> {{stop()}} sequence without checking whether the IO thread has actually 
> entered its event loop. The documentation of {{event_base_loopbreak()}} says 
> (http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html)
> {quote}
> Note also that event_base_loopexit(base,NULL) and event_base_loopbreak(base) 
> act differently when no event loop is running: loopexit schedules the next 
> instance of the event loop to stop right after the next round of callbacks 
> are run (as if it had been invoked with EVLOOP_ONCE) whereas loopbreak only 
> stops a currently running loop, and has no effect if the event loop isn’t 
> running.
> {quote}
> Attached is a patch (against the released 0.9.3 version of the codebase).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift pull request #1196: THRIFT-3891 TNonblockingServer configured with mo...

2017-02-20 Thread jeking3
Github user jeking3 commented on a diff in the pull request:

https://github.com/apache/thrift/pull/1196#discussion_r102025979
  
--- Diff: lib/cpp/src/thrift/server/TNonblockingServer.cpp ---
@@ -1566,24 +1562,26 @@ void 
TNonblockingIOThread::setCurrentThreadHighPriority(bool value) {
 }
 
 void TNonblockingIOThread::run() {
-  if (eventBase_ == NULL)
+  if (eventBase_ == NULL) {
 registerEvents();
-
-  GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
-
+  }
   if (useHighPriority_) {
 setCurrentThreadHighPriority(true);
   }
 
-  // Run libevent engine, never returns, invokes calls to eventHandler
-  event_base_loop(eventBase_, 0);
+  if (eventBase_ != NULL)
+  {
+GlobalOutput.printf("TNonblockingServer: IO thread #%d entering 
loop...", number_);
+// Run libevent engine, never returns, invokes calls to eventHandler
+event_base_loop(eventBase_, 0);
 
-  if (useHighPriority_) {
-setCurrentThreadHighPriority(false);
-  }
+if (useHighPriority_) {
+  setCurrentThreadHighPriority(false);
+}
 
-  // cleans up our registered events
-  cleanupEvents();
+// cleans up our registered events
+cleanupEvents();
+  }
 
   GlobalOutput.printf("TNonblockingServer: IO thread #%d run() done!", 
number_);
--- End diff --

All of these messages were already in the implementation and they do not 
appear to have any discrimination as to the severity.  My assumption is they 
are all meant for "printf style debugging".


---
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 #1191: THRIFT-3706 - Implement multiplexor.

2017-02-20 Thread jeking3
Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1191
  
Discussing with folks who created crosstest what we should do.  My 
preference is to have a single "multiplexed" protocol test that uses the binary 
protocol.  That will be the most widely used combo, and layering multiplexed on 
top of any other protocol does not test any new functionality of multiplexed; 
but it might catch strange interactions that we could miss if we don't test all 
of them.  I'm not fond of the explosion of the test matrix, doubling all the 
tests potentially.  

If you look in tests.json you will see protocols like "binary" and then 
"binary:accel", also "compact" and "compact:accelc".  This naming format 
basically says that if crosstest is testing "binary" it will match "binary" and 
"binary:accel", however the test wll be run once with a --protocol of "binary" 
and once with a --protocol of "accel".  I didn't want to add "binary:multi", 
"compact:multic", "json:multij", "header:multih" but that would be the logical 
extension of the pattern that already exists in crosstest.

So I'm working on a copy of your branch right now to simplify down to 
"multiplexed" and then I want to see it run in the crosstest locally.  Then 
once I hear back from some folks we can move forward if they are okay with the 
simplification.


---
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-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1191
  
Discussing with folks who created crosstest what we should do.  My 
preference is to have a single "multiplexed" protocol test that uses the binary 
protocol.  That will be the most widely used combo, and layering multiplexed on 
top of any other protocol does not test any new functionality of multiplexed; 
but it might catch strange interactions that we could miss if we don't test all 
of them.  I'm not fond of the explosion of the test matrix, doubling all the 
tests potentially.  

If you look in tests.json you will see protocols like "binary" and then 
"binary:accel", also "compact" and "compact:accelc".  This naming format 
basically says that if crosstest is testing "binary" it will match "binary" and 
"binary:accel", however the test wll be run once with a --protocol of "binary" 
and once with a --protocol of "accel".  I didn't want to add "binary:multi", 
"compact:multic", "json:multij", "header:multih" but that would be the logical 
extension of the pattern that already exists in crosstest.

So I'm working on a copy of your branch right now to simplify down to 
"multiplexed" and then I want to see it run in the crosstest locally.  Then 
once I hear back from some folks we can move forward if they are okay with the 
simplification.


> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (THRIFT-2504) TMultiplexedProcessor should allow registering default processor called if no service name is present

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-2504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III updated THRIFT-2504:
---
Summary: TMultiplexedProcessor should allow registering default processor 
called if no service name is present  (was: I want a server-side upgrade to 
MultiplexedProtocol to maintain backwards compatibility with older clients)

> TMultiplexedProcessor should allow registering default processor called if no 
> service name is present
> -
>
> Key: THRIFT-2504
> URL: https://issues.apache.org/jira/browse/THRIFT-2504
> Project: Thrift
>  Issue Type: Improvement
>  Components: Java - Library
>Reporter: Aleksey Pesternikov
>Assignee: James E. King, III
> Fix For: 0.11.0
>
>
> Multiplexed Protocol provides a number of benefits.  It would be useful for a 
> developer to be able to upgrade a server to use MultiplexedProtocol while 
> still allowing older clients using BinaryProtocol (or others?) to submit 
> their older requests and have them processed as they were before the upgrade, 
> or perhaps at the very least get an exception telling them to upgrade their 
> client.  Right now I believe the behavior of connecting this way is 
> undefined; correct me if I am wrong.
> In THRIFT-66 I handled this by using an unused byte in the VERSION_1 protocol 
> header which was always initialized to zero, so I made "channel zero" 
> something that the server side could implement.  In that solution however 
> both ends continued to use BinaryProtocol so it was easy to maintain 
> backwards compatibility.  In this case we have a server speaking 
> MultiplexedProtocol and a client speaking some other (BinaryProtocol, let's 
> say).  I'm curious what folks who worked on MultiplexedProtocol think about 
> this notion.
> This is one of those changes that would require every language to adopt and 
> be made part of the core requirements of MultiplexedProtocol if people feel 
> it is worth it.  The alternative is that the developer could continue to run 
> an older protocol server on the same port that throws an exception telling 
> the client to upgrade and what port to go to in the message.  This isn't 
> exactly firewall friendly because it needs a new port opened but it is a 
> possible solution.  Thoughts and suggestions welcome as to whether this is 
> worth doing or we should resolve as won't fix.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (THRIFT-2504) TMultiplexedProcessor should allow registering default processor called if no service name is present

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-2504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III updated THRIFT-2504:
---
Description: The original intention of this story was to allow an older 
client to connect to a multiplexed server and continue to work by having the 
multiplexed processor handle any request that does not contain a service name 
and colon prefix.  (was: Multiplexed Protocol provides a number of benefits.  
It would be useful for a developer to be able to upgrade a server to use 
MultiplexedProtocol while still allowing older clients using BinaryProtocol (or 
others?) to submit their older requests and have them processed as they were 
before the upgrade, or perhaps at the very least get an exception telling them 
to upgrade their client.  Right now I believe the behavior of connecting this 
way is undefined; correct me if I am wrong.

In THRIFT-66 I handled this by using an unused byte in the VERSION_1 protocol 
header which was always initialized to zero, so I made "channel zero" something 
that the server side could implement.  In that solution however both ends 
continued to use BinaryProtocol so it was easy to maintain backwards 
compatibility.  In this case we have a server speaking MultiplexedProtocol and 
a client speaking some other (BinaryProtocol, let's say).  I'm curious what 
folks who worked on MultiplexedProtocol think about this notion.

This is one of those changes that would require every language to adopt and be 
made part of the core requirements of MultiplexedProtocol if people feel it is 
worth it.  The alternative is that the developer could continue to run an older 
protocol server on the same port that throws an exception telling the client to 
upgrade and what port to go to in the message.  This isn't exactly firewall 
friendly because it needs a new port opened but it is a possible solution.  
Thoughts and suggestions welcome as to whether this is worth doing or we should 
resolve as won't fix.)

> TMultiplexedProcessor should allow registering default processor called if no 
> service name is present
> -
>
> Key: THRIFT-2504
> URL: https://issues.apache.org/jira/browse/THRIFT-2504
> Project: Thrift
>  Issue Type: Improvement
>  Components: Java - Library
>Reporter: Aleksey Pesternikov
>Assignee: James E. King, III
> Fix For: 0.11.0
>
>
> The original intention of this story was to allow an older client to connect 
> to a multiplexed server and continue to work by having the multiplexed 
> processor handle any request that does not contain a service name and colon 
> prefix.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-2504) TMultiplexedProcessor should allow registering default processor called if no service name is present

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

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

James E. King, III commented on THRIFT-2504:


After working on THRIFT-3706 I found that the Multiplexed Protocol wrapper is 
not compatible with older clients connecting.  It has its own protocol header 
that would not allow a binary client to connect and use the default processor.  
As such, this change offers no benefit since one must use multiplexed on either 
end.  This should be reverted.

> TMultiplexedProcessor should allow registering default processor called if no 
> service name is present
> -
>
> Key: THRIFT-2504
> URL: https://issues.apache.org/jira/browse/THRIFT-2504
> Project: Thrift
>  Issue Type: Improvement
>  Components: Java - Library
>Reporter: Aleksey Pesternikov
>Assignee: James E. King, III
> Fix For: 0.11.0
>
>
> The original intention of this story was to allow an older client to connect 
> to a multiplexed server and continue to work by having the multiplexed 
> processor handle any request that does not contain a service name and colon 
> prefix.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Reopened] (THRIFT-2504) TMultiplexedProcessor should allow registering default processor called if no service name is present

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-2504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III reopened THRIFT-2504:


> TMultiplexedProcessor should allow registering default processor called if no 
> service name is present
> -
>
> Key: THRIFT-2504
> URL: https://issues.apache.org/jira/browse/THRIFT-2504
> Project: Thrift
>  Issue Type: Improvement
>  Components: Java - Library
>Reporter: Aleksey Pesternikov
>Assignee: James E. King, III
> Fix For: 0.11.0
>
>
> The original intention of this story was to allow an older client to connect 
> to a multiplexed server and continue to work by having the multiplexed 
> processor handle any request that does not contain a service name and colon 
> prefix.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift issue #1191: THRIFT-3706 - Implement multiplexor.

2017-02-20 Thread jeking3
Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1191
  
Well I was hoping the multiplexed implementation was compatible with older 
clients using binary protocol but it is not.  I'm going to send you a PR that 
changes the Java Server and the c_glib client to work with "multiplexed" as a 
protocol; we will use binary protocol under all the multiplexed protocol tests. 
 I added support in the java test server to have a second registered processor. 
 It would be nice to augment c_glib to test against "Second" as well as 
"ThriftTest" so that we're actually testing the multiplexing part.


---
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-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1191
  
Well I was hoping the multiplexed implementation was compatible with older 
clients using binary protocol but it is not.  I'm going to send you a PR that 
changes the Java Server and the c_glib client to work with "multiplexed" as a 
protocol; we will use binary protocol under all the multiplexed protocol tests. 
 I added support in the java test server to have a second registered processor. 
 It would be nice to augment c_glib to test against "Second" as well as 
"ThriftTest" so that we're actually testing the multiplexing part.


> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift issue #1191: THRIFT-3706 - Implement multiplexor.

2017-02-20 Thread jeking3
Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1191
  
@gadLinux for some reason I cannot send you a PR for this one like I had 
before, possibly because I rebased on master.  If you cherry-pick 
b2e4e1464b74733ccf78afd68abbe94b92aec96a from my repository it will give you 
the changes you should need.


---
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-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1191
  
@gadLinux for some reason I cannot send you a PR for this one like I had 
before, possibly because I rebased on master.  If you cherry-pick 
b2e4e1464b74733ccf78afd68abbe94b92aec96a from my repository it will give you 
the changes you should need.


> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


Github user gadLinux commented on the issue:

https://github.com/apache/thrift/pull/1191
  
I cannot do it since this commit is in thrift main outside master. So I 
cannot see it. You cannot merge because this branch is still not merged so it's 
still in my fork. You can merge and then apply the patch you want. Otherwise 
the only way I think is to make a patch.


> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift issue #1191: THRIFT-3706 - Implement multiplexor.

2017-02-20 Thread gadLinux
Github user gadLinux commented on the issue:

https://github.com/apache/thrift/pull/1191
  
I cannot do it since this commit is in thrift main outside master. So I 
cannot see it. You cannot merge because this branch is still not merged so it's 
still in my fork. You can merge and then apply the patch you want. Otherwise 
the only way I think is to make a patch.


---
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 #1199: THRIFT-3706 - Implement multiplex protocol and cr...

2017-02-20 Thread jeking3
GitHub user jeking3 opened a pull request:

https://github.com/apache/thrift/pull/1199

THRIFT-3706 - Implement multiplex protocol and crosstest for c_glib client, 
java server

I added one commit to https://github.com/apache/thrift/pull/1191 to make it 
work with crosstest, and rebased against master.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/jeking3/thrift thrift-3706

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/thrift/pull/1199.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 #1199


commit 61d8cb372e0d00f5d509d0bf440673ddb1d23642
Author: Gonzalo Aguilar Delgado 
Date:   2016-03-04T12:16:22Z

Implement multiplexed protocol

commit d62dfbbff6f0d9f162c43793958cba9fe9834deb
Author: Gonzalo Aguilar Delgado 
Date:   2016-03-05T00:21:27Z

Implement protocol multiplexor. For me there are a pair of things missing.
Implement protocol decorator.

commit 86994fd0e9cd08457c37b66e723176a31703bdcb
Author: Gonzalo Aguilar Delgado 
Date:   2016-03-28T23:08:52Z

Fix protocol decorator cause it failed to register list cls->read_list_end 
on thrift_protocol_decorator_class_init
Change log to debug

commit fc70bef51faa0e9acf1dc284b8bd4556853259cf
Author: Gonzalo Aguilar Delgado 
Date:   2017-02-15T09:10:05Z

Add Multiplexed protocol to the test

commit 88a7d134f19f84f8ba98d5a00251a8c248b40a00
Author: Gonzalo Aguilar Delgado 
Date:   2017-02-15T10:54:30Z

Add multiplexed binary tests against java

commit c2579a1b15b85eb6ee72b9778ba96d00ff7cdc17
Author: James E. King, III 
Date:   2017-02-20T16:49:07Z

simplify protocol for multiplexed crosstest and add a second processor on 
the java server - this will also run in Travis CI because I already added 
support for multiplexed protocol in jobs #1 and #2




---
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-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


GitHub user jeking3 opened a pull request:

https://github.com/apache/thrift/pull/1199

THRIFT-3706 - Implement multiplex protocol and crosstest for c_glib client, 
java server

I added one commit to https://github.com/apache/thrift/pull/1191 to make it 
work with crosstest, and rebased against master.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/jeking3/thrift thrift-3706

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/thrift/pull/1199.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 #1199


commit 61d8cb372e0d00f5d509d0bf440673ddb1d23642
Author: Gonzalo Aguilar Delgado 
Date:   2016-03-04T12:16:22Z

Implement multiplexed protocol

commit d62dfbbff6f0d9f162c43793958cba9fe9834deb
Author: Gonzalo Aguilar Delgado 
Date:   2016-03-05T00:21:27Z

Implement protocol multiplexor. For me there are a pair of things missing.
Implement protocol decorator.

commit 86994fd0e9cd08457c37b66e723176a31703bdcb
Author: Gonzalo Aguilar Delgado 
Date:   2016-03-28T23:08:52Z

Fix protocol decorator cause it failed to register list cls->read_list_end 
on thrift_protocol_decorator_class_init
Change log to debug

commit fc70bef51faa0e9acf1dc284b8bd4556853259cf
Author: Gonzalo Aguilar Delgado 
Date:   2017-02-15T09:10:05Z

Add Multiplexed protocol to the test

commit 88a7d134f19f84f8ba98d5a00251a8c248b40a00
Author: Gonzalo Aguilar Delgado 
Date:   2017-02-15T10:54:30Z

Add multiplexed binary tests against java

commit c2579a1b15b85eb6ee72b9778ba96d00ff7cdc17
Author: James E. King, III 
Date:   2017-02-20T16:49:07Z

simplify protocol for multiplexed crosstest and add a second processor on 
the java server - this will also run in Travis CI because I already added 
support for multiplexed protocol in jobs #1 and #2




> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1191
  
Weird, I'm not exactly sure what happened here, but I submitted a new PR 
rebased against master incorporating your changes here and I added one more 
commit - see PR #1199.  If that passes I'll squash my commit into yours down to 
a single commit so you show up as the author of the pull request into the 
master when I merge it in.


> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift issue #1191: THRIFT-3706 - Implement multiplexor.

2017-02-20 Thread jeking3
Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1191
  
Weird, I'm not exactly sure what happened here, but I submitted a new PR 
rebased against master incorporating your changes here and I added one more 
commit - see PR #1199.  If that passes I'll squash my commit into yours down to 
a single commit so you show up as the author of the pull request into the 
master when I merge it in.


---
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-1677) MinGW support broken

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-1677?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III reassigned THRIFT-1677:
--

Assignee: James E. King, III

> MinGW support broken
> 
>
> Key: THRIFT-1677
> URL: https://issues.apache.org/jira/browse/THRIFT-1677
> Project: Thrift
>  Issue Type: Bug
>  Components: Build Process
>Affects Versions: 0.9
> Environment: Windows 7, MinGW-W64 4.5.3 20110207
>Reporter: Josh D
>Assignee: James E. King, III
>
> It appears that there's been a lot of great work towards getting Apache to 
> work with Visual Studio that have broken compatability with MinGW.  There are 
> really too many issues, to list them all.  In the .8 release, winsdkver.h is 
> inlcuded (fixed on trunk).  Trunk has dozens of issues, that I haven't been 
> able to fully resolve.  Mainly it's checking if _WIN32 is defined and 
> bypassing code that should be used within MinGW.  For example, using 
> _chsize_s instead of ftruncate or redefining POSIX structures/functions like 
> gettimeofday, which are present in MinGW.  It seems like most of these issues 
> could be resolved with autoconf.  Also, from a 64-bit MinGW perspective, you 
> C-style cast pointers to "int" which isn't permissible in more modern 
> versions of gcc.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (THRIFT-1677) MinGW support broken

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-1677?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III resolved THRIFT-1677.

   Resolution: Duplicate
Fix Version/s: 0.11.0

See https://github.com/apache/thrift/blob/master/build/cmake/README-MSYS2.md 
for more details.

> MinGW support broken
> 
>
> Key: THRIFT-1677
> URL: https://issues.apache.org/jira/browse/THRIFT-1677
> Project: Thrift
>  Issue Type: Bug
>  Components: Build Process
>Affects Versions: 0.9
> Environment: Windows 7, MinGW-W64 4.5.3 20110207
>Reporter: Josh D
>Assignee: James E. King, III
> Fix For: 0.11.0
>
>
> It appears that there's been a lot of great work towards getting Apache to 
> work with Visual Studio that have broken compatability with MinGW.  There are 
> really too many issues, to list them all.  In the .8 release, winsdkver.h is 
> inlcuded (fixed on trunk).  Trunk has dozens of issues, that I haven't been 
> able to fully resolve.  Mainly it's checking if _WIN32 is defined and 
> bypassing code that should be used within MinGW.  For example, using 
> _chsize_s instead of ftruncate or redefining POSIX structures/functions like 
> gettimeofday, which are present in MinGW.  It seems like most of these issues 
> could be resolved with autoconf.  Also, from a 64-bit MinGW perspective, you 
> C-style cast pointers to "int" which isn't permissible in more modern 
> versions of gcc.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (THRIFT-1145) Implement Thrift runtime for C with ASF compatible dependencies

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-1145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III updated THRIFT-1145:
---
Priority: Minor  (was: Major)

> Implement Thrift runtime for C with ASF compatible dependencies
> ---
>
> Key: THRIFT-1145
> URL: https://issues.apache.org/jira/browse/THRIFT-1145
> Project: Thrift
>  Issue Type: New Feature
>  Components: C glib - Compiler, Compiler (General)
>Reporter: Carl Steinbach
>Priority: Minor
>
> THRIFT-582 provided a C runtime for Thrift that depends heavily on the GLib 
> library. The major advantage of using GLib is that it's cross platform, so 
> the resulting runtime works on both Windows and Linux. However, a big 
> drawback is that GLib has an LGPL license, which bars a lot of people from 
> using it directly or indirectly.
> This JIRA ticket covers the task of writing an alternative C Thrift runtime 
> that depends on the Apache Portable Runtime library instead of GLib. It 
> appears that the major hurdle we need to overcome is APRs lack of an object 
> system (c_glib takes advantage of GObject). I think the same problem was 
> solved during the implementation of Avro's C runtime, and perhaps the struct 
> and inheritance macros that are used in that code could be reused here (and 
> maybe later even contributed back to APR).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (THRIFT-1145) Implement Thrift runtime for C with ASF compatible dependencies

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-1145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III updated THRIFT-1145:
---
Component/s: (was: C glib - Compiler)
 Wish List

> Implement Thrift runtime for C with ASF compatible dependencies
> ---
>
> Key: THRIFT-1145
> URL: https://issues.apache.org/jira/browse/THRIFT-1145
> Project: Thrift
>  Issue Type: New Feature
>  Components: Compiler (General), Wish List
>Reporter: Carl Steinbach
>Priority: Minor
>
> THRIFT-582 provided a C runtime for Thrift that depends heavily on the GLib 
> library. The major advantage of using GLib is that it's cross platform, so 
> the resulting runtime works on both Windows and Linux. However, a big 
> drawback is that GLib has an LGPL license, which bars a lot of people from 
> using it directly or indirectly.
> This JIRA ticket covers the task of writing an alternative C Thrift runtime 
> that depends on the Apache Portable Runtime library instead of GLib. It 
> appears that the major hurdle we need to overcome is APRs lack of an object 
> system (c_glib takes advantage of GObject). I think the same problem was 
> solved during the implementation of Avro's C runtime, and perhaps the struct 
> and inheritance macros that are used in that code could be reused here (and 
> maybe later even contributed back to APR).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-1145) Implement Thrift runtime for C with ASF compatible dependencies

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

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

James E. King, III commented on THRIFT-1145:


I reduced this to Minor Priority.  I like the notion of a pure C implementation 
using APR.  There doesn't seem to be much call for it based on response to this 
ticket however.

> Implement Thrift runtime for C with ASF compatible dependencies
> ---
>
> Key: THRIFT-1145
> URL: https://issues.apache.org/jira/browse/THRIFT-1145
> Project: Thrift
>  Issue Type: New Feature
>  Components: Compiler (General), Wish List
>Reporter: Carl Steinbach
>Priority: Minor
>
> THRIFT-582 provided a C runtime for Thrift that depends heavily on the GLib 
> library. The major advantage of using GLib is that it's cross platform, so 
> the resulting runtime works on both Windows and Linux. However, a big 
> drawback is that GLib has an LGPL license, which bars a lot of people from 
> using it directly or indirectly.
> This JIRA ticket covers the task of writing an alternative C Thrift runtime 
> that depends on the Apache Portable Runtime library instead of GLib. It 
> appears that the major hurdle we need to overcome is APRs lack of an object 
> system (c_glib takes advantage of GObject). I think the same problem was 
> solved during the implementation of Avro's C runtime, and perhaps the struct 
> and inheritance macros that are used in that code could be reused here (and 
> maybe later even contributed back to APR).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-3620) Cleanup and consolidate Thrift* jenkins jobs.

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

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

James E. King, III commented on THRIFT-3620:


Hi [~jsirois], since all Thrift CI biulds go through Travis CI and Appveyor 
now, is this still relevant?

> Cleanup and consolidate Thrift* jenkins jobs.
> -
>
> Key: THRIFT-3620
> URL: https://issues.apache.org/jira/browse/THRIFT-3620
> Project: Thrift
>  Issue Type: Task
>  Components: Test Suite
>Reporter: John Sirois
>Assignee: John Sirois
>
> I spent some time resurrecting the 
> [Thrift-precommit|https://builds.apache.org/job/Thrift-precommit/] job which 
> vets pull-requests to use the pool of docker slaves using a dockerized CI 
> with guidance from [~jfarrell].  The remaining crop of Thrift* jobs should be 
> culled and converted as appropriate.
> Currently we have the jobs 
> [here|https://builds.apache.org/view/S-Z/view/Thrift/]:
> {noformat}
> $ curl --netrc -sS https://builds.apache.org/view/S-Z/view/Thrift/config.xml 
> | xmllint -xpath "//jobNames" - | grep "" | cut -d'>' -f2 | cut -d'<' 
> -f1
> Thrift
> Thrift-all
> Thrift-Compiler-Linux64
> Thrift-Compiler-Windows
> Thrift-env
> Thrift-env-Windows
> Thrift-Test
> Thrift-Windows
> {noformat}
> Of those, [Thrift-env|https://builds.apache.org/job/Thrift-env], 
> [Thrift-env-Windows|https://builds.apache.org/job/Thrift-env-Windows] and 
> [Thrift-Windows|https://builds.apache.org/job/Thrift-Windows] are all 
> disabled and [Thrift|https://builds.apache.org/job/Thrift] and 
> [Thrift-Compiler-Linux64|https://builds.apache.org/job/Thrift-Compiler-Linux64]
>  seem to be unused based on last run dates.  This leaves the following active 
> jobs fwict:
> * [|https://builds.apache.org/job/Thrift-all]
> * [|https://builds.apache.org/job/Thrift-Compiler-Windows]
> * [|https://builds.apache.org/job/Thrift-precommit]
> Of these {{Thrift-all}} is broken in a known-way, it really needs to be 
> converted to use a Dockerized build like {{Thrift-precommit}} to be insulated 
> from the vagaries of the underlying worker machines.
> I propose deltion of all disabled (3) and inactive (2) jobs listed above and 
> conversion of {{Thrift-all}} to a Dockerized CI job to guard master with.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-2208) Thrift package for chocolatey

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

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

James E. King, III commented on THRIFT-2208:


Someone uploaded the 0.9.3 compiler only here:

https://chocolatey.org/packages/thrift

> Thrift package for chocolatey
> -
>
> Key: THRIFT-2208
> URL: https://issues.apache.org/jira/browse/THRIFT-2208
> Project: Thrift
>  Issue Type: Wish
>  Components: Build Process
>Reporter: Jake Farrell
>Priority: Minor
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (THRIFT-3042) Dockerfiles fail to build

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-3042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III resolved THRIFT-3042.

   Resolution: Fixed
 Assignee: James E. King, III  (was: Jake Farrell)
Fix Version/s: (was: 1.0)
   0.10.0

The docker files for ubuntu and debian have been building well for a while now. 
 I'm going to mark this resolved.

> Dockerfiles fail to build
> -
>
> Key: THRIFT-3042
> URL: https://issues.apache.org/jira/browse/THRIFT-3042
> Project: Thrift
>  Issue Type: Bug
>  Components: Build Process
>Affects Versions: 0.9.3
> Environment: ubuntu 14.04 docker host
>Reporter: Randy Abernethy
>Assignee: James E. King, III
>Priority: Minor
> Fix For: 0.10.0
>
> Attachments: thrift-3042-ubuntu.patch
>
>
> h3.  Docker build on build/docker/ubuntu/Dockerfile fails on Haxe setup. e.g.
> docker@ubuntu:~$ docker build -t thrift thrift/build/docker/ubuntu
> ...
> haxe-3.1.3/std/Xml.hx
> Uncaught exception - load.c(237) : Failed to load library : std.ndll 
> (std.ndll: cannot open shared object file: No such file or directory)
> INFO[0011] The command [/bin/sh -c apt-get install -y libneko0 && mkdir 
> -p /tmp/haxe /usr/lib/haxe && curl 
> http://haxe.org/website-content/downloads/3,1,3/downloads/haxe-3.1.3-linux64.tar.gz
>  -o /tmp/haxe/haxe-3.1.3-linux64.tar.gz && tar -xvzf 
> /tmp/haxe/haxe-3.1.3-linux64.tar.gz -C /usr/lib/haxe --strip-components=1 &&  
>ln -s /usr/lib/haxe/haxe /usr/bin/haxe && ln -s /usr/lib/haxe/haxelib 
> /usr/bin/haxelib && ln -s /usr/lib/libneko.so.0 /usr/lib/libneko.so &&
>  mkdir -p /usr/lib/haxe/lib  && chmod -R 777 /usr/lib/haxe/lib && 
> haxelib setup /usr/lib/haxe/lib && haxelib install hxcpp] returned a 
> non-zero code: 1 
> h3. Docker build on build/docker/centosDockerfile fails on Boost build. e.g.
> docker@ubuntu:~$ docker build -t thrift thrift/build/docker/centos
> ...
> /tmp/boost/boost_1_55_0/tools/build/v2/tools/gcc.jam:148: in gcc.init from 
> module gcc
> error: toolset gcc initialization:
> error: no command provided, default command 'g++' not found
> error: initialized from project-config.jam:12
> /tmp/boost/boost_1_55_0/tools/build/v2/build/toolset.jam:41: in toolset.using 
> from module toolset
> /tmp/boost/boost_1_55_0/tools/build/v2/build/project.jam:1007: in using from 
> module project-rules
> project-config.jam:12: in modules.load from module project-config
> /tmp/boost/boost_1_55_0/tools/build/v2/build-system.jam:249: in load-config 
> from module build-system
> /tmp/boost/boost_1_55_0/tools/build/v2/build-system.jam:412: in 
> load-configuration-files from module build-system
> /tmp/boost/boost_1_55_0/tools/build/v2/build-system.jam:524: in load from 
> module build-system
> /tmp/boost/boost_1_55_0/tools/build/v2/kernel/modules.jam:289: in import from 
> module modules
> /tmp/boost/boost_1_55_0/tools/build/v2/kernel/bootstrap.jam:139: in 
> boost-build from module
> /tmp/boost/boost_1_55_0/boost-build.jam:17: in module scope from module
> INFO[0264] The command [/bin/sh -c mkdir -p /tmp/boost && curl -SL 
> "http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz";
>  | tar -xzC /tmp/boost && cd /tmp/boost/boost_1_55_0 && 
> ./bootstrap.sh  && ./b2 install && cd $HOME] returned a non-zero 
> code: 1 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (THRIFT-3250) Apache Thrift should use registered media types with HTTP

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-3250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III updated THRIFT-3250:
---
Component/s: Dart - Library
 .NETCore - Library

> Apache Thrift should use registered media types with HTTP
> -
>
> Key: THRIFT-3250
> URL: https://issues.apache.org/jira/browse/THRIFT-3250
> Project: Thrift
>  Issue Type: Improvement
>  Components: .NETCore - Library, AS3 - Library, C# - Library, C++ - 
> Library, Cocoa - Library, D - Library, Dart - Library, Delphi - Library, 
> Erlang - Library, Go - Library, Haskell - Library, Haxe - Library, Java - 
> Library, JavaME - Library, JavaScript - Library, Node.js - Library, Perl - 
> Library, PHP - Library, Python - Library, Ruby - Library
>Affects Versions: 0.9.3
> Environment: all
>Reporter: Randy Abernethy
>Assignee: Randy Abernethy
>Priority: Minor
>
> Now that we have registered media types:
> - application/vnd.apache.thrift.binary
> - application/vnd.apache.thrift.compact
> - application/vnd.apache.thrift.json
> We should use them exclusively, replacing the old x-thrift. I suggest 
> TProtocol gain a getMediaType() method which returns the correct media type 
> when invoked on a concrete protocol (e.g. TBinaryProtocol.getMediaType() 
> would return "application/vnd.apache.thrift.binary".
> HTTP oriented code can then invoke the getMediaType() method of the protocol 
> to discover the correct media type to set in HTTP headers. 
> Thoughts?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-3250) Apache Thrift should use registered media types with HTTP

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

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

James E. King, III commented on THRIFT-3250:


Is there a way to do this that's backwards compatible?  For example the client 
always initiates a request and it can indicate it accepts a list of response 
types.  Right now {{THttpClient.java}} has:
{noformat}
  post.setHeader("Accept", "application/x-thrift");
{noformat}

If this was changed to allow application/vnd.apache.thrift.*, then the server 
side could look at the "Accept" field and if the client accepts it, it can use 
one of the new fields; or for a poorly written older client that does not use 
the Accept header at all, it would default to current behavior.

> Apache Thrift should use registered media types with HTTP
> -
>
> Key: THRIFT-3250
> URL: https://issues.apache.org/jira/browse/THRIFT-3250
> Project: Thrift
>  Issue Type: Improvement
>  Components: .NETCore - Library, AS3 - Library, C# - Library, C++ - 
> Library, Cocoa - Library, D - Library, Dart - Library, Delphi - Library, 
> Erlang - Library, Go - Library, Haskell - Library, Haxe - Library, Java - 
> Library, JavaME - Library, JavaScript - Library, Node.js - Library, Perl - 
> Library, PHP - Library, Python - Library, Ruby - Library
>Affects Versions: 0.9.3
> Environment: all
>Reporter: Randy Abernethy
>Assignee: Randy Abernethy
>Priority: Minor
>
> Now that we have registered media types:
> - application/vnd.apache.thrift.binary
> - application/vnd.apache.thrift.compact
> - application/vnd.apache.thrift.json
> We should use them exclusively, replacing the old x-thrift. I suggest 
> TProtocol gain a getMediaType() method which returns the correct media type 
> when invoked on a concrete protocol (e.g. TBinaryProtocol.getMediaType() 
> would return "application/vnd.apache.thrift.binary".
> HTTP oriented code can then invoke the getMediaType() method of the protocol 
> to discover the correct media type to set in HTTP headers. 
> Thoughts?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-2945) Implement support for Rust language

2017-02-20 Thread Tony Przygienda (JIRA)

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

Tony Przygienda commented on THRIFT-2945:
-

OK, we're in agreement., I'll get to it & come back when done. Busy right now 
upstreaming couple other things. Give me couple days ... 

I'll make an example for the enum macro once I'm @ it. Problem is that match 
clauses cannot be generated by macros in Rust  so you have to provide a macro 
already implementing the match clause calling a callback function/macro given, 
especially in case of unions ... 

--- tony 

> Implement support for Rust language
> ---
>
> Key: THRIFT-2945
> URL: https://issues.apache.org/jira/browse/THRIFT-2945
> Project: Thrift
>  Issue Type: New Feature
>  Components: Rust - Compiler, Rust - Library
>Reporter: Maksim Golov
>Assignee: Allen George
> Fix For: 0.11.0
>
>
> Work on implementing support for Rust is in progress: 
> https://github.com/maximg/thrift by Simon Génier and myself.
> It will probably take quite some time to complete. Please keep us updated if 
> there are changes related to our work.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift issue #1199: THRIFT-3706 - Implement multiplex protocol and crosstest...

2017-02-20 Thread jeking3
Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1199
  
The failure here is environmental (write error).  I'll squash and merge.


---
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-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1199
  
The failure here is environmental (write error).  I'll squash and merge.


> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift pull request #1191: THRIFT-3706 - Implement multiplexor.

2017-02-20 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1191


---
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 #1199: THRIFT-3706 - Implement multiplex protocol and cr...

2017-02-20 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1199


---
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-3706) There's no support for Multiplexed protocol on c_glib library

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-3706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III resolved THRIFT-3706.

   Resolution: Fixed
Fix Version/s: 0.11.0

Committed - thanks!

> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
> Fix For: 0.11.0
>
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1191


> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
> Fix For: 0.11.0
>
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-3706) There's no support for Multiplexed protocol on c_glib library

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

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

ASF GitHub Bot commented on THRIFT-3706:


Github user asfgit closed the pull request at:

https://github.com/apache/thrift/pull/1199


> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
> Fix For: 0.11.0
>
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] thrift issue #1196: THRIFT-3891 TNonblockingServer configured with more than...

2017-02-20 Thread jeking3
Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1196
  
Once someone has a chance to approve the changes I can merge.


---
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-3891) TNonblockingServer configured with more than one IO threads does not always return from serve() upon stop()

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

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

ASF GitHub Bot commented on THRIFT-3891:


Github user jeking3 commented on the issue:

https://github.com/apache/thrift/pull/1196
  
Once someone has a chance to approve the changes I can merge.


> TNonblockingServer configured with more than one IO threads does not always 
> return from serve() upon stop()
> ---
>
> Key: THRIFT-3891
> URL: https://issues.apache.org/jira/browse/THRIFT-3891
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.9.3
>Reporter: Buğra Gedik
>Assignee: James E. King, III
>Priority: Minor
> Attachments: patch.diff
>
>
> Using {{TNonblockingServer}}, when the number of IO threads is > 1, there is 
> race condition in which {{stop()}} does not properly unblock {{serve()}}. 
> The problem manifests itself when {{stop()}} is called (obviously from a 
> different thread) soon after {{serve()}}. 
> The core issue is that, {{event_base_loopbreak()}} is called within the 
> {{stop()}} sequence without checking whether the IO thread has actually 
> entered its event loop. The documentation of {{event_base_loopbreak()}} says 
> (http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html)
> {quote}
> Note also that event_base_loopexit(base,NULL) and event_base_loopbreak(base) 
> act differently when no event loop is running: loopexit schedules the next 
> instance of the event loop to stop right after the next round of callbacks 
> are run (as if it had been invoked with EVLOOP_ONCE) whereas loopbreak only 
> stops a currently running loop, and has no effect if the event loop isn’t 
> running.
> {quote}
> Attached is a patch (against the released 0.9.3 version of the codebase).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-3250) Apache Thrift should use registered media types with HTTP

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

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

James E. King, III commented on THRIFT-3250:


I tried implemented the suggested way in the description however protocols 
consume transports, and in perl THttpClient is a TTransport.  If the media type 
is in the TProtocol then it isn't available in the transport's code to access.  
It might make more sense to require another argument to Http client 
implementations in each language and have the consuming application tell it 
what media type to use for "Accept".  Similarly, it probably makes sense to 
allow the consuming application specify the "User-Agent" and perhaps also the 
"Content-Type" so that a newer client can be constructed to work with an older 
server.  My suggestion above allows an older client to connect to a newer 
server.

> Apache Thrift should use registered media types with HTTP
> -
>
> Key: THRIFT-3250
> URL: https://issues.apache.org/jira/browse/THRIFT-3250
> Project: Thrift
>  Issue Type: Improvement
>  Components: .NETCore - Library, AS3 - Library, C# - Library, C++ - 
> Library, Cocoa - Library, D - Library, Dart - Library, Delphi - Library, 
> Erlang - Library, Go - Library, Haskell - Library, Haxe - Library, Java - 
> Library, JavaME - Library, JavaScript - Library, Node.js - Library, Perl - 
> Library, PHP - Library, Python - Library, Ruby - Library
>Affects Versions: 0.9.3
> Environment: all
>Reporter: Randy Abernethy
>Assignee: Randy Abernethy
>Priority: Minor
>
> Now that we have registered media types:
> - application/vnd.apache.thrift.binary
> - application/vnd.apache.thrift.compact
> - application/vnd.apache.thrift.json
> We should use them exclusively, replacing the old x-thrift. I suggest 
> TProtocol gain a getMediaType() method which returns the correct media type 
> when invoked on a concrete protocol (e.g. TBinaryProtocol.getMediaType() 
> would return "application/vnd.apache.thrift.binary".
> HTTP oriented code can then invoke the getMediaType() method of the protocol 
> to discover the correct media type to set in HTTP headers. 
> Thoughts?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Issue Comment Deleted] (THRIFT-2504) TMultiplexedProcessor should allow registering default processor called if no service name is present

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-2504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III updated THRIFT-2504:
---
Comment: was deleted

(was: After working on THRIFT-3706 I found that the Multiplexed Protocol 
wrapper is not compatible with older clients connecting.  It has its own 
protocol header that would not allow a binary client to connect and use the 
default processor.  As such, this change offers no benefit since one must use 
multiplexed on either end.  This should be reverted.)

> TMultiplexedProcessor should allow registering default processor called if no 
> service name is present
> -
>
> Key: THRIFT-2504
> URL: https://issues.apache.org/jira/browse/THRIFT-2504
> Project: Thrift
>  Issue Type: Improvement
>  Components: Java - Library
>Reporter: Aleksey Pesternikov
>Assignee: James E. King, III
> Fix For: 0.11.0
>
>
> The original intention of this story was to allow an older client to connect 
> to a multiplexed server and continue to work by having the multiplexed 
> processor handle any request that does not contain a service name and colon 
> prefix.  Given that multiplex is just a decorated protocol where the service 
> name is prepended to the call name, it should be possible to connect a 
> standard binary protocol client to a multiplex protocol server that treats a 
> non-multiplex call (one without the colon separator) as a 
> backwards-compatible call so older clients can continue to connect to newer 
> servers.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (THRIFT-2504) TMultiplexedProcessor should allow registering default processor called if no service name is present

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-2504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III updated THRIFT-2504:
---
Description: The original intention of this story was to allow an older 
client to connect to a multiplexed server and continue to work by having the 
multiplexed processor handle any request that does not contain a service name 
and colon prefix.  Given that multiplex is just a decorated protocol where the 
service name is prepended to the call name, it should be possible to connect a 
standard binary protocol client to a multiplex protocol server that treats a 
non-multiplex call (one without the colon separator) as a backwards-compatible 
call so older clients can continue to connect to newer servers.  (was: The 
original intention of this story was to allow an older client to connect to a 
multiplexed server and continue to work by having the multiplexed processor 
handle any request that does not contain a service name and colon prefix.)

> TMultiplexedProcessor should allow registering default processor called if no 
> service name is present
> -
>
> Key: THRIFT-2504
> URL: https://issues.apache.org/jira/browse/THRIFT-2504
> Project: Thrift
>  Issue Type: Improvement
>  Components: Java - Library
>Reporter: Aleksey Pesternikov
>Assignee: James E. King, III
> Fix For: 0.11.0
>
>
> The original intention of this story was to allow an older client to connect 
> to a multiplexed server and continue to work by having the multiplexed 
> processor handle any request that does not contain a service name and colon 
> prefix.  Given that multiplex is just a decorated protocol where the service 
> name is prepended to the call name, it should be possible to connect a 
> standard binary protocol client to a multiplex protocol server that treats a 
> non-multiplex call (one without the colon separator) as a 
> backwards-compatible call so older clients can continue to connect to newer 
> servers.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Assigned] (THRIFT-3706) There's no support for Multiplexed protocol on c_glib library

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-3706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III reassigned THRIFT-3706:
--

Assignee: James E. King, III  (was: Gonzalo Aguilar)

> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: James E. King, III
> Fix For: 0.11.0
>
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Reopened] (THRIFT-3706) There's no support for Multiplexed protocol on c_glib library

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-3706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III reopened THRIFT-3706:


I am reopening this to finish the interop work with older clients.  It should 
be possible for a non-multiplexed client using the same protocol as the 
multiplexed processor on the server side to interop.

> There's no support for Multiplexed protocol on c_glib library
> -
>
> Key: THRIFT-3706
> URL: https://issues.apache.org/jira/browse/THRIFT-3706
> Project: Thrift
>  Issue Type: Improvement
>  Components: C glib - Library
>Affects Versions: 0.9.3
>Reporter: Gonzalo Aguilar
>Assignee: Gonzalo Aguilar
> Fix For: 0.11.0
>
>
> There's no multiplexed protocol. 
> I will implement the same way it's done in Java an C++



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (THRIFT-4096) Remove unnecessary duplication of build/test effort in Travis CI

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-4096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III resolved THRIFT-4096.

Resolution: Duplicate

Duping this to an issue I opened previously.

> Remove unnecessary duplication of build/test effort in Travis CI
> 
>
> Key: THRIFT-4096
> URL: https://issues.apache.org/jira/browse/THRIFT-4096
> Project: Thrift
>  Issue Type: Improvement
>  Components: Build Process
>Affects Versions: 0.11.0
> Environment: Travis CI
>Reporter: James E. King, III
>Assignee: Jake Farrell
>
> Build jobs #1 and #3 use ubuntu.
> Build jobs #2 and #4 use debian.
> Both of these are long running jobs that run "make cross" and test the same 
> thing twice.  Further, ubuntu is a derivative of debian which makes the 
> testing somewhat more duplicated.  There are also build jobs like #23 which 
> build everything yet again in ubuntu and produce debian packages, so we build 
> the same thing many times in Travis CI.   Recently we had the number of build 
> jobs limited because we were using too much resource from Apache's Travis CI 
> slave pool so we should be good citizens and try to pare down unnecessary 
> build jobs while maintaining quality.
> We should discuss removing the ubuntu jobs and docker environment in favor of 
> the distribution it originates from and whether that makes sense.  In 
> addition, there has been renewed interest from the Fedora project to build 
> thrift and I think we would get broader adoption if we had a Fedora docker 
> image that builds thrift and runs make cross.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Closed] (THRIFT-4096) Remove unnecessary duplication of build/test effort in Travis CI

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

 [ 
https://issues.apache.org/jira/browse/THRIFT-4096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III closed THRIFT-4096.
--

> Remove unnecessary duplication of build/test effort in Travis CI
> 
>
> Key: THRIFT-4096
> URL: https://issues.apache.org/jira/browse/THRIFT-4096
> Project: Thrift
>  Issue Type: Improvement
>  Components: Build Process
>Affects Versions: 0.11.0
> Environment: Travis CI
>Reporter: James E. King, III
>Assignee: Jake Farrell
>
> Build jobs #1 and #3 use ubuntu.
> Build jobs #2 and #4 use debian.
> Both of these are long running jobs that run "make cross" and test the same 
> thing twice.  Further, ubuntu is a derivative of debian which makes the 
> testing somewhat more duplicated.  There are also build jobs like #23 which 
> build everything yet again in ubuntu and produce debian packages, so we build 
> the same thing many times in Travis CI.   Recently we had the number of build 
> jobs limited because we were using too much resource from Apache's Travis CI 
> slave pool so we should be good citizens and try to pare down unnecessary 
> build jobs while maintaining quality.
> We should discuss removing the ubuntu jobs and docker environment in favor of 
> the distribution it originates from and whether that makes sense.  In 
> addition, there has been renewed interest from the Fedora project to build 
> thrift and I think we would get broader adoption if we had a Fedora docker 
> image that builds thrift and runs make cross.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (THRIFT-4097) Support for Fedora distribution - packaging and CI builds

2017-02-20 Thread James E. King, III (JIRA)
James E. King, III created THRIFT-4097:
--

 Summary: Support for Fedora distribution - packaging and CI builds
 Key: THRIFT-4097
 URL: https://issues.apache.org/jira/browse/THRIFT-4097
 Project: Thrift
  Issue Type: Wish
  Components: Build Process, Wish List
Affects Versions: 0.10.0
Reporter: James E. King, III
Priority: Minor


Based on discussions elsewhere for thrift on fedora (they were on version 
0.9.1) here:

https://bugzilla.redhat.com/show_bug.cgi?id=1385702

It was suggested that if the thrift project build packages for fedora it would 
improve adoption on rpm based systems.  They also said that currently the only 
thing in the distribution that uses thrift is accumulo.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (THRIFT-2945) Implement support for Rust language

2017-02-20 Thread Jens Geyer (JIRA)

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

Jens Geyer commented on THRIFT-2945:


Hi [~allengeorge] and [~prz], 

could you open a new ticket for the new issue please?

Thanks!


> Implement support for Rust language
> ---
>
> Key: THRIFT-2945
> URL: https://issues.apache.org/jira/browse/THRIFT-2945
> Project: Thrift
>  Issue Type: New Feature
>  Components: Rust - Compiler, Rust - Library
>Reporter: Maksim Golov
>Assignee: Allen George
> Fix For: 0.11.0
>
>
> Work on implementing support for Rust is in progress: 
> https://github.com/maximg/thrift by Simon Génier and myself.
> It will probably take quite some time to complete. Please keep us updated if 
> there are changes related to our work.



--
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-20 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4011:


Github user Jens-G commented on the issue:

https://github.com/apache/thrift/pull/1156
  
Ok, thanks.


> 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-20 Thread Jens-G
Github user Jens-G commented on the issue:

https://github.com/apache/thrift/pull/1156
  
Ok, thanks.


---
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.
---