Skip to content

Commit 091a792

Browse files
committed
Fix ListenOptions UseSdkFlowControl and update changelog
1 parent 9db5a2e commit 091a792

File tree

9 files changed

+18
-21
lines changed

9 files changed

+18
-21
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,18 @@ a slow circuit can get stalled at the router because of flow control back-pressu
1414
This then back-pressures all circuits from the SDK to that router.
1515

1616
By moving the flow-control to the SDK, a slow circuit will not negatively impact
17-
other circuits to the same router. This is currently enabled in the `DialOptions`.
17+
other circuits to the same router. This is currently enabled in the `DialOptions`
18+
and `ListenOptions` for the dial and hosting sides respectively.
1819

1920
```
2021
t := true
2122
dialOptions := &ziti.DialOptions{
2223
ConnectTimeout: wf.ConnectTimeout,
2324
SdkFlowControl: &t,
2425
}
26+
27+
listenOptions := ziti.DefaultListenOptions()
28+
listenOptions.SdkFlowControl = &t
2529
```
2630

2731
As this is an experimental feature, the configuration may change or be removed

example/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ require (
8383
github.com/openziti/channel/v4 v4.0.6 // indirect
8484
github.com/openziti/edge-api v0.26.42 // indirect
8585
github.com/openziti/identity v1.0.101 // indirect
86-
github.com/openziti/metrics v1.4.1-0.20250428140813-8f25360e7e83 // indirect
86+
github.com/openziti/metrics v1.4.1 // indirect
8787
github.com/openziti/secretstream v0.1.32 // indirect
8888
github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect
8989
github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect

example/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,8 @@ github.com/openziti/foundation/v2 v2.0.59 h1:PJwrcTq62x+cONBeKMlnsuphsTlOvTz8j8p
366366
github.com/openziti/foundation/v2 v2.0.59/go.mod h1:76gmsdIBHvv4O3I0TuFBfO58Rv7YN8FA0ojwYz27ZxE=
367367
github.com/openziti/identity v1.0.101 h1:XujPT6eCv3Gqsodh9846EoWfQZwDAFrjPLxm1cipveY=
368368
github.com/openziti/identity v1.0.101/go.mod h1:OZLcSf2wGqAa7/8SmbwLQxv0Gsv4i4pxTk83WPHIr+o=
369-
github.com/openziti/metrics v1.4.1-0.20250428140813-8f25360e7e83 h1:XJfBC7Yd6bQCUsGaCXqoOyBNTtdohGepxTveFv7Yn7E=
370-
github.com/openziti/metrics v1.4.1-0.20250428140813-8f25360e7e83/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
369+
github.com/openziti/metrics v1.4.1 h1:JMnfmW8liTzmqJpd7HDPCSvDDFg1UrE0WoLhW9XdIG8=
370+
github.com/openziti/metrics v1.4.1/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
371371
github.com/openziti/runzmd v1.0.33 h1:tOyjRoUuVXIo1z1pNU32jALWkMmhzsSaDrhLtuOn3Ts=
372372
github.com/openziti/runzmd v1.0.33/go.mod h1:8c/uvZR/XWXQNllTq6LuTpfKL2DTNxfI2X2wYhgRwik=
373373
github.com/openziti/secretstream v0.1.32 h1:89/ZVcwIQjdVmWDfVRfMEChJJXTLXJ59AYBw5j646M4=

example/influxdb-client-go/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ require (
9898
github.com/openziti/edge-api v0.26.42 // indirect
9999
github.com/openziti/foundation/v2 v2.0.59 // indirect
100100
github.com/openziti/identity v1.0.101 // indirect
101-
github.com/openziti/metrics v1.4.1-0.20250428140813-8f25360e7e83 // indirect
101+
github.com/openziti/metrics v1.4.1 // indirect
102102
github.com/openziti/secretstream v0.1.32 // indirect
103103
github.com/openziti/transport/v2 v2.0.168 // indirect
104104
github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect

example/influxdb-client-go/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,8 +421,8 @@ github.com/openziti/foundation/v2 v2.0.59 h1:PJwrcTq62x+cONBeKMlnsuphsTlOvTz8j8p
421421
github.com/openziti/foundation/v2 v2.0.59/go.mod h1:76gmsdIBHvv4O3I0TuFBfO58Rv7YN8FA0ojwYz27ZxE=
422422
github.com/openziti/identity v1.0.101 h1:XujPT6eCv3Gqsodh9846EoWfQZwDAFrjPLxm1cipveY=
423423
github.com/openziti/identity v1.0.101/go.mod h1:OZLcSf2wGqAa7/8SmbwLQxv0Gsv4i4pxTk83WPHIr+o=
424-
github.com/openziti/metrics v1.4.1-0.20250428140813-8f25360e7e83 h1:XJfBC7Yd6bQCUsGaCXqoOyBNTtdohGepxTveFv7Yn7E=
425-
github.com/openziti/metrics v1.4.1-0.20250428140813-8f25360e7e83/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
424+
github.com/openziti/metrics v1.4.1 h1:JMnfmW8liTzmqJpd7HDPCSvDDFg1UrE0WoLhW9XdIG8=
425+
github.com/openziti/metrics v1.4.1/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
426426
github.com/openziti/secretstream v0.1.32 h1:89/ZVcwIQjdVmWDfVRfMEChJJXTLXJ59AYBw5j646M4=
427427
github.com/openziti/secretstream v0.1.32/go.mod h1:8YaIbjyMwBeKQ7eOYcoVPKHT10u+4OVPXpnZAeDzC6o=
428428
github.com/openziti/transport/v2 v2.0.168 h1:1Anf7X+4xmSKQ12GdPJFhoMZi04QxgD4MJu3agFc1R4=

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ require (
2222
github.com/openziti/edge-api v0.26.42
2323
github.com/openziti/foundation/v2 v2.0.59
2424
github.com/openziti/identity v1.0.101
25-
github.com/openziti/metrics v1.4.1-0.20250428140813-8f25360e7e83
25+
github.com/openziti/metrics v1.4.1
2626
github.com/openziti/secretstream v0.1.32
2727
github.com/openziti/transport/v2 v2.0.168
2828
github.com/orcaman/concurrent-map/v2 v2.0.1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,8 @@ github.com/openziti/foundation/v2 v2.0.59 h1:PJwrcTq62x+cONBeKMlnsuphsTlOvTz8j8p
307307
github.com/openziti/foundation/v2 v2.0.59/go.mod h1:76gmsdIBHvv4O3I0TuFBfO58Rv7YN8FA0ojwYz27ZxE=
308308
github.com/openziti/identity v1.0.101 h1:XujPT6eCv3Gqsodh9846EoWfQZwDAFrjPLxm1cipveY=
309309
github.com/openziti/identity v1.0.101/go.mod h1:OZLcSf2wGqAa7/8SmbwLQxv0Gsv4i4pxTk83WPHIr+o=
310-
github.com/openziti/metrics v1.4.1-0.20250428140813-8f25360e7e83 h1:XJfBC7Yd6bQCUsGaCXqoOyBNTtdohGepxTveFv7Yn7E=
311-
github.com/openziti/metrics v1.4.1-0.20250428140813-8f25360e7e83/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
310+
github.com/openziti/metrics v1.4.1 h1:JMnfmW8liTzmqJpd7HDPCSvDDFg1UrE0WoLhW9XdIG8=
311+
github.com/openziti/metrics v1.4.1/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
312312
github.com/openziti/secretstream v0.1.32 h1:89/ZVcwIQjdVmWDfVRfMEChJJXTLXJ59AYBw5j646M4=
313313
github.com/openziti/secretstream v0.1.32/go.mod h1:8YaIbjyMwBeKQ7eOYcoVPKHT10u+4OVPXpnZAeDzC6o=
314314
github.com/openziti/transport/v2 v2.0.168 h1:1Anf7X+4xmSKQ12GdPJFhoMZi04QxgD4MJu3agFc1R4=

xgress/link_send_buffer.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,9 @@ func (buffer *LinkSendBuffer) run() {
245245
case ack := <-buffer.newlyReceivedAcks:
246246
buffer.receiveAcknowledgement(ack)
247247
buffer.retransmit()
248-
buffer.checkForCloseOnEmpty()
248+
if buffer.closeWhenEmpty.Load() && len(buffer.buffer) == 0 && !buffer.x.Closed() && buffer.x.IsEndOfCircuitSent() {
249+
go buffer.x.Close()
250+
}
249251

250252
case txPayload := <-buffered:
251253
buffer.buffer[txPayload.payload.GetSequence()] = txPayload
@@ -257,7 +259,6 @@ func (buffer *LinkSendBuffer) run() {
257259

258260
case <-retransmitTicker.C:
259261
buffer.retransmit()
260-
buffer.checkForCloseOnEmpty()
261262

262263
case <-buffer.closeNotify:
263264
buffer.close()
@@ -266,12 +267,6 @@ func (buffer *LinkSendBuffer) run() {
266267
}
267268
}
268269

269-
func (buffer *LinkSendBuffer) checkForCloseOnEmpty() {
270-
if buffer.closeWhenEmpty.Load() && len(buffer.buffer) == 0 && !buffer.x.Closed() && buffer.x.IsEndOfCircuitSent() {
271-
go buffer.x.Close()
272-
}
273-
}
274-
275270
func (buffer *LinkSendBuffer) close() {
276271
if buffer.blockedByLocalWindow {
277272
buffer.metrics().BufferUnblockedByLocalWindow()

ziti/ziti.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,9 +1263,7 @@ func (context *ContextImpl) listenSession(service *rest_model.ServiceDetail, opt
12631263
edgeListenOptions.MaxTerminators = 1
12641264
}
12651265

1266-
// TODO: uncomment
1267-
//edgeListenOptions.SdkFlowControl = options.SdkFlowControl != nil && *options.SdkFlowControl
1268-
edgeListenOptions.SdkFlowControl = true
1266+
edgeListenOptions.SdkFlowControl = options.SdkFlowControl != nil && *options.SdkFlowControl
12691267

12701268
if listenerMgr, err := newListenerManager(service, context, edgeListenOptions, options.WaitForNEstablishedListeners); err != nil {
12711269
return nil, err

0 commit comments

Comments
 (0)