debug(nests): log QUIC↔moq seam in pumpUniStreams + pumpInboundBidis
Splits the diagnosis into "QUIC delivered streams" vs "moq routed them". Without this seam log, a silent NestRx trace after SUBSCRIBE_OK gives no signal whether the relay is forwarding (and :quic isn't delivering streams to the moq pump) or moq is dropping frames. Also surfaces the prior `_: Throwable` swallow in both pumps — those hid transport-close exceptions which are exactly the kind of clue we want when the listener silently stalls. https://claude.ai/code/session_01PYYez8a6sjiakyjAxsfCEQ
This commit is contained in:
+10
-2
@@ -444,13 +444,17 @@ class MoqLiteSession internal constructor(
|
||||
// sibling on the outer [scope] until the transport's flow
|
||||
// independently errors out.
|
||||
kotlinx.coroutines.coroutineScope {
|
||||
var seen = 0L
|
||||
transport.incomingUniStreams().collect { stream ->
|
||||
val n = ++seen
|
||||
Log.d("NestRx") { "transport delivered uni stream #$n (QUIC→moq seam)" }
|
||||
launch { drainOneGroup(stream) }
|
||||
}
|
||||
}
|
||||
} catch (ce: CancellationException) {
|
||||
throw ce
|
||||
} catch (_: Throwable) {
|
||||
} catch (t: Throwable) {
|
||||
Log.w("NestRx") { "pumpUniStreams ended with ${t::class.simpleName}: ${t.message}" }
|
||||
// Transport closed — subscriptions will surface end-of-flow
|
||||
// via their own bidi pumps as well.
|
||||
}
|
||||
@@ -574,13 +578,17 @@ class MoqLiteSession internal constructor(
|
||||
// [pumpUniStreams]'s identical comment) so they don't outlive
|
||||
// bidiPump.cancelAndJoin() in [close].
|
||||
kotlinx.coroutines.coroutineScope {
|
||||
var seen = 0L
|
||||
transport.incomingBidiStreams().collect { bidi ->
|
||||
val n = ++seen
|
||||
Log.d("NestTx") { "transport delivered inbound bidi #$n (QUIC→moq seam)" }
|
||||
launch { handleInboundBidi(bidi) }
|
||||
}
|
||||
}
|
||||
} catch (ce: CancellationException) {
|
||||
throw ce
|
||||
} catch (_: Throwable) {
|
||||
} catch (t: Throwable) {
|
||||
Log.w("NestTx") { "pumpInboundBidis ended with ${t::class.simpleName}: ${t.message}" }
|
||||
// Transport closed.
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user