Skip to content

process state leaks between server requests #14474

Description

@JanProvaznik

Deferred logger messages accumulate
ResetBuildState() only resets parser state:
XMake.cs#L1498-L1505.

The static deferred-message list is retained:
XMake.cs#L1525-L1529.

Terminal-logger/environment decisions append messages every invocation:
XMake.cs#L2764-L2795,
#L2861-L2882.

Later builds copy the complete retained list:
XMake.cs#L2020-L2055.

This can create stale/duplicate diagnostics and unbounded list growth during server reuse.

Process priority is not restored
/lowPriority lowers the current server process:
XMake.cs#L2462-L2484.

A later normal request initializes its local lowPriority flag to false but never restores the server process to normal priority.

Suggested direction
Create an explicit per-request reset boundary covering all non-cache mutable state. Cache retention should be deliberate and separately enumerated.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions