Commit Graph

3102 Commits

Author SHA1 Message Date
Changli Gao
257dceff5e THRIFT-4160 (pt. 2): Fix wrong numActiveProcessors_ when failing to notify any IO thread
Client: cpp

This closes #1239
We should decrease numActiveProcessors_ when failing to notify any
IO thread.
2017-04-05 19:29:24 -04:00
James E. King, III
7f5a8c28bc THRIFT-4164: update openssl cleanup to match current requirements and document TSSLSocketFactory lifetime requirements
Client: cpp

This closes #1235
2017-04-04 09:36:38 -04:00
James E. King, III
00d4252392 THRIFT-3978: tighten up pthread mutex implementation, removing asserts and replacing them with exceptions
Client: cpp

This closes #1228
2017-04-04 09:32:45 -04:00
Changli Gao
7e7a1a7c10 TSocket: Don't close connections when failing to read/write
Client: cpp

Sockets maybe registered to a event base of libevent, so the
following epoll_ctl(2) may fail due to EBADF, or may
delete other sockets. Chaos occurs.

This closes #1217
2017-04-02 23:37:14 -04:00
Changli Gao
bf42d55189 THRIFT-4161: TNonblockingServer: Fix using uninitialized event_
Client: cpp

When there are more than one IO threads, and we have failed to notify
one IO threads, then we have to close the connection. But the event_
in that connection isn't initialized. We should use setIdle() instead.

This closes #1216
2017-04-02 23:30:04 -04:00
Changli Gao
d4fa706dca THRIFT-4160: Fix use closed(freed) connections in non-blocking server
Client: cpp

When failing to add tasks into the thread manager, we close the
corresponding connections, then set the flags of these connections,
which have been already freed.

We should decrease the number of active processors.

This closes #1211
2017-04-02 23:24:54 -04:00
Chris Vasselli
df3223c85d THRIFT-3859: Add support for Unix Domain Sockets to TSocketServer and TSocketTransport.
Client: cocoa

TSocketServer and TSocketTransport have been refactored to support sockets created using either a port or a path.
Existing behavior for port-based socket transport is unchanged by this commit.

This closes #1031
2017-04-02 23:14:29 -04:00
Jens Geyer
90b6304901 THRIFT-4157 outdated readme about Haxe installation on Linux
Client: Haxe
Patch: Jens Geyer

This closes #1234
2017-04-02 16:06:08 +02:00
James E. King, III
c6ded922c5 THRIFT-4154: properly close socket whether it is persistent or not on close()
Client: php

This closes #1011
This closes #1233
2017-04-01 23:26:54 -04:00
James E. King, III
d5536d1ea0 THRIFT-3730: go server errors are logged twice
Client: go
Patch: zhujun2006 <stone1342006 at gmail dot com>

This closes #940
2017-04-01 11:21:12 -04:00
Jim Apple
117a5cca77 THRIFT-4138: Remove undefined behavior imported from Boost
Client: C++

There is undefined behavior in boost::lexical_cast that was fixed in
https://github.com/boostorg/lexical_cast/issues/21, but that fix is
only available in recent Boost releases. This patch removes all uses
of lexical_cast instead.

That removes the last undefined behavior, so this patch also makes
ubsan.sh unconditionally fail on undefined behavior.

This closes #1232
2017-04-01 10:51:48 -04:00
James E. King, III
5c3de6d3d2 THRIFT-4140: fix unsafe call to gmtime
Client: C++
Patch: Adriaan Schmidt <adriaan.schmidt@siemens.com>

This closes #1231
2017-04-01 10:46:25 -04:00
tpcwang
bede86a032 THRIFT-3944 TSSLSocket has dead code in checkHandshake
Client: C++

This closes #1110
2017-04-01 10:14:16 -04:00
James E. King, III
7bc943196d THRIFT-4151: disable pthread concurrency analysis code in standard builds
Client: C++

This closes #1229
2017-03-31 21:25:20 -04:00
Chao Sun
c063b30ecd THRIFT-4147: Rust: protocol should accept transports with non-static lifetime
Client: rs

This closes #1226
2017-03-30 17:28:58 -04:00
Flier Lu
1187060183 THRIFT-4113: export thrift::mem::TBufferTransport
Client: rs

This closes #1218
2017-03-30 17:25:10 -04:00
James E. King, III
177c37ce85 THRIFT-4069: perl library cleanup - namespaces, versioning, exception fixes
Client: perl

This closes #1220
2017-03-30 17:09:04 -04:00
kufd
1360270eb8 THRIFT-4126: implement required fields validation in php extension when validate compiler option is enabled
Client: php

This closes #1215
2017-03-30 16:42:11 -04:00
Jim Apple
147c2849af THRIFT-2026: Eliminate some undefined behavior in C/C++
Clients: glib, C++
Patch: Jim Apple <jbapple-impala@apache.org>

This closes #1214

This patch fixes some undefined behavior were found using Clang's
UndefinedBehaviorSanitizer (UBSan). To check for undefined behavior,
run /build/docker/scripts/ubsan.sh. This is run during CI builds, as
well.

The examples of the types of undefined behavior fixed in this commit
are:

1. Enumerations exhibit undefined behavior when they have values
   outside of a range dependent on the values of their enumerators, as
   specified in C++14's chapter 7.2 ("Enumeration declarations"),
   paragraph 8.

2. Left shift of negative values, used in zigzag encoding, is
   undefined behavior. See 5.8 ("Shift operators"), paragraph 2 for
   C++ and 6.5.7 ("Bitwise shift operators"), paragraph 4 for C99 and
   C11.
2017-03-25 08:16:18 -04:00
Jonathan Pearlin
6c08ac72c6 THRIFT-4130: Release connection back to managed pool.
Client: C++

This closes #1212
2017-03-22 20:33:20 -04:00
James E. King, III
847fae9388 THRIFT-3959: document that the go simple server is not simple
Client: go
Patch: JodeZer <jeffery1993@hotmail.com>

This closes #1213
2017-03-22 15:17:30 -04:00
Changli Gao
75386db8c0 THRIFT-4129: Fix fd leak when failing to dispatch new connections
Client: C++

This closes #1210
2017-03-22 15:03:37 -04:00
Yao Jin
6582757752 THRIFT-4029: add MANIFEST.in to include the extension files
Client: py

This closes #1206
2017-03-10 06:24:31 -05:00
James E. King, III
07f59971bd THRIFT-4081: appveyor retooling - added mingw64 build as a second job to the CI build process
This closes #1205
2017-03-10 06:18:33 -05:00
Gonzalo Aguilar Delgado
b79396f799 THRIFT-4108: c_glib ssl implementation fixes - remove global ssl context and more
Client: glib

This closes #1208
2017-03-06 19:09:06 -05:00
Buğra Gedik
36d1b0dea5 THRIFT-3891 TNonblockingServer configured with more than one IO threads does not always return from serve() upon stop()
Client: C++
Patch: additional changes by jking@apache.org to improve the test and stop clean in all cases

This closes #1080
This closes #1196
2017-02-27 23:44:35 -05:00
Christopher Tubbs
5038466e5e THRIFT-1805 Provide option for handling RTEs
Client: Java

Adds a Java option to the generator to generate code which lets Thrift
handle RuntimeExceptions from a service, and present them as
TApplicationException to the client.

This closes #1186
2017-02-27 23:38:44 -05:00
Yao Jin
e2bc972750 THRIFT-4102 remove useless code cause performance problem
Client: python

This closes #1203
2017-02-24 10:28:27 -05:00
Håkon Hitland
e66b8fcde3 THRIFT-3984 PHP7 extension causes segfault
The PHP 7 extension can sometimes free strings it does not own,
when serializing string map keys, or the name of called methods.
The latter case was somewhat migitated since the double-free has no
effect on interned strings.
Using ZVAL_STR_COPY instead of ZVAL_STR will increment the reference
count, making the following destructor call correct.

Fix memory leak in PHP 7

Fix memory leak when deserializing maps or sets.
zend_hash_update will add its own reference to the key, so we need to
destruct the key zval to not leak.
We don't need to destruct the value, the hash table will take ownership
of it.

This closes #1152
2017-02-23 11:43:45 -05:00
James E. King, III
37aac3bb58 THRIFT-3706: added cross test support for backwards compatible multiplexed server, added c_glib testBinary, fixed a number of glib object reference issues
Client: c_glib, java

This closes #1200
2017-02-22 12:46:04 -05:00
Adam Curtis
4361ecc3a1 THRIFT-3801 - Node Thrift client throws exception with multiplexer and responses that are bigger than a single buffer
Client: nodejs

This closes #773
This closes #1063
This closes #1202
2017-02-22 11:24:41 -05:00
D. Can Celasun
43fb34df28 THRIFT-4011 Sets of Thrift structs generate Go code that can't be serialized to JSON
Client: Go
Patch: D. Can Celasun <dcelasun@gmail.com>

This closes #1156
2017-02-21 22:32:49 +01:00
Gonzalo Aguilar Delgado
bc0082e023 THRIFT-3706: Implement multiplexed protocol client and test client for c_glib; test server for java; integrate into crosstest
Client: c_glib

This closes #1191
This closes #1199
2017-02-20 14:04:17 -05:00
James E. King, III
06190874c8 THRIFT-4084: Add a SSL/TLS negotiation check to crossfeature to verify SSLv3 is not active and that at least one of TLSv1.0 through 1.2 are accepted.
Client: csharp, d, go, nodejs, perl

This closes #1197
2017-02-20 08:52:11 -05:00
James E. King, III
239233afb6 THRIFT-4077: fix Appveyor warnings (VS2015) in PlatformSocket.h
Client: C++

This closes #1198
2017-02-20 08:04:12 -05:00
Vivek Jain
655b9b6ef8 THRIFT-3921: Add ostream operator<< functions for enums (working with THRIFT-4060)
Client: C++

This closes #1083
This closes #1194
2017-02-18 14:30:46 -05:00
Aleksey Pesternikov
400b346db2 THRIFT-2504: Add default processor to java multiplexed processor to handle older clients
Client: Java

This closes #114
This closes #1195
2017-02-18 13:58:21 -05:00
James E. King, III
377719c2d8 THRIFT-3272 (THRIFT-4066) fix perl SSL authentication support; fixed error in erlang test client using wrong key file and added CA
Client: Perl

This closes #1189
2017-02-15 14:33:20 -05:00
James E. King, III
b28160b9c3 THRIFT-2364: use oasis to build thrift for ocaml
Client: OCaml
Patch: Spiros Eliopoulos <seliopou@gmail.com>

This closes #1193
2017-02-15 14:23:44 -05:00
James E. King, III
0a660ee285 THRIFT-4084: only join threads if joinable
Client: cpp
Patch: Chris Grebeldinger <cgrebeld@gmail.com>

This closes #1188
2017-02-13 18:25:56 -05:00
James E. King, III
b4c190b6ea THRIFT-4060 add better support in the cpp generator for custom ostream operators on structures
Client: C++

This closes #1172
2017-02-13 16:39:59 -05:00
James E. King, III
36628a28e9 THRIFT-3369 Provide SSL/TLS client for c_glib
Client: c_glib
Patch: Gonzalo Aguilar Delgado <gaguilar@level2crm.com>

This closes #1185
2017-02-13 15:25:41 -05:00
Nobuaki Sukegawa
e8ba7877ba THRIFT-4026 TSSLSocket doesn't work with Python < 2.7.9
This closes #1166
2017-02-12 21:14:48 +09:00
Nobuaki Sukegawa
4626fd889d THRIFT-3938 Python TNonblockingServer does not work with SSL
This closes #1100
2017-02-12 21:11:36 +09:00
James E. King, III
bff044667c THRIFT-4075: better support for headers-only boost with mingw
Client: C++

This closes #1184
2017-02-11 01:18:03 -05:00
James E. King, III
e1832c3543 THRIFT-3622: remove auto_ptr use in the codebase because it is deprecated
Client: C++

This closes #1183
2017-02-10 13:03:10 -05:00
Swati Kumar
3590f1e7ca THRIFT-4072 php: TCurlClient - Add the possibility to send custom headers
Client: php

This closes #1178
2017-02-09 15:12:47 -05:00
James E. King, III
9019b280ea THRIFT-4065 fix SIGCHLD handling for perl ForkingServer and document restrictions
Client: perl

This closes #1176
2017-02-08 20:53:09 -05:00
James E. King, III
3a8bbbd4a6 THRIFT-3896 fix map type with string key can not access deserialized by php extension
Client: php
Patch: feidong@anjuke.com

This closes #1062
2017-02-06 12:57:21 -05:00
James E. King, III
a3d6be906b THRIFT-4068 fix comment in java server socket code
Client: Java
Patch: pigbrain <hyundong.lee@nhnent.com>

This closes #1177
2017-02-04 00:23:55 -05:00