Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multiple "rzc.dll" processes at the end of the build #1442

Open
s0dyy opened this issue Jan 14, 2020 · 4 comments
Open

multiple "rzc.dll" processes at the end of the build #1442

s0dyy opened this issue Jan 14, 2020 · 4 comments
Labels
area-build Improvements in source-build's own build process

Comments

@s0dyy
Copy link

s0dyy commented Jan 14, 2020

Hello :)

I am trying to fix a problem after the build is finished, I have many pending processes.

rzc.dll server -p .....

The problem may be related to my linux distribution, we have several phases during the installation of a package and the waiting processes blocks the install phase.

I have to kill the process to be able to complete the installation

2019-12-21-220231

I saw something similar here: https://github.com/dotnet/cli/issues/9481

Is there a solution to kill this process properly at the end of the build?

@dagood dagood added area-build Improvements in source-build's own build process triaged labels Feb 13, 2020
@dagood
Copy link
Member

dagood commented Feb 13, 2020

Triage notes:
We haven't seen this before, we need to investigate to see if it's something we can fix in source-build or if it needs an upstream fix.

@s0dyy
Copy link
Author

s0dyy commented Feb 14, 2020

Hello @dagood

I found similar issues in the roslyn project

dotnet/roslyn#24137
dotnet/sdk#9579

I tried to modify some environment variables, it didn't fix the problem

export MSBUILDDISABLENODEREUSE=1
export MSBUILDUSESHAREDCOMPILATION=false
export UseSharedCompilation=false

This is much better by modifying the variable tmpdir (TMPDIR=/tmp), i still have a waiting time at the end of the build but I do not stay completely blocked.

I don't understand why it works by changing TMPDIR to /tmp. By default on our distribution, we use /var/tmp/paludis/build/dev-dotnet/temp as the path for temporary files and defining TMPDIR to /tmp is not really a solution for me.

Is it possible to transfer this issue to the roselyn project?

I am open to any suggestions that would allow me to debug the problem.

@dagood
Copy link
Member

dagood commented Feb 14, 2020

I think you're on the right track disabling the persistent nodes, compiler servers, etc. (I get problems with Roslyn's persistence keeping a dotnet process open and conflicting with source-built Roslyn). rzc.dll is new to us though... looks like a Razor compiler? It might have some different kind of reuse going on.

Actually think I found something... googled "disable shared rzc dll" (after some less successful guesses) and found dotnet/sdk#9487 describing a UseRazorBuildServer MSBuild property. The repo build command for each repo using Razor probably needs to be changed to include /p:UseRazorBuildServer=false to really stop it everywhere.

@dagood
Copy link
Member

dagood commented Feb 14, 2020

The problem may be related to my linux distribution, we have several phases during the installation of a package and the waiting processes blocks the install phase.

How long have you tried waiting for the processes to terminate? Typically these shared server implementations die naturally after some number of minutes... not sure if that's the case with rzc.dll but would be nice to know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-build Improvements in source-build's own build process
Projects
Status: Backlog
Development

No branches or pull requests

3 participants