[GitHub] thrift pull request #1362: THRIFT-4331 - C++: TSSLSocket fixes on branch 0.1...

2017-09-18 Thread MartinHaimberger
Github user MartinHaimberger closed the pull request at:

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


---


[jira] [Commented] (THRIFT-4331) C++: TSSLSockets bug in handling huge messages, bug in handling polling

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4331:


Github user MartinHaimberger closed the pull request at:

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


> C++: TSSLSockets bug in handling huge messages, bug in handling polling
> ---
>
> Key: THRIFT-4331
> URL: https://issues.apache.org/jira/browse/THRIFT-4331
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.10.0, 1.0
>Reporter: Martin Haimberger
> Fix For: 0.10.0, 1.0
>
> Attachments: 0.10.0-THRIFT-4331.patch, master-THRIFT-4331.patch
>
>
> The TSSLSocket class did not handle large messages, because a underlying TCP 
> socket my signal bytes received, while SSL_read() may not have bytes 
> available. After maxretries (5) the function returned -1, which got 
> interpreted as unsigned integer for read bytes.
> Futher the waitForEvent methode, did only set THRIFT_POLLIN or 
> THRIFT_POLLOUT, but it gets used where SSL needs to send AND receive bytes 
> for some operations (like close). So in the case of write wanted, 
> THRIFT_POLLIN is also set to cover these read/write operations.
> Pullrequest for master and 0.10.0 branch will follow.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] thrift issue #1360: THRIFT-4330: Allow unused extern crates

2017-09-18 Thread allengeorge
Github user allengeorge commented on the issue:

https://github.com/apache/thrift/pull/1360
  
@sadikovi Sorry for the delay - was away this weekend.

Ah, ok. That makes total sense. You probably don't have any floats in your 
IDL, or anything that would use the `TryFrom` conversion. LGTM.

@Jens-G LGTM; could you merge this please? TY!


---


[jira] [Commented] (THRIFT-4330) Allow unused crates in Rust files

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4330:


Github user allengeorge commented on the issue:

https://github.com/apache/thrift/pull/1360
  
@sadikovi Sorry for the delay - was away this weekend.

Ah, ok. That makes total sense. You probably don't have any floats in your 
IDL, or anything that would use the `TryFrom` conversion. LGTM.

@Jens-G LGTM; could you merge this please? TY!


> Allow unused crates in Rust files
> -
>
> Key: THRIFT-4330
> URL: https://issues.apache.org/jira/browse/THRIFT-4330
> Project: Thrift
>  Issue Type: Improvement
>Reporter: Ivan Sadikov
>Priority: Trivial
> Fix For: 0.11.0
>
>
> Currently thrift generated .rs files include following attributes:
> #![allow(unused_imports)]
> #![cfg_attr(feature = "cargo-clippy", allow(too_many_arguments, 
> type_complexity))]
> #![cfg_attr(rustfmt, rustfmt_skip)] 
> I propose to add 
> #![allow(unused_extern_crates)]
> to remove warning when using Rust nightly.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (THRIFT-4333) All tutorial examples with port 9090.

2017-09-18 Thread Walter Weinmann (JIRA)
Walter Weinmann created THRIFT-4333:
---

 Summary: All tutorial examples with port 9090. 
 Key: THRIFT-4333
 URL: https://issues.apache.org/jira/browse/THRIFT-4333
 Project: Thrift
  Issue Type: Improvement
  Components: Tutorial
Affects Versions: 0.10.0
Reporter: Walter Weinmann
Priority: Minor


All examples in the tutorial should use the same port (9090) to make it easier 
to test with a mix of languages. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] thrift pull request #1364: THRIFT-4333 All tutorial examples with port 9090.

2017-09-18 Thread walter-weinmann
GitHub user walter-weinmann opened a pull request:

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

THRIFT-4333 All tutorial examples with port 9090.



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

$ git pull https://github.com/walter-weinmann/thrift THRIFT-4333

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

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


commit 579fba9062c207cb742262c36c421ce951dc
Author: walter-weinmann 
Date:   2017-09-18T18:18:50Z

THRIFT-4333 All tutorial examples with port 9090.




---


[jira] [Commented] (THRIFT-4333) All tutorial examples with port 9090.

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4333:


GitHub user walter-weinmann opened a pull request:

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

THRIFT-4333 All tutorial examples with port 9090.



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

$ git pull https://github.com/walter-weinmann/thrift THRIFT-4333

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

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


commit 579fba9062c207cb742262c36c421ce951dc
Author: walter-weinmann 
Date:   2017-09-18T18:18:50Z

THRIFT-4333 All tutorial examples with port 9090.




> All tutorial examples with port 9090. 
> --
>
> Key: THRIFT-4333
> URL: https://issues.apache.org/jira/browse/THRIFT-4333
> Project: Thrift
>  Issue Type: Improvement
>  Components: Tutorial
>Affects Versions: 0.10.0
>Reporter: Walter Weinmann
>Priority: Minor
>  Labels: Erlang, Tutorial
>
> All examples in the tutorial should use the same port (9090) to make it 
> easier to test with a mix of languages. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] thrift issue #1364: THRIFT-4333 All tutorial examples with port 9090.

2017-09-18 Thread walter-weinmann
Github user walter-weinmann commented on the issue:

https://github.com/apache/thrift/pull/1364
  
This closes #1364


---


[jira] [Commented] (THRIFT-4333) All tutorial examples with port 9090.

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4333:


Github user walter-weinmann commented on the issue:

https://github.com/apache/thrift/pull/1364
  
This closes #1364


> All tutorial examples with port 9090. 
> --
>
> Key: THRIFT-4333
> URL: https://issues.apache.org/jira/browse/THRIFT-4333
> Project: Thrift
>  Issue Type: Improvement
>  Components: Tutorial
>Affects Versions: 0.10.0
>Reporter: Walter Weinmann
>Priority: Minor
>  Labels: Erlang, Tutorial
>
> All examples in the tutorial should use the same port (9090) to make it 
> easier to test with a mix of languages. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (THRIFT-4312) Erlang client cannot connect to Python server: exception error: econnrefused

2017-09-18 Thread Walter Weinmann (JIRA)

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

Walter Weinmann commented on THRIFT-4312:
-

Using the {{*TSocket.TServerSocket*}} function without host parameters leads to 
ambiguity in an IPv4 / IPv6 environment: {{ping localhost}} returns IP 
address:: 1: and not 127.0.0.0.1 as expected.


> Erlang client cannot connect to Python server: exception error: econnrefused
> 
>
> Key: THRIFT-4312
> URL: https://issues.apache.org/jira/browse/THRIFT-4312
> Project: Thrift
>  Issue Type: Bug
>  Components: Erlang - Library, Python - Library, Tutorial
>Affects Versions: 0.10.0
> Environment: Windows 10
> Erlang OTP 20
> Python 3.6.2
>Reporter: Walter Weinmann
>  Labels: Connection, Erlang, Python, Tutorial
>
> h3. Connecting the Erlang client with the Python server gives connection 
> error:
> h3. 
> h4. Erlang client:
> h4. 
> h4. 
> -- the examples are taken from the Apache Thrift tutorials ---
> {quote}-module(client).
> -include("calculator_thrift.hrl").
> -export([t/0]).
> p(X) ->
> io:format("~p~n", [X]),
> ok.
> t() ->
> Port = 9090,
> {ok, Client0} = thrift_client_util:new("localhost",
>Port,
>calculator_thrift,
>[]),
> {Client1, {ok, ok}} = thrift_client:call(Client0, ping, []),
> io:format("ping~n", []),
> {Client2, {ok, Sum}} = thrift_client:call(Client1, add,  [1, 1]),
> io:format("1+1=~p~n", [Sum]),
> {Client3, {ok, Sum1}} = thrift_client:call(Client2, add, [1, 4]),
> io:format("1+4=~p~n", [Sum1]),
> Work = #'Work'{op=?TUTORIAL_OPERATION_SUBTRACT,
>  num1=15,
>  num2=10},
> {Client4, {ok, Diff}} = thrift_client:call(Client3, calculate, [1, Work]),
> io:format("15-10=~p~n", [Diff]),
> {Client5, {ok, Log}} = thrift_client:call(Client4, getStruct, [1]),
> io:format("Log: ~p~n", [Log]),
> Client6 =
> try
> Work1 = #'Work'{op=?TUTORIAL_OPERATION_DIVIDE,
>   num1=1,
>   num2=0},
> {ClientS1, {ok, _Quot}} = thrift_client:call(Client5, calculate, 
> [2, Work1]),
> io:format("LAME: exception handling is broken~n", []),
> ClientS1
> catch
> throw:{ClientS2, Z} ->
> io:format("Got exception where expecting - the " ++
>   "following is NOT a problem!!!~n"),
> p(Z),
> ClientS2
> end,
> {Client7, {ok, ok}} = thrift_client:call(Client6, zip, []),
> io:format("zip~n", []),
> {_Client8, ok} = thrift_client:close(Client7),
> ok.
> {quote}
> h4. Python server:
> h4. 
> {quote}#!/usr/bin/env python
> from tutorial import Calculator
> from tutorial.ttypes import InvalidOperation, Operation
> from shared.ttypes import SharedStruct
> from thrift.transport import TSocket
> from thrift.transport import TTransport
> from thrift.protocol import TBinaryProtocol
> from thrift.server import TServer
> class CalculatorHandler:
> def __init__(self):
> self.log = {}
> def ping(self):
> print('ping()')
> def add(self, n1, n2):
> print('add(%d,%d)' % (n1, n2))
> return n1 + n2
> def calculate(self, logid, work):
> print('calculate(%d, %r)' % (logid, work))
> if work.op == Operation.ADD:
> val = work.num1 + work.num2
> elif work.op == Operation.SUBTRACT:
> val = work.num1 - work.num2
> elif work.op == Operation.MULTIPLY:
> val = work.num1 * work.num2
> elif work.op == Operation.DIVIDE:
> if work.num2 == 0:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Cannot divide by 0'
> raise x
> val = work.num1 / work.num2
> else:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Invalid operation'
> raise x
> log = SharedStruct()
> log.key = logid
> log.value = '%d' % (val)
> self.log[logid] = log
> return val
> def getStruct(self, key):
> print('getStruct(%d)' % (key))
> return self.log[key]
> def zip(self):
> print('zip()')
> if __name__ == '__main__':
> handler = CalculatorHandler()
> processor = Calculator.Processor(handler)
> transport = TSocket.TServerSocket(port=9090)
> tfactory = TTransport.TBufferedTransportFactory()
> pfactory = TBinaryProtocol.TBinaryProtocolFactory()
> server = TServer.TSi

[GitHub] thrift pull request #1365: THRIFT-4312 Erlang client cannot connect to Pytho...

2017-09-18 Thread walter-weinmann
GitHub user walter-weinmann opened a pull request:

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

THRIFT-4312 Erlang client cannot connect to Python server: exception …

…error: econnrefused

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

$ git pull https://github.com/walter-weinmann/thrift THRIFT-4312

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

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


commit 7f7a182cb466301bb6f98075e0d10b3d0b45b8e5
Author: walter-weinmann 
Date:   2017-09-18T18:32:10Z

THRIFT-4312 Erlang client cannot connect to Python server: exception error: 
econnrefused




---


[jira] [Commented] (THRIFT-4312) Erlang client cannot connect to Python server: exception error: econnrefused

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4312:


GitHub user walter-weinmann opened a pull request:

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

THRIFT-4312 Erlang client cannot connect to Python server: exception …

…error: econnrefused

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

$ git pull https://github.com/walter-weinmann/thrift THRIFT-4312

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

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


commit 7f7a182cb466301bb6f98075e0d10b3d0b45b8e5
Author: walter-weinmann 
Date:   2017-09-18T18:32:10Z

THRIFT-4312 Erlang client cannot connect to Python server: exception error: 
econnrefused




> Erlang client cannot connect to Python server: exception error: econnrefused
> 
>
> Key: THRIFT-4312
> URL: https://issues.apache.org/jira/browse/THRIFT-4312
> Project: Thrift
>  Issue Type: Bug
>  Components: Erlang - Library, Python - Library, Tutorial
>Affects Versions: 0.10.0
> Environment: Windows 10
> Erlang OTP 20
> Python 3.6.2
>Reporter: Walter Weinmann
>  Labels: Connection, Erlang, Python, Tutorial
>
> h3. Connecting the Erlang client with the Python server gives connection 
> error:
> h3. 
> h4. Erlang client:
> h4. 
> h4. 
> -- the examples are taken from the Apache Thrift tutorials ---
> {quote}-module(client).
> -include("calculator_thrift.hrl").
> -export([t/0]).
> p(X) ->
> io:format("~p~n", [X]),
> ok.
> t() ->
> Port = 9090,
> {ok, Client0} = thrift_client_util:new("localhost",
>Port,
>calculator_thrift,
>[]),
> {Client1, {ok, ok}} = thrift_client:call(Client0, ping, []),
> io:format("ping~n", []),
> {Client2, {ok, Sum}} = thrift_client:call(Client1, add,  [1, 1]),
> io:format("1+1=~p~n", [Sum]),
> {Client3, {ok, Sum1}} = thrift_client:call(Client2, add, [1, 4]),
> io:format("1+4=~p~n", [Sum1]),
> Work = #'Work'{op=?TUTORIAL_OPERATION_SUBTRACT,
>  num1=15,
>  num2=10},
> {Client4, {ok, Diff}} = thrift_client:call(Client3, calculate, [1, Work]),
> io:format("15-10=~p~n", [Diff]),
> {Client5, {ok, Log}} = thrift_client:call(Client4, getStruct, [1]),
> io:format("Log: ~p~n", [Log]),
> Client6 =
> try
> Work1 = #'Work'{op=?TUTORIAL_OPERATION_DIVIDE,
>   num1=1,
>   num2=0},
> {ClientS1, {ok, _Quot}} = thrift_client:call(Client5, calculate, 
> [2, Work1]),
> io:format("LAME: exception handling is broken~n", []),
> ClientS1
> catch
> throw:{ClientS2, Z} ->
> io:format("Got exception where expecting - the " ++
>   "following is NOT a problem!!!~n"),
> p(Z),
> ClientS2
> end,
> {Client7, {ok, ok}} = thrift_client:call(Client6, zip, []),
> io:format("zip~n", []),
> {_Client8, ok} = thrift_client:close(Client7),
> ok.
> {quote}
> h4. Python server:
> h4. 
> {quote}#!/usr/bin/env python
> from tutorial import Calculator
> from tutorial.ttypes import InvalidOperation, Operation
> from shared.ttypes import SharedStruct
> from thrift.transport import TSocket
> from thrift.transport import TTransport
> from thrift.protocol import TBinaryProtocol
> from thrift.server import TServer
> class CalculatorHandler:
> def __init__(self):
> self.log = {}
> def ping(self):
> print('ping()')
> def add(self, n1, n2):
> print('add(%d,%d)' % (n1, n2))
> return n1 + n2
> def calculate(self, logid, work):
> print('calculate(%d, %r)' % (logid, work))
> if work.op == Operation.ADD:
> val = work.num1 + work.num2
> elif work.op == Operation.SUBTRACT:
> val = work.num1 - work.num2
> elif work.op == Operation.MULTIPLY:
> val = work.num1 * work.num2
> elif work.op == Operation.DIVIDE:
> if work.num2 == 0:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Cannot divide by 0'
> raise x
> val = work.num1 / work.num2
> else:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Invalid operation'

[GitHub] thrift issue #1365: THRIFT-4312 Erlang client cannot connect to Python serve...

2017-09-18 Thread walter-weinmann
Github user walter-weinmann commented on the issue:

https://github.com/apache/thrift/pull/1365
  
This closes #1365


---


[jira] [Commented] (THRIFT-4312) Erlang client cannot connect to Python server: exception error: econnrefused

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4312:


Github user walter-weinmann commented on the issue:

https://github.com/apache/thrift/pull/1365
  
This closes #1365


> Erlang client cannot connect to Python server: exception error: econnrefused
> 
>
> Key: THRIFT-4312
> URL: https://issues.apache.org/jira/browse/THRIFT-4312
> Project: Thrift
>  Issue Type: Bug
>  Components: Erlang - Library, Python - Library, Tutorial
>Affects Versions: 0.10.0
> Environment: Windows 10
> Erlang OTP 20
> Python 3.6.2
>Reporter: Walter Weinmann
>  Labels: Connection, Erlang, Python, Tutorial
>
> h3. Connecting the Erlang client with the Python server gives connection 
> error:
> h3. 
> h4. Erlang client:
> h4. 
> h4. 
> -- the examples are taken from the Apache Thrift tutorials ---
> {quote}-module(client).
> -include("calculator_thrift.hrl").
> -export([t/0]).
> p(X) ->
> io:format("~p~n", [X]),
> ok.
> t() ->
> Port = 9090,
> {ok, Client0} = thrift_client_util:new("localhost",
>Port,
>calculator_thrift,
>[]),
> {Client1, {ok, ok}} = thrift_client:call(Client0, ping, []),
> io:format("ping~n", []),
> {Client2, {ok, Sum}} = thrift_client:call(Client1, add,  [1, 1]),
> io:format("1+1=~p~n", [Sum]),
> {Client3, {ok, Sum1}} = thrift_client:call(Client2, add, [1, 4]),
> io:format("1+4=~p~n", [Sum1]),
> Work = #'Work'{op=?TUTORIAL_OPERATION_SUBTRACT,
>  num1=15,
>  num2=10},
> {Client4, {ok, Diff}} = thrift_client:call(Client3, calculate, [1, Work]),
> io:format("15-10=~p~n", [Diff]),
> {Client5, {ok, Log}} = thrift_client:call(Client4, getStruct, [1]),
> io:format("Log: ~p~n", [Log]),
> Client6 =
> try
> Work1 = #'Work'{op=?TUTORIAL_OPERATION_DIVIDE,
>   num1=1,
>   num2=0},
> {ClientS1, {ok, _Quot}} = thrift_client:call(Client5, calculate, 
> [2, Work1]),
> io:format("LAME: exception handling is broken~n", []),
> ClientS1
> catch
> throw:{ClientS2, Z} ->
> io:format("Got exception where expecting - the " ++
>   "following is NOT a problem!!!~n"),
> p(Z),
> ClientS2
> end,
> {Client7, {ok, ok}} = thrift_client:call(Client6, zip, []),
> io:format("zip~n", []),
> {_Client8, ok} = thrift_client:close(Client7),
> ok.
> {quote}
> h4. Python server:
> h4. 
> {quote}#!/usr/bin/env python
> from tutorial import Calculator
> from tutorial.ttypes import InvalidOperation, Operation
> from shared.ttypes import SharedStruct
> from thrift.transport import TSocket
> from thrift.transport import TTransport
> from thrift.protocol import TBinaryProtocol
> from thrift.server import TServer
> class CalculatorHandler:
> def __init__(self):
> self.log = {}
> def ping(self):
> print('ping()')
> def add(self, n1, n2):
> print('add(%d,%d)' % (n1, n2))
> return n1 + n2
> def calculate(self, logid, work):
> print('calculate(%d, %r)' % (logid, work))
> if work.op == Operation.ADD:
> val = work.num1 + work.num2
> elif work.op == Operation.SUBTRACT:
> val = work.num1 - work.num2
> elif work.op == Operation.MULTIPLY:
> val = work.num1 * work.num2
> elif work.op == Operation.DIVIDE:
> if work.num2 == 0:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Cannot divide by 0'
> raise x
> val = work.num1 / work.num2
> else:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Invalid operation'
> raise x
> log = SharedStruct()
> log.key = logid
> log.value = '%d' % (val)
> self.log[logid] = log
> return val
> def getStruct(self, key):
> print('getStruct(%d)' % (key))
> return self.log[key]
> def zip(self):
> print('zip()')
> if __name__ == '__main__':
> handler = CalculatorHandler()
> processor = Calculator.Processor(handler)
> transport = TSocket.TServerSocket(port=9090)
> tfactory = TTransport.TBufferedTransportFactory()
> pfactory = TBinaryProtocol.TBinaryProtocolFactory()
> server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
> # You could do on

[jira] [Created] (THRIFT-4334) Perl indentation incorrect when defaulting field attribute to a struct

2017-09-18 Thread Brian Forbis (JIRA)
Brian Forbis created THRIFT-4334:


 Summary: Perl indentation incorrect when defaulting field 
attribute to a struct
 Key: THRIFT-4334
 URL: https://issues.apache.org/jira/browse/THRIFT-4334
 Project: Thrift
  Issue Type: Bug
  Components: Perl - Compiler
Affects Versions: 0.10.0
Reporter: Brian Forbis
Priority: Trivial


Improper indentation is used when defaulting an attribute in a struct to 
another struct or hash:

See the following example thrift

{code}
namespace perl ThriftTest
struct Header {
  1: map foobar = {"foo": "bar"}
}
struct Struct {
  1: Header header = {"foobar": {"baz": "bat"}}
  2: string foo
}
{code}
Header constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of foobar, but the indentation is returned to 
the correct level afterwards_
{code}
package ThriftTest::Header;
use base qw(Class::Accessor);
ThriftTest::Header->mk_accessors( qw( foobar ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{foobar} = {
"foo" => "bar",
};
  if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{foobar}) {
  $self->{foobar} = $vals->{foobar};
}
  }
  return bless ($self, $classname);
}
{code}

Struct constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of foobar, but the indentation is NOT 
returned to the correct level afterwards_
{code}
package ThriftTest::Struct;
use base qw(Class::Accessor);
ThriftTest::Struct->mk_accessors( qw( header foo ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{header} = undef;
  $self->{foo} = undef;
  $self->{header} = new ThriftTest::Header({
"foobar" => {
"baz" => "bat",
},
});
if (UNIVERSAL::isa($vals,'HASH')) {
  if (defined $vals->{header}) {
$self->{header} = $vals->{header};
  }
  if (defined $vals->{foo}) {
$self->{foo} = $vals->{foo};
  }
}
return bless ($self, $classname);
}
{code}


Since this indentation bug is additive, every struct in the file that default 
instantiates a struct in its constructor will offset the indentation to the 
right by one level.


The cause of this bug looks to be in *t_perl_generator::render_const_value()*, 
which does not indent the keys set in the sub-object constructors. It also does 
not set indent_down() at the end of instantiating the object.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (THRIFT-4334) Perl indentation incorrect when defaulting field attribute to a struct

2017-09-18 Thread Brian Forbis (JIRA)

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

Brian Forbis updated THRIFT-4334:
-
Description: 
Improper indentation is used when defaulting an attribute in a struct to 
another struct or hash:

See the following example thrift

{code}
namespace perl ThriftTest
struct Header {
  1: map foobar = {"foo": "bar"}
}
struct Struct {
  1: Header header = {"foobar": {"baz": "bat"}}
  2: string foo
}
{code}
Header constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of foobar, but the indentation is returned to 
the correct level afterwards_
{code}
package ThriftTest::Header;
use base qw(Class::Accessor);
ThriftTest::Header->mk_accessors( qw( foobar ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{foobar} = {
"foo" => "bar",
};
  if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{foobar}) {
  $self->{foobar} = $vals->{foobar};
}
  }
  return bless ($self, $classname);
}
{code}

Struct constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of ThriftTest::Header, but the indentation is 
NOT returned to the correct level afterwards_
{code}
package ThriftTest::Struct;
use base qw(Class::Accessor);
ThriftTest::Struct->mk_accessors( qw( header foo ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{header} = undef;
  $self->{foo} = undef;
  $self->{header} = new ThriftTest::Header({
"foobar" => {
"baz" => "bat",
},
});
if (UNIVERSAL::isa($vals,'HASH')) {
  if (defined $vals->{header}) {
$self->{header} = $vals->{header};
  }
  if (defined $vals->{foo}) {
$self->{foo} = $vals->{foo};
  }
}
return bless ($self, $classname);
}
{code}


Since this indentation bug is additive, every struct in the file that default 
instantiates a struct in its constructor will offset the indentation to the 
right by one level.


The cause of this bug looks to be in *t_perl_generator::render_const_value()*, 
which does not indent the keys set in the sub-object constructors. It also does 
not set indent_down() at the end of instantiating the object.

  was:
Improper indentation is used when defaulting an attribute in a struct to 
another struct or hash:

See the following example thrift

{code}
namespace perl ThriftTest
struct Header {
  1: map foobar = {"foo": "bar"}
}
struct Struct {
  1: Header header = {"foobar": {"baz": "bat"}}
  2: string foo
}
{code}
Header constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of foobar, but the indentation is returned to 
the correct level afterwards_
{code}
package ThriftTest::Header;
use base qw(Class::Accessor);
ThriftTest::Header->mk_accessors( qw( foobar ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{foobar} = {
"foo" => "bar",
};
  if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{foobar}) {
  $self->{foobar} = $vals->{foobar};
}
  }
  return bless ($self, $classname);
}
{code}

Struct constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of foobar, but the indentation is NOT 
returned to the correct level afterwards_
{code}
package ThriftTest::Struct;
use base qw(Class::Accessor);
ThriftTest::Struct->mk_accessors( qw( header foo ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{header} = undef;
  $self->{foo} = undef;
  $self->{header} = new ThriftTest::Header({
"foobar" => {
"baz" => "bat",
},
});
if (UNIVERSAL::isa($vals,'HASH')) {
  if (defined $vals->{header}) {
$self->{header} = $vals->{header};
  }
  if (defined $vals->{foo}) {
$self->{foo} = $vals->{foo};
  }
}
return bless ($self, $classname);
}
{code}


Since this indentation bug is additive, every struct in the file that default 
instantiates a struct in its constructor will offset the indentation to the 
right by one level.


The cause of this bug looks to be in *t_perl_generator::render_const_value()*, 
which does not indent the keys set in the sub-object constructors. It also does 
not set indent_down() at the end of instantiating the object.


> Perl indentation incorrect when defaulting field attribute to a struct
> --
>
> Key: THRIFT-4334
> URL: https://issues.apache.org/jira/browse/THRIFT-4334
> Project: Thrift
>  Issue Type: Bug
>  Components: Perl - Compiler
>Affects Versions: 0.10.0
>Reporter: Brian Forbis
>Priority: Trivial
>
> Improper indentation is used when defaulting an attribute in a struct to 
> another struct or h

[jira] [Updated] (THRIFT-4334) Perl indentation incorrect when defaulting field attribute to a struct

2017-09-18 Thread Brian Forbis (JIRA)

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

Brian Forbis updated THRIFT-4334:
-
Description: 
Improper indentation is used when defaulting an attribute in a struct to 
another struct or hash:

See the following example thrift

{code}
namespace perl ThriftTest
struct Header {
  1: map foobar = {"foo": "bar"}
}
struct Struct {
  1: Header header = {"foobar": {"baz": "bat"}}
  2: string foo
}
{code}
Header constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of foobar, but the indentation is returned to 
the correct level afterwards_
{code}
package ThriftTest::Header;
use base qw(Class::Accessor);
ThriftTest::Header->mk_accessors( qw( foobar ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{foobar} = {
"foo" => "bar",
};
  if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{foobar}) {
  $self->{foobar} = $vals->{foobar};
}
  }
  return bless ($self, $classname);
}
{code}

Struct constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of ThriftTest::Header, but the indentation is 
NOT returned to the correct level afterwards_
{code}
package ThriftTest::Struct;
use base qw(Class::Accessor);
ThriftTest::Struct->mk_accessors( qw( header foo ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{header} = undef;
  $self->{foo} = undef;
  $self->{header} = new ThriftTest::Header({
"foobar" => {
"baz" => "bat",
},
});
if (UNIVERSAL::isa($vals,'HASH')) {
  if (defined $vals->{header}) {
$self->{header} = $vals->{header};
  }
  if (defined $vals->{foo}) {
$self->{foo} = $vals->{foo};
  }
}
return bless ($self, $classname);
}
{code}


Since this indentation bug is additive, every struct in the file that default 
instantiates a struct in its constructor will offset the indentation to the 
right by one level.


The cause of this bug looks to be in *t_perl_generator::render_const_value()*, 
which does not *indent()* the keys set in the sub-object constructors. It also 
does not set *indent_down()* at the end of instantiating the object.

  was:
Improper indentation is used when defaulting an attribute in a struct to 
another struct or hash:

See the following example thrift

{code}
namespace perl ThriftTest
struct Header {
  1: map foobar = {"foo": "bar"}
}
struct Struct {
  1: Header header = {"foobar": {"baz": "bat"}}
  2: string foo
}
{code}
Header constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of foobar, but the indentation is returned to 
the correct level afterwards_
{code}
package ThriftTest::Header;
use base qw(Class::Accessor);
ThriftTest::Header->mk_accessors( qw( foobar ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{foobar} = {
"foo" => "bar",
};
  if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{foobar}) {
  $self->{foobar} = $vals->{foobar};
}
  }
  return bless ($self, $classname);
}
{code}

Struct constructor: _This uses improper indentation when specifying the hash 
keys to use in the initialization of ThriftTest::Header, but the indentation is 
NOT returned to the correct level afterwards_
{code}
package ThriftTest::Struct;
use base qw(Class::Accessor);
ThriftTest::Struct->mk_accessors( qw( header foo ) );

sub new {
  my $classname = shift;
  my $self  = {};
  my $vals  = shift || {};
  $self->{header} = undef;
  $self->{foo} = undef;
  $self->{header} = new ThriftTest::Header({
"foobar" => {
"baz" => "bat",
},
});
if (UNIVERSAL::isa($vals,'HASH')) {
  if (defined $vals->{header}) {
$self->{header} = $vals->{header};
  }
  if (defined $vals->{foo}) {
$self->{foo} = $vals->{foo};
  }
}
return bless ($self, $classname);
}
{code}


Since this indentation bug is additive, every struct in the file that default 
instantiates a struct in its constructor will offset the indentation to the 
right by one level.


The cause of this bug looks to be in *t_perl_generator::render_const_value()*, 
which does not indent the keys set in the sub-object constructors. It also does 
not set indent_down() at the end of instantiating the object.


> Perl indentation incorrect when defaulting field attribute to a struct
> --
>
> Key: THRIFT-4334
> URL: https://issues.apache.org/jira/browse/THRIFT-4334
> Project: Thrift
>  Issue Type: Bug
>  Components: Perl - Compiler
>Affects Versions: 0.10.0
>Reporter: Brian Forbis
>Priority: Trivial
>
> Improper indentation is used when defaulting an attribute in a struct to 
> a

[jira] [Created] (THRIFT-4335) Golang TPipe Windows implementation

2017-09-18 Thread Zach Wasserman (JIRA)
Zach Wasserman created THRIFT-4335:
--

 Summary: Golang TPipe Windows implementation
 Key: THRIFT-4335
 URL: https://issues.apache.org/jira/browse/THRIFT-4335
 Project: Thrift
  Issue Type: Improvement
  Components: Go - Library
Reporter: Zach Wasserman


We are interested in adding support for the TPipe transport in the Golang 
Windows library. This support already exists in the C++ library 
(https://thrift.apache.org/lib/cpp#named-pipes), and is useful for an 
alternative to TCP on Windows. Would the maintainers be interested in merging a 
patch adding this functionality?

Microsoft publishes an (MIT licensed) library that provides {{net.Conn}} 
support for named pipes 
(https://github.com/Microsoft/go-winio/blob/master/pipe.go#L138, 
https://github.com/Microsoft/go-winio/blob/master/pipe.go#L317). Is it possible 
to add this as a dependency for the Thrift Go library?

Any guidance would be appreciated, as I'd love to start implementing it ASAP.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (THRIFT-4335) Golang TPipe Windows implementation

2017-09-18 Thread Zach Wasserman (JIRA)

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

Zach Wasserman commented on THRIFT-4335:


I also wonder whether we could pass the {{net.Conn}} provided by {{go-winio}} 
to {{NewTSocketFromConnTimeout}} 
(https://godoc.org/git.apache.org/thrift.git/lib/go/thrift#NewTSocketFromConnTimeout)?
 I will experiment with this, but I would be very curious to hear opinions on 
whether it might work.

> Golang TPipe Windows implementation
> ---
>
> Key: THRIFT-4335
> URL: https://issues.apache.org/jira/browse/THRIFT-4335
> Project: Thrift
>  Issue Type: Improvement
>  Components: Go - Library
>Reporter: Zach Wasserman
>
> We are interested in adding support for the TPipe transport in the Golang 
> Windows library. This support already exists in the C++ library 
> (https://thrift.apache.org/lib/cpp#named-pipes), and is useful for an 
> alternative to TCP on Windows. Would the maintainers be interested in merging 
> a patch adding this functionality?
> Microsoft publishes an (MIT licensed) library that provides {{net.Conn}} 
> support for named pipes 
> (https://github.com/Microsoft/go-winio/blob/master/pipe.go#L138, 
> https://github.com/Microsoft/go-winio/blob/master/pipe.go#L317). Is it 
> possible to add this as a dependency for the Thrift Go library?
> Any guidance would be appreciated, as I'd love to start implementing it ASAP.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] thrift pull request #1364: THRIFT-4333 All tutorial examples with port 9090.

2017-09-18 Thread walter-weinmann
Github user walter-weinmann closed the pull request at:

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


---


[GitHub] thrift pull request #1364: THRIFT-4333 All tutorial examples with port 9090.

2017-09-18 Thread walter-weinmann
GitHub user walter-weinmann reopened a pull request:

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

THRIFT-4333 All tutorial examples with port 9090.



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

$ git pull https://github.com/walter-weinmann/thrift THRIFT-4333

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

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


commit 579fba9062c207cb742262c36c421ce951dc
Author: walter-weinmann 
Date:   2017-09-18T18:18:50Z

THRIFT-4333 All tutorial examples with port 9090.




---


[GitHub] thrift issue #1364: THRIFT-4333 All tutorial examples with port 9090.

2017-09-18 Thread walter-weinmann
Github user walter-weinmann commented on the issue:

https://github.com/apache/thrift/pull/1364
  
Travis issues:


Step 4:
=
```
Running "concat:dist" (concat) task

Running "uglify:dist" (uglify) task
File dist/thrift.min.js created: 46.89 kB → 
15.4 kB
>> 1 file created.

Running "jsdoc:dist" (jsdoc) task
>> fs.js:1919
>>   binding.copyFile(src, dest, flags);
>>   ^
>> 
>> Error: EISDIR: illegal operation on a directory, copyfile 
'/thrift/src/lib/js/node_modules/jsdoc/templates/default/static/fonts/OpenSans-Bold-webfont.eot'
 -> 'doc/fonts'
>> at Object.fs.copyFileSync (fs.js:1919:11)
>> at 
/thrift/src/lib/js/node_modules/jsdoc/templates/default/publish.js:471:12
>> at Array.forEach ()
>> at Object.exports.publish 
(/thrift/src/lib/js/node_modules/jsdoc/templates/default/publish.js:468:17)
>> at Object.module.exports.cli.generateDocs 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:430:39)
>> at Object.module.exports.cli.processParseResults 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:383:20)
>> at module.exports.cli.main 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:227:14)
>> at Object.module.exports.cli.runCommand 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:180:5)
>> at /thrift/src/lib/js/node_modules/jsdoc/jsdoc.js:103:9
>> at Object. 
(/thrift/src/lib/js/node_modules/jsdoc/jsdoc.js:104:3)
>> at Module._compile (module.js:624:30)
>> at Object.Module._extensions..js (module.js:635:10)
>> at Module.load (module.js:545:32)
>> at tryModuleLoad (module.js:508:12)
>> at Function.Module._load (module.js:500:3)
>> at Function.Module.runMain (module.js:665:10)
Warning: jsdoc terminated with a non-zero exit code Use --force to 
continue.

Aborted due to warnings.
Makefile:805: recipe for target 'check-local' failed
make[4]: *** [check-local] Error 3
make[4]: Leaving directory '/thrift/src/lib/js'
Makefile:680: recipe for target 'check-am' failed
make[3]: *** [check-am] Error 2
make[3]: Leaving directory '/thrift/src/lib/js'
Makefile:531: recipe for target 'check-recursive' failed
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory '/thrift/src/lib/js'
Makefile:576: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/thrift/src/lib'
Makefile:655: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1


travis_time:end:11f01776:start=1505760613591519248,finish=1505761268140106728,duration=654548587480

The command "docker run --net=host -e BUILD_LIBS="$BUILD_LIBS" 
$BUILD_ENV -v $(pwd):/thrift/src -it thrift-build:$DISTRO 
build/docker/scripts/$SCRIPT $BUILD_ARG" exited with 2.

Done. Your build exited with 1.

```
Step 10:
=
```
Running "concat:dist" (concat) task

Running "uglify:dist" (uglify) task
File dist/thrift.min.js created: 46.89 kB → 
15.4 kB
>> 1 file created.

Running "jsdoc:dist" (jsdoc) task
>> fs.js:1919
>>   binding.copyFile(src, dest, flags);
>>   ^
>> 
>> Error: EISDIR: illegal operation on a directory, copyfile 
'/thrift/src/lib/js/node_modules/jsdoc/templates/default/static/fonts/OpenSans-Bold-webfont.eot'
 -> 'doc/fonts'
>> at Object.fs.copyFileSync (fs.js:1919:11)
>> at 
/thrift/src/lib/js/node_modules/jsdoc/templates/default/publish.js:471:12
>> at Array.forEach ()
>> at Object.exports.publish 
(/thrift/src/lib/js/node_modules/jsdoc/templates/default/publish.js:468:17)
>> at Object.module.exports.cli.generateDocs 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:430:39)
>> at Object.module.exports.cli.processParseResults 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:383:20)
>> at module.exports.cli.main 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:227:14)
>> at Object.module.exports.cli.runCommand 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:180:5)
>> at /thrift/src/lib/js/node_modules/jsdoc/jsdoc.js:103:9
>> at Object. 
(/thrift/src/lib/js/node_modules/jsdoc/jsdoc.js:104:3)
>> at Module._compile (module.js:624:30)
>> at Object.Module._extensions..j

[jira] [Commented] (THRIFT-4333) All tutorial examples with port 9090.

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4333:


GitHub user walter-weinmann reopened a pull request:

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

THRIFT-4333 All tutorial examples with port 9090.



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

$ git pull https://github.com/walter-weinmann/thrift THRIFT-4333

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

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


commit 579fba9062c207cb742262c36c421ce951dc
Author: walter-weinmann 
Date:   2017-09-18T18:18:50Z

THRIFT-4333 All tutorial examples with port 9090.




> All tutorial examples with port 9090. 
> --
>
> Key: THRIFT-4333
> URL: https://issues.apache.org/jira/browse/THRIFT-4333
> Project: Thrift
>  Issue Type: Improvement
>  Components: Tutorial
>Affects Versions: 0.10.0
>Reporter: Walter Weinmann
>Priority: Minor
>  Labels: Erlang, Tutorial
>
> All examples in the tutorial should use the same port (9090) to make it 
> easier to test with a mix of languages. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (THRIFT-4333) All tutorial examples with port 9090.

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4333:


Github user walter-weinmann closed the pull request at:

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


> All tutorial examples with port 9090. 
> --
>
> Key: THRIFT-4333
> URL: https://issues.apache.org/jira/browse/THRIFT-4333
> Project: Thrift
>  Issue Type: Improvement
>  Components: Tutorial
>Affects Versions: 0.10.0
>Reporter: Walter Weinmann
>Priority: Minor
>  Labels: Erlang, Tutorial
>
> All examples in the tutorial should use the same port (9090) to make it 
> easier to test with a mix of languages. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (THRIFT-4333) All tutorial examples with port 9090.

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4333:


Github user walter-weinmann commented on the issue:

https://github.com/apache/thrift/pull/1364
  
Travis issues:


Step 4:
=
```
Running "concat:dist" (concat) task

Running "uglify:dist" (uglify) task
File dist/thrift.min.js created: 46.89 kB → 15.4 
kB
>> 1 file created.

Running "jsdoc:dist" (jsdoc) task
>> fs.js:1919
>>   binding.copyFile(src, dest, flags);
>>   ^
>> 
>> Error: EISDIR: illegal operation on a directory, copyfile 
'/thrift/src/lib/js/node_modules/jsdoc/templates/default/static/fonts/OpenSans-Bold-webfont.eot'
 -> 'doc/fonts'
>> at Object.fs.copyFileSync (fs.js:1919:11)
>> at 
/thrift/src/lib/js/node_modules/jsdoc/templates/default/publish.js:471:12
>> at Array.forEach ()
>> at Object.exports.publish 
(/thrift/src/lib/js/node_modules/jsdoc/templates/default/publish.js:468:17)
>> at Object.module.exports.cli.generateDocs 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:430:39)
>> at Object.module.exports.cli.processParseResults 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:383:20)
>> at module.exports.cli.main 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:227:14)
>> at Object.module.exports.cli.runCommand 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:180:5)
>> at /thrift/src/lib/js/node_modules/jsdoc/jsdoc.js:103:9
>> at Object. 
(/thrift/src/lib/js/node_modules/jsdoc/jsdoc.js:104:3)
>> at Module._compile (module.js:624:30)
>> at Object.Module._extensions..js (module.js:635:10)
>> at Module.load (module.js:545:32)
>> at tryModuleLoad (module.js:508:12)
>> at Function.Module._load (module.js:500:3)
>> at Function.Module.runMain (module.js:665:10)
Warning: jsdoc terminated with a non-zero exit code Use --force to 
continue.

Aborted due to warnings.
Makefile:805: recipe for target 'check-local' failed
make[4]: *** [check-local] Error 3
make[4]: Leaving directory '/thrift/src/lib/js'
Makefile:680: recipe for target 'check-am' failed
make[3]: *** [check-am] Error 2
make[3]: Leaving directory '/thrift/src/lib/js'
Makefile:531: recipe for target 'check-recursive' failed
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory '/thrift/src/lib/js'
Makefile:576: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/thrift/src/lib'
Makefile:655: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1


travis_time:end:11f01776:start=1505760613591519248,finish=1505761268140106728,duration=654548587480

The command "docker run --net=host -e BUILD_LIBS="$BUILD_LIBS" 
$BUILD_ENV -v $(pwd):/thrift/src -it thrift-build:$DISTRO 
build/docker/scripts/$SCRIPT $BUILD_ARG" exited with 2.

Done. Your build exited with 1.

```
Step 10:
=
```
Running "concat:dist" (concat) task

Running "uglify:dist" (uglify) task
File dist/thrift.min.js created: 46.89 kB → 15.4 
kB
>> 1 file created.

Running "jsdoc:dist" (jsdoc) task
>> fs.js:1919
>>   binding.copyFile(src, dest, flags);
>>   ^
>> 
>> Error: EISDIR: illegal operation on a directory, copyfile 
'/thrift/src/lib/js/node_modules/jsdoc/templates/default/static/fonts/OpenSans-Bold-webfont.eot'
 -> 'doc/fonts'
>> at Object.fs.copyFileSync (fs.js:1919:11)
>> at 
/thrift/src/lib/js/node_modules/jsdoc/templates/default/publish.js:471:12
>> at Array.forEach ()
>> at Object.exports.publish 
(/thrift/src/lib/js/node_modules/jsdoc/templates/default/publish.js:468:17)
>> at Object.module.exports.cli.generateDocs 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:430:39)
>> at Object.module.exports.cli.processParseResults 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:383:20)
>> at module.exports.cli.main 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:227:14)
>> at Object.module.exports.cli.runCommand 
(/thrift/src/lib/js/node_modules/jsdoc/cli.js:180:5)
>> at /th

[GitHub] thrift pull request #1365: THRIFT-4312 Erlang client cannot connect to Pytho...

2017-09-18 Thread walter-weinmann
Github user walter-weinmann closed the pull request at:

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


---


[GitHub] thrift issue #1365: THRIFT-4312 Erlang client cannot connect to Python serve...

2017-09-18 Thread walter-weinmann
Github user walter-weinmann commented on the issue:

https://github.com/apache/thrift/pull/1365
  
The same Travis issues as in pull request #1364.


---


[GitHub] thrift pull request #1365: THRIFT-4312 Erlang client cannot connect to Pytho...

2017-09-18 Thread walter-weinmann
GitHub user walter-weinmann reopened a pull request:

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

THRIFT-4312 Erlang client cannot connect to Python server: exception …

…error: econnrefused

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

$ git pull https://github.com/walter-weinmann/thrift THRIFT-4312

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

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


commit 7f7a182cb466301bb6f98075e0d10b3d0b45b8e5
Author: walter-weinmann 
Date:   2017-09-18T18:32:10Z

THRIFT-4312 Erlang client cannot connect to Python server: exception error: 
econnrefused




---


[jira] [Commented] (THRIFT-4312) Erlang client cannot connect to Python server: exception error: econnrefused

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4312:


GitHub user walter-weinmann reopened a pull request:

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

THRIFT-4312 Erlang client cannot connect to Python server: exception …

…error: econnrefused

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

$ git pull https://github.com/walter-weinmann/thrift THRIFT-4312

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

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


commit 7f7a182cb466301bb6f98075e0d10b3d0b45b8e5
Author: walter-weinmann 
Date:   2017-09-18T18:32:10Z

THRIFT-4312 Erlang client cannot connect to Python server: exception error: 
econnrefused




> Erlang client cannot connect to Python server: exception error: econnrefused
> 
>
> Key: THRIFT-4312
> URL: https://issues.apache.org/jira/browse/THRIFT-4312
> Project: Thrift
>  Issue Type: Bug
>  Components: Erlang - Library, Python - Library, Tutorial
>Affects Versions: 0.10.0
> Environment: Windows 10
> Erlang OTP 20
> Python 3.6.2
>Reporter: Walter Weinmann
>  Labels: Connection, Erlang, Python, Tutorial
>
> h3. Connecting the Erlang client with the Python server gives connection 
> error:
> h3. 
> h4. Erlang client:
> h4. 
> h4. 
> -- the examples are taken from the Apache Thrift tutorials ---
> {quote}-module(client).
> -include("calculator_thrift.hrl").
> -export([t/0]).
> p(X) ->
> io:format("~p~n", [X]),
> ok.
> t() ->
> Port = 9090,
> {ok, Client0} = thrift_client_util:new("localhost",
>Port,
>calculator_thrift,
>[]),
> {Client1, {ok, ok}} = thrift_client:call(Client0, ping, []),
> io:format("ping~n", []),
> {Client2, {ok, Sum}} = thrift_client:call(Client1, add,  [1, 1]),
> io:format("1+1=~p~n", [Sum]),
> {Client3, {ok, Sum1}} = thrift_client:call(Client2, add, [1, 4]),
> io:format("1+4=~p~n", [Sum1]),
> Work = #'Work'{op=?TUTORIAL_OPERATION_SUBTRACT,
>  num1=15,
>  num2=10},
> {Client4, {ok, Diff}} = thrift_client:call(Client3, calculate, [1, Work]),
> io:format("15-10=~p~n", [Diff]),
> {Client5, {ok, Log}} = thrift_client:call(Client4, getStruct, [1]),
> io:format("Log: ~p~n", [Log]),
> Client6 =
> try
> Work1 = #'Work'{op=?TUTORIAL_OPERATION_DIVIDE,
>   num1=1,
>   num2=0},
> {ClientS1, {ok, _Quot}} = thrift_client:call(Client5, calculate, 
> [2, Work1]),
> io:format("LAME: exception handling is broken~n", []),
> ClientS1
> catch
> throw:{ClientS2, Z} ->
> io:format("Got exception where expecting - the " ++
>   "following is NOT a problem!!!~n"),
> p(Z),
> ClientS2
> end,
> {Client7, {ok, ok}} = thrift_client:call(Client6, zip, []),
> io:format("zip~n", []),
> {_Client8, ok} = thrift_client:close(Client7),
> ok.
> {quote}
> h4. Python server:
> h4. 
> {quote}#!/usr/bin/env python
> from tutorial import Calculator
> from tutorial.ttypes import InvalidOperation, Operation
> from shared.ttypes import SharedStruct
> from thrift.transport import TSocket
> from thrift.transport import TTransport
> from thrift.protocol import TBinaryProtocol
> from thrift.server import TServer
> class CalculatorHandler:
> def __init__(self):
> self.log = {}
> def ping(self):
> print('ping()')
> def add(self, n1, n2):
> print('add(%d,%d)' % (n1, n2))
> return n1 + n2
> def calculate(self, logid, work):
> print('calculate(%d, %r)' % (logid, work))
> if work.op == Operation.ADD:
> val = work.num1 + work.num2
> elif work.op == Operation.SUBTRACT:
> val = work.num1 - work.num2
> elif work.op == Operation.MULTIPLY:
> val = work.num1 * work.num2
> elif work.op == Operation.DIVIDE:
> if work.num2 == 0:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Cannot divide by 0'
> raise x
> val = work.num1 / work.num2
> else:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Invalid operatio

[jira] [Commented] (THRIFT-4312) Erlang client cannot connect to Python server: exception error: econnrefused

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4312:


Github user walter-weinmann closed the pull request at:

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


> Erlang client cannot connect to Python server: exception error: econnrefused
> 
>
> Key: THRIFT-4312
> URL: https://issues.apache.org/jira/browse/THRIFT-4312
> Project: Thrift
>  Issue Type: Bug
>  Components: Erlang - Library, Python - Library, Tutorial
>Affects Versions: 0.10.0
> Environment: Windows 10
> Erlang OTP 20
> Python 3.6.2
>Reporter: Walter Weinmann
>  Labels: Connection, Erlang, Python, Tutorial
>
> h3. Connecting the Erlang client with the Python server gives connection 
> error:
> h3. 
> h4. Erlang client:
> h4. 
> h4. 
> -- the examples are taken from the Apache Thrift tutorials ---
> {quote}-module(client).
> -include("calculator_thrift.hrl").
> -export([t/0]).
> p(X) ->
> io:format("~p~n", [X]),
> ok.
> t() ->
> Port = 9090,
> {ok, Client0} = thrift_client_util:new("localhost",
>Port,
>calculator_thrift,
>[]),
> {Client1, {ok, ok}} = thrift_client:call(Client0, ping, []),
> io:format("ping~n", []),
> {Client2, {ok, Sum}} = thrift_client:call(Client1, add,  [1, 1]),
> io:format("1+1=~p~n", [Sum]),
> {Client3, {ok, Sum1}} = thrift_client:call(Client2, add, [1, 4]),
> io:format("1+4=~p~n", [Sum1]),
> Work = #'Work'{op=?TUTORIAL_OPERATION_SUBTRACT,
>  num1=15,
>  num2=10},
> {Client4, {ok, Diff}} = thrift_client:call(Client3, calculate, [1, Work]),
> io:format("15-10=~p~n", [Diff]),
> {Client5, {ok, Log}} = thrift_client:call(Client4, getStruct, [1]),
> io:format("Log: ~p~n", [Log]),
> Client6 =
> try
> Work1 = #'Work'{op=?TUTORIAL_OPERATION_DIVIDE,
>   num1=1,
>   num2=0},
> {ClientS1, {ok, _Quot}} = thrift_client:call(Client5, calculate, 
> [2, Work1]),
> io:format("LAME: exception handling is broken~n", []),
> ClientS1
> catch
> throw:{ClientS2, Z} ->
> io:format("Got exception where expecting - the " ++
>   "following is NOT a problem!!!~n"),
> p(Z),
> ClientS2
> end,
> {Client7, {ok, ok}} = thrift_client:call(Client6, zip, []),
> io:format("zip~n", []),
> {_Client8, ok} = thrift_client:close(Client7),
> ok.
> {quote}
> h4. Python server:
> h4. 
> {quote}#!/usr/bin/env python
> from tutorial import Calculator
> from tutorial.ttypes import InvalidOperation, Operation
> from shared.ttypes import SharedStruct
> from thrift.transport import TSocket
> from thrift.transport import TTransport
> from thrift.protocol import TBinaryProtocol
> from thrift.server import TServer
> class CalculatorHandler:
> def __init__(self):
> self.log = {}
> def ping(self):
> print('ping()')
> def add(self, n1, n2):
> print('add(%d,%d)' % (n1, n2))
> return n1 + n2
> def calculate(self, logid, work):
> print('calculate(%d, %r)' % (logid, work))
> if work.op == Operation.ADD:
> val = work.num1 + work.num2
> elif work.op == Operation.SUBTRACT:
> val = work.num1 - work.num2
> elif work.op == Operation.MULTIPLY:
> val = work.num1 * work.num2
> elif work.op == Operation.DIVIDE:
> if work.num2 == 0:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Cannot divide by 0'
> raise x
> val = work.num1 / work.num2
> else:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Invalid operation'
> raise x
> log = SharedStruct()
> log.key = logid
> log.value = '%d' % (val)
> self.log[logid] = log
> return val
> def getStruct(self, key):
> print('getStruct(%d)' % (key))
> return self.log[key]
> def zip(self):
> print('zip()')
> if __name__ == '__main__':
> handler = CalculatorHandler()
> processor = Calculator.Processor(handler)
> transport = TSocket.TServerSocket(port=9090)
> tfactory = TTransport.TBufferedTransportFactory()
> pfactory = TBinaryProtocol.TBinaryProtocolFactory()
> server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
> # You could do one of these for a mult

[jira] [Commented] (THRIFT-4312) Erlang client cannot connect to Python server: exception error: econnrefused

2017-09-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on THRIFT-4312:


Github user walter-weinmann commented on the issue:

https://github.com/apache/thrift/pull/1365
  
The same Travis issues as in pull request #1364.


> Erlang client cannot connect to Python server: exception error: econnrefused
> 
>
> Key: THRIFT-4312
> URL: https://issues.apache.org/jira/browse/THRIFT-4312
> Project: Thrift
>  Issue Type: Bug
>  Components: Erlang - Library, Python - Library, Tutorial
>Affects Versions: 0.10.0
> Environment: Windows 10
> Erlang OTP 20
> Python 3.6.2
>Reporter: Walter Weinmann
>  Labels: Connection, Erlang, Python, Tutorial
>
> h3. Connecting the Erlang client with the Python server gives connection 
> error:
> h3. 
> h4. Erlang client:
> h4. 
> h4. 
> -- the examples are taken from the Apache Thrift tutorials ---
> {quote}-module(client).
> -include("calculator_thrift.hrl").
> -export([t/0]).
> p(X) ->
> io:format("~p~n", [X]),
> ok.
> t() ->
> Port = 9090,
> {ok, Client0} = thrift_client_util:new("localhost",
>Port,
>calculator_thrift,
>[]),
> {Client1, {ok, ok}} = thrift_client:call(Client0, ping, []),
> io:format("ping~n", []),
> {Client2, {ok, Sum}} = thrift_client:call(Client1, add,  [1, 1]),
> io:format("1+1=~p~n", [Sum]),
> {Client3, {ok, Sum1}} = thrift_client:call(Client2, add, [1, 4]),
> io:format("1+4=~p~n", [Sum1]),
> Work = #'Work'{op=?TUTORIAL_OPERATION_SUBTRACT,
>  num1=15,
>  num2=10},
> {Client4, {ok, Diff}} = thrift_client:call(Client3, calculate, [1, Work]),
> io:format("15-10=~p~n", [Diff]),
> {Client5, {ok, Log}} = thrift_client:call(Client4, getStruct, [1]),
> io:format("Log: ~p~n", [Log]),
> Client6 =
> try
> Work1 = #'Work'{op=?TUTORIAL_OPERATION_DIVIDE,
>   num1=1,
>   num2=0},
> {ClientS1, {ok, _Quot}} = thrift_client:call(Client5, calculate, 
> [2, Work1]),
> io:format("LAME: exception handling is broken~n", []),
> ClientS1
> catch
> throw:{ClientS2, Z} ->
> io:format("Got exception where expecting - the " ++
>   "following is NOT a problem!!!~n"),
> p(Z),
> ClientS2
> end,
> {Client7, {ok, ok}} = thrift_client:call(Client6, zip, []),
> io:format("zip~n", []),
> {_Client8, ok} = thrift_client:close(Client7),
> ok.
> {quote}
> h4. Python server:
> h4. 
> {quote}#!/usr/bin/env python
> from tutorial import Calculator
> from tutorial.ttypes import InvalidOperation, Operation
> from shared.ttypes import SharedStruct
> from thrift.transport import TSocket
> from thrift.transport import TTransport
> from thrift.protocol import TBinaryProtocol
> from thrift.server import TServer
> class CalculatorHandler:
> def __init__(self):
> self.log = {}
> def ping(self):
> print('ping()')
> def add(self, n1, n2):
> print('add(%d,%d)' % (n1, n2))
> return n1 + n2
> def calculate(self, logid, work):
> print('calculate(%d, %r)' % (logid, work))
> if work.op == Operation.ADD:
> val = work.num1 + work.num2
> elif work.op == Operation.SUBTRACT:
> val = work.num1 - work.num2
> elif work.op == Operation.MULTIPLY:
> val = work.num1 * work.num2
> elif work.op == Operation.DIVIDE:
> if work.num2 == 0:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Cannot divide by 0'
> raise x
> val = work.num1 / work.num2
> else:
> x = InvalidOperation()
> x.whatOp = work.op
> x.why = 'Invalid operation'
> raise x
> log = SharedStruct()
> log.key = logid
> log.value = '%d' % (val)
> self.log[logid] = log
> return val
> def getStruct(self, key):
> print('getStruct(%d)' % (key))
> return self.log[key]
> def zip(self):
> print('zip()')
> if __name__ == '__main__':
> handler = CalculatorHandler()
> processor = Calculator.Processor(handler)
> transport = TSocket.TServerSocket(port=9090)
> tfactory = TTransport.TBufferedTransportFactory()
> pfactory = TBinaryProtocol.TBinaryProtocolFactory()
> server = TServer.TSimpleServer(processor, transport, tfactory, pf

[jira] [Commented] (THRIFT-4335) Golang TPipe Windows implementation

2017-09-18 Thread Can Celasun (JIRA)

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

Can Celasun commented on THRIFT-4335:
-

The trouble is, we don't currently depend on anything outside the standard 
library (except for {{golang.org/x/net/context}} and that's only for Go<1.7) so 
I think it would be preferable to implement the required bits directly in this 
repo.

cc [~jensg]

> Golang TPipe Windows implementation
> ---
>
> Key: THRIFT-4335
> URL: https://issues.apache.org/jira/browse/THRIFT-4335
> Project: Thrift
>  Issue Type: Improvement
>  Components: Go - Library
>Reporter: Zach Wasserman
>
> We are interested in adding support for the TPipe transport in the Golang 
> Windows library. This support already exists in the C++ library 
> (https://thrift.apache.org/lib/cpp#named-pipes), and is useful for an 
> alternative to TCP on Windows. Would the maintainers be interested in merging 
> a patch adding this functionality?
> Microsoft publishes an (MIT licensed) library that provides {{net.Conn}} 
> support for named pipes 
> (https://github.com/Microsoft/go-winio/blob/master/pipe.go#L138, 
> https://github.com/Microsoft/go-winio/blob/master/pipe.go#L317). Is it 
> possible to add this as a dependency for the Thrift Go library?
> Any guidance would be appreciated, as I'd love to start implementing it ASAP.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)