Skip to content

FlyingSocks: resolving device tree hangs with large device trees and TCP #10

@lhoward

Description

@lhoward

With TCP and a large recursive resolution of the device tree, we see an error:

% swift run ocacli -h 127.0.0.1 -f enableTracing -r
Building for debugging...
[1/1] Write swift-version--58304C5D6DBC2206.txt
Build of product 'ocacli' complete! (0.22s)
2024-11-28T15:29:58+1100 trace com.padl.SwiftOCA : [SwiftOCA] _updateConnectionState: notConnected => connecting
2024-11-28T15:29:58+1100 info com.padl.SwiftOCA : [SwiftOCA] connected to oca/tcp/127.0.0.1:65000
2024-11-28T15:29:58+1100 trace com.padl.SwiftOCA : [SwiftOCA] _updateConnectionState: connecting => connected
2024-11-28T15:29:58+1100 debug com.padl.SwiftOCA : [SwiftOCA] refreshing device tree
2024-11-28T15:29:58+1100 trace com.padl.SwiftOCA : [SwiftOCA] monitor error: pduTooShort
2024-11-28T15:29:58+1100 trace com.padl.SwiftOCA : [SwiftOCA] _updateConnectionState: connected => connectionFailed
^C

Note we don't see this with UDP as ``resolveActionObjectsRecursive()` does client-side recursion for datagram connections, thus limiting the packet size.

I had thought it might be a MTU issue (as loopback can use larger frames) but, even if it is, it doesn't appear to occur on Linux.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions