Skip to content

UDS: collected minor findings (silent masking, suppress-response wait, NRC 0x21, dispose) #57

Description

@dborgards

Minor findings from section 3 of the repository review, UDS part. Source: docs/reviews/2026-09-10-repository-review.md (branch claude/repository-review-hpttwc). Line numbers refer to main @ 8ed80f6.

  • DiagnosticSessionControlAsync(byte) masks the session type with 0x7F silently. A caller passing 0x83 gets 0x03 without being told.
  • SendRawAsync with the suppress-positive-response bit set waits for a response that will never come, up to the full P2 timeout.
  • NRC 0x21 (busyRepeatRequest) has no retry semantics — it is surfaced as a plain failure, though the NRC exists precisely to ask for a retry.
  • UdsTimeoutException.Elapsed sometimes reports the budget and sometimes the measured time, depending on which path timed out.
  • No functional-addressing path in the client. A functional 3E 80 has to be assembled by hand.
  • UdsClientImpl.Dispose disposes the semaphore after a 5 s lock timeout while a holder still owns it, turning a slow operation into an ObjectDisposedException on another thread.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: udsCanKit.Pro.Uds — ISO 14229 diagnostics clienttype: choreBuild, CI, tooling, housekeeping

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions