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

nats-io / nats-streaming-server / 1870
92%
main: 92%

Build:
Build:
LAST BUILD BRANCH: add-eol-note
DEFAULT BRANCH: main
Ran 26 Apr 2019 08:36PM CUT
Jobs 1
Files 25
Run time 2s
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

26 Apr 2019 08:26PM CUT coverage: 91.978% (+0.004%) from 91.974%
1870

push

travis-ci

kozlovic
[FIXED] Clustering: possible deadlock on sub/conn close

There was a wrong assumption that calling raft.Apply() without
waiting on the future result would be non blocking. This is not
the case. RAFT internally uses go channels and there may be cases
when a receiver on a channel is busy and so sending to that channel
will block.

This is what was happening. RAFT would invoke the streaming server
code to apply the replication of a connection close. In this process
we try to remove subscriptions of that connection. This requires
the subStore lock. However, another go routine may be holding that
lock (and possibly subscription's lock, queue state, etc..) and
at the same time call raft.Apply() to replicate an aggregate of
subscription's sent/ack operations. In some cases this would actually
block, causing the deadlock.

Reworked handling of replication of sub's sent/ack events so that
this does not happen anymore.

Resolves #812

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>

11408 of 12403 relevant lines covered (91.98%)

49070.22 hits per line

Jobs
ID Job ID Ran Files Coverage
2 1870.2 26 Apr 2019 08:36PM CUT 0
91.98
Travis Job 1870.2
Source Files on build 1870
  • List 0
  • Changed 19
  • Source Changed 1
  • Coverage Changed 19
Loading...
Coverage∆FileLinesRelevantCoveredMissedHits/Line
  • Back to Repo
  • Travis Build #1870
  • e5eb1013 on github
  • Prev Build on fix_deadlock (#1867)
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