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

uber / tchannel-go / 1988 / 1
88%
dev: 88%

Build:
Build:
LAST BUILD BRANCH: delayed_frame_alloc
DEFAULT BRANCH: dev
Ran 02 Jun 2016 11:24PM UTC
Files 42
Run time 3s
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

02 Jun 2016 11:21PM UTC coverage: 86.224% (+0.9%) from 85.316%
TEST_TIMEOUT_SCALE=20

push

travis-ci

prashantv
Fix channel close not checking state under write lock

It's possible for multiple connections to close and trigger
connectionCloseStateChange from multiple goroutines.

This could lead to:

G1: C1 closes, and runs connectionCloseStateChange
G1: Finds minState connectionInboundClosed
G1: updateTo = ChannelInboundClosed
<g1 scheduled off before it completes>
G2: C2 closes, and runs connectionCloseStateChange
G2: Finds minState connectionClosed
G2: updateTo = ChannelClosed
G2: Updates channel state to ChannelClosed
<g1 is rescheduled>
G1: Grabs state lock, and sets state to ChannelInboundClosed

Since all connections are closed, the channel will be stuck in
ChannelInboundClosed.

We should be checking that the decision we made is not stale by
comparing the state matches what we had before the lock when making
the change.

3749 of 4348 relevant lines covered (86.22%)

2825.56 hits per line

Source Files on job 1988.1 (TEST_TIMEOUT_SCALE=20)
  • Tree
  • List 0
  • Changed 38
  • Source Changed 0
  • Coverage Changed 38
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 1988
  • Travis Job 1988.1
  • a3089662 on github
  • Prev Job for TEST_TIMEOUT_SCALE=20 on fix_flaky_test (#1987.4)
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

© 2026 Coveralls, Inc