Skip to content

fix: lower CoreIpc send/receive logs from Information to Trace [ROBO-6001] - #155

Open
eduard-dumitru wants to merge 1 commit into
masterfrom
ROBO-6001-ipc-trace-logs
Open

eduard-dumitru wants to merge 1 commit into
masterfrom
ROBO-6001-ipc-trace-logs

Conversation

@eduard-dumitru

@eduard-dumitru eduard-dumitru commented Sep 11, 2026 •

Copy link
Copy Markdown
Collaborator

What

Connection/Server logged per request/response/message at Information, bypassing the LogEnabled gate the rest of CoreIpc respects (introduced in #106). Any IPC host that enables Info — e.g. the JsApi Handler — gets flooded.

Change

  • Per-request/response/message diagnostics: Information → Trace. Trace is off by default, so the flood stops for every host (Robot already filtered UiPath.Ipc.* below Error, so it's unaffected either way).
  • Receive-loop default arm (Unknown message type): now Error, ungated — a protocol anomaly should always surface. At Error it also clears Robot's UiPath.Ipc.*-below-Error log filter, so it's visible there now.
  • Severity only; no behavioral change.

Robot impact (when bumping UiPath.Ipc)

  • Default logs on a PC: unchanged, except that Unknown message type can now appear (Error). That's intended, so it shows up in DiagTool reports.
  • With UIPATH_VERBOSE_IPC_LOGGING set, the per-call lines (received request, sending response, send/receive steps, Create callback) disappear: Trace is below the Robot's Information minimum. In the bump PR:
    • Studio repo: in TraceUtilities.FilterIpcLogs, when the variable is set, also add builder.AddFilter("Ipc.", LogLevel.Trace).
    • hdens: HostContext.UiPathIpcLogger's verbose path hands over the handler's logger, which also stops at Information; let Trace through there too.
    • Optional: refresh TracePoints_detailed.txt (perf CI, detailedTracePoints). RunJobReceived, StartJobReceived and JobCompletedResponding stop matching; the three IpcClient calling/called ones already match nothing since the move off 2.1.0.

Jira: ROBO-6001

🤖 Generated with Claude Code

…6001]

Connection/Server logged per request/response/message at Information,
bypassing the LogEnabled gate the rest of CoreIpc respects (from #106).
Any host that enables Info (e.g. the JsApi Handler) got flooded.

Downgrade these diagnostics to Trace (off by default, so the flood stops
for every host). Raise the receive-loop "Unknown message type" default arm
to Error, ungated, so a protocol anomaly always surfaces.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@bogdanStan92 bogdanStan92 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heads-up for the Robot bump — the description says Robot is unaffected either way, but this removes the escape hatch.

UIPATH_VERBOSE_IPC_LOGGING doesn't lower a level on the Robot side, it just skips registering the AddFilter rule in TraceUtilities.FilterIpcLogs. With no rule, MEL falls back to LoggerFilterOptions.MinLevel, which AddLogging() pins to Information — so Trace is dropped in Logger.IsEnabled, before the TraceSource → NLog sink. Verified on Robot develop: today these logs are visible with the env var set; after this PR they're unreachable in every configuration.

Concretely, three trace points used by the Robot performance CI (which is what sets that env var) stop matching: received request IStudioOperations RunJob, received request IAttendedService StartJob, sending response for IExecutorContract JobCompleted.

Nothing to change here — the fix is one line on the Robot side, it just has to land before/with the bump.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants