• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / tchannel-go
87%
dev: 88%

Build:
Build:
LAST BUILD BRANCH: delayed_frame_alloc
DEFAULT BRANCH: dev
Repo Added 29 Dec 2015 02:57PM UTC
Files 120
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH ch_active_conn
branch: ch_active_conn
CHANGE BRANCH
x
Reset
  • ch_active_conn
  • 1.0.5
  • add-caller-forwarding
  • add_listenip_tests
  • add_onclosed
  • add_tracing
  • add_version_local
  • ajs-atom
  • ajs-atomics
  • ajs-benchbug
  • ajs-cache
  • ajs-caller
  • ajs-clamp-introspection
  • ajs-cleanup
  • ajs-conn-prefixes
  • ajs-conns
  • ajs-copy
  • ajs-err-names
  • ajs-evenmoar
  • ajs-expose-routing-delegate
  • ajs-fixme
  • ajs-flake1
  • ajs-fluent
  • ajs-git
  • ajs-install-test
  • ajs-leaks
  • ajs-lint
  • ajs-metrics
  • ajs-metrics2
  • ajs-metrics3
  • ajs-metrics6
  • ajs-moar
  • ajs-relay
  • ajs-stats-race
  • ajs-structy
  • ajs-sync-refs
  • ajs-test-cleanups
  • ajs-tests
  • ajs-timer-pool
  • ajs-timer-wheel
  • ajs-travis
  • ajs-xpr
  • ajs-zones
  • alun/get-force-map
  • alun/peers-len
  • always_set_assignment
  • alxn/580-SetStrategy-should-rescore
  • aniketpant-err-req-cancelled
  • aniketpant-expire-exchange
  • aniketpant-req-cancel
  • apache-thrift-0.10.0
  • apache-thrift-0.9
  • atomic_race
  • avoid_host
  • bench
  • bench_binaries
  • benchmark_logging
  • bump_version
  • byte_slice_params
  • call_id
  • call_logging
  • call_span
  • cancel_connect
  • cancel_ctx
  • changelog
  • changelog_gen_script
  • cleanup_examples
  • cleanup_logs
  • clone_ctx
  • close_conn
  • close_err
  • close_fix
  • close_states
  • close_test
  • closefix
  • concurrent_relay_connect
  • conn_change
  • conn_err
  • conn_gc
  • conn_options_refactor
  • conn_transition
  • connect_flake
  • connect_timeout
  • connection_process
  • consistent_init_error
  • consistent_score
  • context-with-headers
  • copy_api
  • coverage_introspection
  • coveralls_flaky
  • created_stacktrace
  • crossdock-in-travis
  • delayed_frame_alloc
  • dev
  • dev-fix-moe
  • dial_timeout
  • dial_timeout_test
  • docker-thrift-gen
  • dscp_tos
  • dup_check
  • eats_logger
  • eats_logger_compatible
  • eats_logger_compatible_rebase
  • eats_logger_updated
  • enable_1.7
  • enable_logging
  • ephemeral_py
  • error_handler_func
  • error_log
  • export_remote_peer
  • expose_conn_directly
  • fake_call_frame
  • fix-concurrent-map-writes
  • fix-glide-install
  • fix-peer-ip-tag
  • fix_0_ttl
  • fix_deps
  • fix_error_logger
  • fix_flaky_arg3
  • fix_flaky_introspect
  • fix_flaky_test
  • fix_goroutine_leaks
  • fix_lint
  • flaky_close_test
  • flaky_fragmentation_test
  • flaky_inbound_test
  • flaky_peer_remove_closed
  • flaky_peerscorenewconn
  • flaky_readtimeout
  • flaky_relay
  • flaky_relay_closed_peers
  • flaky_relay_concurrent_test
  • flaky_requeststate
  • flaky_responseclosed
  • flaky_streamcancelled
  • flaky_test
  • flaky_tests
  • flaky_writearg3
  • for-yarpc-peer-lists
  • frame_pool
  • get_args
  • get_handler
  • glide
  • glide_up
  • go-thrift-stream
  • go1.9
  • go17
  • go_tip
  • go_version
  • goroutine_leak_multiexclude
  • handle_empty_frame
  • health
  • hosts_err
  • hyperbahn_log
  • hyperbahn_retry
  • hyperbahn_stub
  • ignore_docker
  • ignore_lint
  • ignore_settimeout
  • imalison
  • imalison2
  • import_ordering
  • improve_logging
  • inbound_accept_multiple
  • include_others
  • increase_timeout
  • increase_tombstones
  • init_res
  • init_res_handling
  • inner_server
  • integrate-opentracing
  • integrate-opentracing-crossdock-tests
  • integrate-opentracing-glide-xdock
  • interceptor
  • interceptor_dev
  • interceptor_master
  • interceptor_original
  • interceptor_thrift
  • interceptor_thrift_wip
  • introspect_num_connections
  • introspect_order
  • introspection_include_version
  • introspection_tchannel
  • invaliddeadline
  • josh_streaming_explore
  • json_err
  • keon-patch-1
  • lazy_frame
  • leak_detector_skip
  • leak_end
  • lint_16
  • listenip_local
  • local_peer
  • lock_peers
  • log_conn_dir
  • log_err
  • log_fail
  • log_fields
  • log_new_channel
  • logfields
  • logger_faster
  • long_test
  • master
  • mex_readerwriter
  • mex_safe
  • misc_introspection_logging
  • mock_peerselection
  • mock_real_forward
  • moreargs_err
  • move_ctx_inside
  • muttley
  • muttley_bench
  • muttley_better_introspection
  • muttley_declined
  • muttley_flaky_close
  • muttley_forwarderr
  • muttley_inbounds
  • muttley_lazy_frame
  • muttley_remove_relaytest
  • muttley_repeat_bench
  • muttley_runcount
  • muttley_testserver
  • nathan/add_dispatcher
  • no_leak_test
  • no_mock
  • no_start_close
  • no_test_deps
  • non-error-code
  • notify-peer-change
  • parse_version_headers
  • partial_read_stream
  • pass-context-to-response-callback
  • peer-status-change-on-close
  • peer_active_conn
  • peer_heap
  • peer_heap_unexport
  • peer_score_calc
  • peer_state
  • peer_test_cleanup
  • peer_test_close
  • pengzhai
  • pin-glide
  • pin-thrift-0.10.0
  • pin-thrift-0.9
  • pre_conn
  • publicize-root-peers
  • pv_benchmark_logging
  • pv_finishes_bug
  • pv_relay_pool
  • pv_timer_wheel
  • pv_version
  • race_add_close
  • race_flaky
  • rand-load-balance
  • rand_conn
  • rank_test
  • rate_limit
  • read_test_failure
  • readarg23
  • reduce_conn_refused
  • refactor_relay_test
  • relax-write-arg3-after-timeout
  • relay_assignment
  • relay_atomic
  • relay_channel_closed
  • relay_close_conn
  • relay_default
  • relay_dest_log
  • relay_enable_test
  • relay_err_alloc
  • relay_handle_call
  • relay_interface
  • relay_log
  • relay_logger
  • relay_method
  • relay_missing_logger
  • relay_no_ctx
  • relay_not_closing
  • relay_outgoing
  • relay_outgoing_nohostport
  • relay_queuefull
  • relay_race_timeout
  • relayer
  • release_1.0.6
  • release_1.0.7
  • release_1.1
  • remote_hp_mismatch
  • remove-tracer-from-registrar
  • remove_atomic
  • remove_outbound
  • remove_peer
  • remove_remote_process_match
  • remove_test_deps
  • remove_unused
  • remove_unused_field
  • remove_verify
  • repeat_bench
  • require-thrift-fields
  • resilient_frame_parsing
  • retry_request_state
  • rk
  • robskillington/always-call-post-response-cb-if-ctx-fn-called
  • root-handler
  • rw-able-interface
  • rw-interface
  • sc_options_on_new
  • schallert/dscp_tos_rebase
  • set-handler
  • set_request_size
  • shard-relay
  • sleep_leak
  • stack_fix
  • state_ignore
  • stats_flake
  • stream
  • stream_stuck
  • stream_test
  • stream_unblock_readers
  • struct_sizes
  • such_lint
  • test_flakes
  • test_frag_slow
  • test_server
  • testserver_client
  • testutils
  • testutils_again
  • testutils_register
  • thrift-v1.0.0-dev
  • thrift_byte
  • thrift_ctx
  • thrift_gen
  • thrift_gen_case
  • thrift_gen_namespace
  • thrift_gen_tests
  • thrift_headers
  • thrift_nilerr
  • thrift_struct
  • timeout_multiplier
  • timeout_no_goroutine
  • tracing_span_order
  • track_channels
  • travis_1.7rc1
  • travis_golint
  • travis_lint
  • travisbranchinenv
  • unblock_on_close
  • unexpected_conn_change
  • unknown_exception
  • unmarshal_text
  • update_changelog
  • use-dialcontext
  • use_package_filename
  • use_root_peers
  • v1.0.0
  • v1.0.1
  • v1.0.2
  • v1.0.3
  • v1.0.4
  • v1.0.5
  • v1.0.6
  • v1.0.6-dev
  • v1.0.7
  • v1.0.8
  • v1.0.8_notes
  • v1.0.9
  • v1.1.0
  • v1.2.0
  • v1.2.0-dev
  • v1.2.1
  • v1.2.2
  • v1.2.3
  • v1.3.0
  • v1.3.0-post
  • v1.3.0-prep
  • v1.4.0
  • v1.5.0
  • v1.6.0
  • v1.6.0-post
  • v1.6.0-pre
  • v1.7.0
  • v_1.0.3
  • validate_pre_connection
  • verified_server
  • version_cut
  • version_lint
  • vet_err
  • without-headers
  • womp
  • wrap_ctx
  • writer_after_connerr
  • xichen-fix-peer-connection-race
  • ysh-context-with-headers

pending completion
1955

push

travis-ci

prashantv
Only add new active connections if channel is active

We previously checked if the channel was active using a read lock, but
this could go stale, as the channel could be closed between the time the
check was done and the connection being added -- and the connection
would be left in an active state, causing the channel to never close.

To avoid this, we now check the state and add the connection atomically.

If the connection is not added, it means the channel is closed, and so
we close the connection to avoid leaving a rogue TCP connection.

24 of 24 new or added lines in 1 file covered. (100.0%)

3743 of 4325 relevant lines covered (86.54%)

10316.1 hits per line

Relevant lines Covered
Build:
Build:
4325 RELEVANT LINES 3743 COVERED LINES
10316.1 HITS PER LINE
Source Files on ch_active_conn
  • List 0
  • Changed 38
  • Source Changed 1
  • Coverage Changed 38
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
1955 ch_active_conn Only add new active connections if channel is active We previously checked if the channel was active using a read lock, but this could go stale, as the channel could be closed between the time the check was done and the connection being added -- ... push 27 May 2016 10:12PM UTC prashantv travis-ci pending completion  
1948 ch_active_conn Only add new active connections if channel is active We previously checked if the channel was active using a read lock, but this could go stale, as the channel could be closed between the time the check was done and the connection being added -- ... push 27 May 2016 06:36PM UTC prashantv travis-ci pending completion  
See All Builds (2285)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc