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

hyperledger / fabric-x-committer / 30786611240
91%

Build:
DEFAULT BRANCH: main
Ran 03 Aug 2026 05:18AM UTC
Jobs 3
Files 131
Run time 1min
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

03 Aug 2026 05:14AM UTC coverage: 91.314% (+0.1%) from 91.204%
30786611240

push

github

web-flow
[coordinator] Align VC and verifier manager stream behavior (#725)

#### Type of change

- Bug fix
- Test update

#### Description

- Bind both managers to one receive-error classification,
`classifyStreamRecvError`. The VC
manager previously retried an `InvalidArgument` under the sustain policy
forever; the verifier
  manager already treated it as non-retryable.
- Skip empty batches in the VC send loop instead of marshalling and
sending an empty `VcBatch`.
- Do not forward an empty batch from the verifier's receive loop to the
VC manager, which is
where those empty batches came from. The VC manager already guards its
own output this way.
- Record at the VC's receive goroutine what breaks if the two output
writes are bound to the
stream context rather than the manager's: the re-queue becomes reachable
on every stream
  failure, the statuses of a re-queued batch are delivered twice, and
`Service.numTxsInProgress` is decremented twice for one transaction. The
existing NOTE stated
the requirement but not its consequence, which is what makes it easy to
undo.

#### Additional details (Optional)


`TestValidatorCommitterManagerX/an_empty_batch_is_not_sent_to_the_vcservice`
sends a real batch
first, because the first batch of a stream goes through
`splitAndSendToVC`, which already sends
nothing for an empty batch — the empty send is only reachable once that
path is behind us. With
the guard removed the test observes three batches on the wire instead of
two.

No behavior changed for the failed-forward re-queue itself. The status
write is already attempted
first and returns early on failure, so the nodes are never forwarded for
a batch whose statuses
were dropped; the reverse ordering cannot be fixed by ordering and is
instead held unreachable by
the context wiring, which is what the NOTE now explains.

This touches the same receive and send loops as #724, so whichever
merges second needs a trivial
rebase.

#### Related issues

- resolves #721

Signed-off-by: ... (continued)

17 of 17 new or added lines in 2 files covered. (100.0%)

17 existing lines in 6 files now uncovered.

10544 of 11547 relevant lines covered (91.31%)

33581.35 hits per line

Coverage Regressions

Lines Coverage ∆ File
6
85.26
-1.73% service/vc/database.go
4
87.8
-2.44% service/vc/committer.go
3
91.15
-1.33% service/vc/validator_committer_service.go
2
85.76
-0.68% service/query/batcher.go
1
96.63
-1.12% mock/sigverifier.go
1
81.67
-1.67% loadgen/adapters/vcservice.go
Jobs
ID Job ID Ran Files Coverage
1 core-db-test - 30786611240.1 03 Aug 2026 05:18AM UTC 100
46.56
GitHub Action Run
2 unit-test - 30786611240.2 03 Aug 2026 05:20AM UTC 95
84.53
GitHub Action Run
3 db-test - 30786611240.3 03 Aug 2026 05:19AM UTC 131
79.09
GitHub Action Run
Source Files on build 30786611240
  • Tree
  • List 131
  • Changed 18
  • Source Changed 0
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 9ecffbe8 on github
  • Prev Build on main (#30786346119)
  • Next Build on main (#30786649713)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc