With default parameters, the barrier algorithm will return a basic solution for linear programs. However, if you set the Crossover parameter to 0, then it will not.
What is Crossover?
Crossover is an essential but often overlooked step needed when solving LPs using a an interior point algorithm (like barrier) or first-order methods (like PDHG). Crossover translates the LP solution into a "clean basic solution" by computing an optimal vertex solution (an optimal basis) from an interior solution.
Why are Basic Solutions Important?
Solutions before crossover have noisy values close to zero (we can call this dense) and, more importantly, due to these, they may have violations in various metrics (such as primal feasibility, dual feasibility, and complementary slackness). Crossover is very effective at cleaning up these violations and providing a clean and sparse basic solution.
If crossover is disabled, violations in the solutions could be monitored by checking the logs and/or checking some quality attributes: Quality Attributes (e.g., MaxVio).