tchannel 3.6.24 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/argstream.js +1 -1
  3. package/as/http.js +1 -1
  4. package/as/json.js +1 -1
  5. package/as/thrift.js +2 -1
  6. package/benchmarks/bench_server.js +2 -2
  7. package/benchmarks/compare.js +2 -2
  8. package/benchmarks/d8_peer_heap.js +1 -1
  9. package/benchmarks/http/index.js +2 -2
  10. package/benchmarks/index.js +2 -2
  11. package/benchmarks/micro/reading-all-important-fields.js +1 -1
  12. package/benchmarks/micro/reading-arg1-str.js +1 -1
  13. package/benchmarks/micro/reading-caller-name-str.js +1 -1
  14. package/benchmarks/micro/reading-service-name-str.js +1 -1
  15. package/benchmarks/micro/reading-tracing-value.js +1 -1
  16. package/benchmarks/multi_bench.js +2 -2
  17. package/benchmarks/peer_heap.js +1 -1
  18. package/benchmarks/random_sample.js +1 -1
  19. package/benchmarks/read-bench-config.js +1 -1
  20. package/benchmarks/relay_server.js +2 -2
  21. package/benchmarks/trace_server.js +2 -2
  22. package/bin/adhoc-multi.js +1 -1
  23. package/bin/adhoc.js +1 -1
  24. package/channel.js +1 -1
  25. package/connection.js +1 -1
  26. package/drain.js +1 -1
  27. package/endpoint-handler.js +2 -2
  28. package/errors.js +1 -1
  29. package/examples/as-thrift.js +1 -1
  30. package/examples/as_example1.js +2 -1
  31. package/examples/example1.js +3 -2
  32. package/examples/example2.js +3 -2
  33. package/examples/http_egress.js +1 -1
  34. package/examples/http_ingress.js +1 -1
  35. package/examples/josh_test_client.js +2 -1
  36. package/examples/josh_test_server.js +1 -1
  37. package/examples/keyvalue/client.js +1 -1
  38. package/examples/keyvalue/server.js +1 -1
  39. package/examples/legacy_example.js +1 -1
  40. package/examples/repl_client.js +1 -1
  41. package/examples/repl_server.js +1 -1
  42. package/examples/send_test.js +2 -2
  43. package/examples/term_client.js +1 -1
  44. package/examples/term_server.js +1 -1
  45. package/host-port.js +2 -2
  46. package/hyperbahn/index.js +1 -1
  47. package/hyperbahn-client.js +1 -1
  48. package/in_request.js +1 -1
  49. package/in_response.js +1 -1
  50. package/lazy_relay.js +6 -1
  51. package/lib/event_emitter.js +1 -1
  52. package/lib/lcg.js +1 -1
  53. package/lib/multicast_ctl.js +1 -1
  54. package/lib/object_pool.js +1 -1
  55. package/lib/part-list.js +1 -1
  56. package/lib/pipeline_streams.js +1 -1
  57. package/lib/statsd.js +1 -1
  58. package/monitor.js +1 -1
  59. package/null-logger.js +2 -2
  60. package/operations.js +1 -1
  61. package/out_request.js +1 -1
  62. package/out_response.js +1 -1
  63. package/package.json +3 -4
  64. package/peer.js +1 -1
  65. package/peer_heap.js +1 -1
  66. package/peer_score_strategies.js +1 -1
  67. package/peers_base.js +1 -1
  68. package/range.js +1 -21
  69. package/relay_handler.js +1 -1
  70. package/reqres_states.js +1 -1
  71. package/request-handler.js +1 -1
  72. package/request.js +1 -1
  73. package/retry-flags.js +1 -1
  74. package/root_peers.js +1 -1
  75. package/scripts/xlang_test.js +1 -2
  76. package/service-name-handler.js +2 -2
  77. package/services.js +1 -1
  78. package/stat-tags.js +1 -1
  79. package/streaming_in_request.js +1 -1
  80. package/streaming_in_response.js +1 -1
  81. package/streaming_out_request.js +1 -1
  82. package/streaming_out_response.js +1 -1
  83. package/sub_peers.js +1 -1
  84. package/tcollector/reporter.js +2 -2
  85. package/test/argstream.js +1 -1
  86. package/test/as-http.js +1 -1
  87. package/test/as-json.js +1 -1
  88. package/test/as-thrift.js +1 -1
  89. package/test/balance_peer_requests.js +1 -1
  90. package/test/busy.js +1 -1
  91. package/test/chan_drain.js +1 -1
  92. package/test/connection-stats.js +1 -1
  93. package/test/connection-with-statsd.js +1 -1
  94. package/test/double-response.js +1 -1
  95. package/test/ephemeral-client.js +1 -1
  96. package/test/errors.js +1 -1
  97. package/test/event_emitter.js +1 -1
  98. package/test/examples.js +1 -1
  99. package/test/health.js +1 -1
  100. package/test/hyperbahn-client/constructor.js +1 -1
  101. package/test/hyperbahn-client/sub-channel.js +1 -1
  102. package/test/hyperbahn-client/thrift-codec.js +1 -1
  103. package/test/identify.js +1 -1
  104. package/test/index.js +1 -1
  105. package/test/large-send.js +1 -1
  106. package/test/lazy_conn_handler.js +1 -1
  107. package/test/lazy_handler.js +1 -1
  108. package/test/lib/alloc-cluster.js +1 -1
  109. package/test/lib/barplot.js +1 -1
  110. package/test/lib/barrier.js +1 -1
  111. package/test/lib/base2.js +1 -1
  112. package/test/lib/batch-client.js +1 -1
  113. package/test/lib/cluster_search.js +1 -1
  114. package/test/lib/collapsed-assert.js +1 -1
  115. package/test/lib/count_stream.js +1 -1
  116. package/test/lib/iter_stream.js +1 -1
  117. package/test/lib/load_config.js +1 -1
  118. package/test/lib/peer_score_obs.js +1 -1
  119. package/test/lib/raw_service.js +1 -1
  120. package/test/lib/resource_pool.js +1 -1
  121. package/test/lib/rng_stream.js +1 -1
  122. package/test/lib/run_server.js +1 -1
  123. package/test/lib/simple_validators.js +1 -1
  124. package/test/lib/stream_check.js +1 -1
  125. package/test/lib/stream_search.js +1 -1
  126. package/test/lib/test_isolate_search.js +1 -1
  127. package/test/lib/test_search.js +1 -1
  128. package/test/max-call-overhead.js +1 -1
  129. package/test/max_pending.js +1 -1
  130. package/test/no_frag_arg1.js +1 -1
  131. package/test/non-zero-ttl.js +1 -1
  132. package/test/object_pool.js +1 -1
  133. package/test/peer-to-peer-load-balance.js +1 -1
  134. package/test/peer.js +1 -1
  135. package/test/peer_drain.js +1 -1
  136. package/test/peer_strategies.js +1 -1
  137. package/test/peers.js +1 -1
  138. package/test/ping.js +1 -1
  139. package/test/pool-of-servers.js +1 -1
  140. package/test/register.js +1 -1
  141. package/test/regression-conn-double-buildResponse.js +1 -1
  142. package/test/regression-inOps-leak.js +1 -1
  143. package/test/regression-listening-on-used-port.js +1 -1
  144. package/test/relay-clamps-the-ttl.js +1 -1
  145. package/test/relay-kills-socket-after-timeouts.js +1 -1
  146. package/test/relay-stats.js +1 -1
  147. package/test/relay-to-dead.js +1 -1
  148. package/test/relay-under-timeouts.js +1 -1
  149. package/test/relay.js +1 -1
  150. package/test/relay_lazy.js +1 -1
  151. package/test/request-error-context.js +1 -1
  152. package/test/request-stats.js +1 -1
  153. package/test/request-with-statsd.js +1 -1
  154. package/test/response-stats.js +1 -1
  155. package/test/response-with-statsd.js +1 -1
  156. package/test/retry.js +1 -1
  157. package/test/safe-quit.js +1 -1
  158. package/test/send.js +1 -1
  159. package/test/streaming-resp-err.js +1 -1
  160. package/test/streaming.js +1 -1
  161. package/test/streaming_bisect.js +1 -1
  162. package/test/tchannel.js +1 -1
  163. package/test/tcollector-reporter.js +1 -1
  164. package/test/time_heap.js +1 -1
  165. package/test/timeouts.js +1 -1
  166. package/test/trace/basic_server.js +1 -1
  167. package/test/trace/lib/basic_server_fixture.js +1 -1
  168. package/test/trace/lib/server_2_requests_fixture.js +1 -1
  169. package/test/trace/outpeer_span_handle.js +1 -1
  170. package/test/trace/server_2_requests.js +2 -2
  171. package/test/v2/args.js +2 -2
  172. package/test/v2/call.js +2 -2
  173. package/test/v2/cancel.js +2 -2
  174. package/test/v2/checksum.js +2 -2
  175. package/test/v2/claim.js +2 -2
  176. package/test/v2/cont.js +2 -2
  177. package/test/v2/error_response.js +2 -2
  178. package/test/v2/frame.js +2 -2
  179. package/test/v2/header.js +2 -2
  180. package/test/v2/init.js +2 -2
  181. package/test/v2/lazy_frame.js +2 -2
  182. package/test/v2/lib/test_body.js +2 -2
  183. package/test/v2/ping.js +2 -2
  184. package/test/v2/tracing.js +1 -1
  185. package/time_heap.js +1 -1
  186. package/trace/agent.js +1 -1
  187. package/trace/span.js +1 -1
  188. package/v1/frame.js +2 -2
  189. package/v1/handler.js +2 -2
  190. package/v1/header.js +2 -2
  191. package/v1/index.js +2 -2
  192. package/v1/parser.js +2 -2
  193. package/v2/args.js +1 -1
  194. package/v2/call.js +2 -2
  195. package/v2/call_flags.js +1 -1
  196. package/v2/cancel.js +2 -2
  197. package/v2/checksum.js +2 -2
  198. package/v2/claim.js +2 -2
  199. package/v2/cont.js +1 -1
  200. package/v2/error_response.js +2 -2
  201. package/v2/frame.js +2 -2
  202. package/v2/handler.js +2 -2
  203. package/v2/header.js +2 -2
  204. package/v2/index.js +2 -2
  205. package/v2/init.js +2 -2
  206. package/v2/lazy_frame.js +1 -1
  207. package/v2/out_request.js +1 -1
  208. package/v2/out_response.js +1 -1
  209. package/v2/ping.js +2 -2
  210. package/v2/tracing.js +2 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,48 @@
1
+ # v3.7.0
2
+
3
+ - Introduces the `allowOptionalArguments` flag for `TChannelAsThrift`, so
4
+ services and clients can opt-in for the looser semantics for fields of Thrift
5
+ argument structs that are not explicitly optional or required. Enabling this
6
+ flag makes argument fields optional by default (they were formerly required
7
+ by default, and optional was not possible to express). Consequently,
8
+ existing IDL should change fields to required, or add null checks to existing
9
+ request handlers.
10
+ - Adds another guard to prevent a dangling reference to a reclaimed Lazy Relay
11
+ Request from throwing an exception upon attempting to follow up with an error
12
+ frame.
13
+
14
+ # v3.6.24
15
+
16
+ - Updated dependencies for compatibility with Node.js 4.
17
+ - Changes the default for peer selection: now uses a heap to choose peers for
18
+ outbound requests. This can be configured with the `choosePeerWithHeap`
19
+ TChannel option.
20
+ - Addresses a problem in lazy relay, which would read the response flags
21
+ instead of the response code, confusing stats.
22
+ - Adds support for tryConnect() on peers, with back-off.
23
+ - Ensures a minimum number of connections for each peer. The intent is to
24
+ eventually support a connections count goal.
25
+ - Fixes a bug in the HTTP argument scheme regarding the Content-Length header.
26
+ - Removes the special cases for the "self" peer. These interfaces have been
27
+ removed. External usage of these private interfaces is not expected.
28
+ - Numerous performance improvements, particularly using object pooling and lazy
29
+ buffer slicing.
30
+
31
+ Hyperbahn:
32
+
33
+ - Adds a Hyperbahn::discover method to the Hyperbahn client, suitable for
34
+ querying available peers for a given service.
35
+ - Now emits stats for error frames produced and forwarded.
36
+
37
+ Thrift:
38
+
39
+ - Relaxes the constraint that application exeptions in the Thrift arg scheme
40
+ must be instances of the JavaScript Error base type.
41
+ - The Thrift argument scheme instance now exposes a `getServiceEndpoints`
42
+ method for introspecting methods.
43
+ - ThriftRW upgraded to version 3.4.3, capturing fixes for lists of lists, and
44
+ maps with integer keys, and adds support for the i8 alias for the byte type.
45
+
1
46
  # v3.6.3
2
47
 
3
48
  - Added consistent host port validation in listen(), connect(), and init
package/argstream.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/as/http.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/as/json.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/as/thrift.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -51,6 +51,7 @@ function TChannelAsThrift(opts) {
51
51
  strict: opts.strict,
52
52
  allowFilesystemAccess: true,
53
53
  allowIncludeAlias: opts.allowIncludeAlias,
54
+ allowOptionalArguments: opts.allowOptionalArguments,
54
55
  fs: opts.fs
55
56
  });
56
57
 
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // Copyright (c) 2015 Uber Technologies, Inc.
2
+ // Copyright (c) 2016 Uber Technologies, Inc.
3
3
  //
4
4
  // Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  // of this software and associated documentation files (the "Software"), to deal
package/bin/adhoc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // Copyright (c) 2015 Uber Technologies, Inc.
2
+ // Copyright (c) 2016 Uber Technologies, Inc.
3
3
  //
4
4
  // Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  // of this software and associated documentation files (the "Software"), to deal
package/channel.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/connection.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/drain.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
package/errors.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -17,6 +17,7 @@
17
17
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
18
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  // THE SOFTWARE.
20
+
20
21
  'use strict';
21
22
 
22
23
  var assert = require('assert');
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -17,6 +17,7 @@
17
17
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
18
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  // THE SOFTWARE.
20
+
20
21
  'use strict';
21
22
  /*eslint no-console: 0*/
22
23
 
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -17,6 +17,7 @@
17
17
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
18
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  // THE SOFTWARE.
20
+
20
21
  'use strict';
21
22
  /*eslint no-console: 0*/
22
23
 
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -17,6 +17,7 @@
17
17
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
18
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  // THE SOFTWARE.
20
+
20
21
  'use strict';
21
22
 
22
23
  var argv = require('minimist')(process.argv.slice(2));
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/host-port.js CHANGED
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/in_request.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/in_response.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/lazy_relay.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -453,6 +453,11 @@ LazyRelayInReq.prototype.sendErrorFrame =
453
453
  function sendErrorFrame(codeName, message) {
454
454
  var self = this;
455
455
 
456
+ // ObjectPool weird free() issue; bail early
457
+ if (!self.channel) {
458
+ return;
459
+ }
460
+
456
461
  var now = self.channel.timers.now();
457
462
  self._observeInboundErrorFrame(now, codeName);
458
463
 
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/lib/lcg.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/lib/part-list.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/lib/statsd.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/monitor.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/null-logger.js CHANGED
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
2
-
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
+ //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
5
5
  // in the Software without restriction, including without limitation the rights
package/operations.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/out_request.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/out_response.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "tchannel",
3
3
  "description": "network multiplexing and framing protocol for RPC or parser drag racing",
4
4
  "author": "mranney@uber.com",
5
- "version": "3.6.24",
5
+ "version": "3.7.0",
6
6
  "scripts": {
7
7
  "lint": "eslint $(git ls-files | grep '.js$')",
8
8
  "travis": "npm run test",
@@ -43,12 +43,11 @@
43
43
  "safe-json-parse": "^4.0.0",
44
44
  "sse4_crc32": "4.1.1",
45
45
  "tape-cluster": "2.1.0",
46
- "thriftrw": "^3.4.3",
46
+ "thriftrw": "^3.5.0",
47
47
  "xorshift": "^0.2.0",
48
48
  "xtend": "^4.0.0"
49
49
  },
50
50
  "devDependencies": {
51
- "ansi-color": "^0.2.1",
52
51
  "async": "^0.9.0",
53
52
  "chalk": "^1.0.0",
54
53
  "child_pty": "3.0.1",
@@ -72,7 +71,7 @@
72
71
  "tape": "^4.0.0",
73
72
  "through2": "^0.6.3",
74
73
  "time-mock": "^0.1.2",
75
- "uber-licence": "^1.1.0",
74
+ "uber-licence": "^2.0.0",
76
75
  "uber-statsd-client": "1.3.2"
77
76
  },
78
77
  "pre-commit": [],
package/peer.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/peer_heap.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2015 Uber Technologies, Inc.
1
+ // Copyright (c) 2016 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal