Repository navigation
Fix SDO abort addresses and block-upload end timeouts - #686
dhairyajangir wants to merge 2 commits into
Conversation
|
Scope update: this PR now also addresses #377, while retaining the original block-upload end-timeout fix. All internal stream abort and request/timeout paths carry the originally requested index/subindex. The Legacy Codex assisted with this investigation, update and testing. |
Retain the initiating index/subindex in each stream and pass it through all existing abort and retry-timeout paths. Encode the address without inferring it from segment data or retaining global transfer state. Keep direct abort() and abort(code) calls valid, document the optional address keywords and subclass override boundary, and cover the wire frames, retry behavior and original block-upload end timeout. AI assisted with investigation, implementation, review and testing.
A missing block-upload end response previously called a nonexistent stream
abort(), masking the communication timeout withAttributeErrorand sending no abort. This change calls the SDO client abort helper and re-raises the original timeout.It also includes the requested object index/subindex in client aborts throughout expedited, segmented and block transfers. Each stream retains its original address before its first request; timeout and error paths use that context rather than interpreting segment payload bytes as an address. Retries, incoming remote-abort handling, abort reasons and COB IDs are preserved.
Existing
abort()andabort(code)calls retain their defaults; direct calls without address context still use zero. The new address arguments are keyword-only. Subclasses overridingabortorrequest_responsewith narrower signatures must accept/forward these keywords; this requirement is documented.Local Linux validation:
db_exportenabled.make -C doc htmlpassed without observed warnings.These results do not establish physical-device or strict-address-checking peer compatibility. Hosted CI has not run for this revision: the Python package run is
action_required. Please authorize that run for the configured upstream tests and docs.Fixes #377. Follow-up to #594.
AI assisted with investigation, the patch, and testing.