fork-dev / TrackerWin

Bug and issue tracker for Fork for Windows
461 stars 10 forks source link

Fork spawns dozens of git.exe processes #1177

Open polwel opened 3 years ago

polwel commented 3 years ago

Since I upgraded to the latest version, Fork will spam many instances of git. See this screenshot from the task manager:

image

There's many more, they simply don't fit on one page...

Anyhow, it gets to the point where Fork is simply unresponsive. Killing all the processes (really annoying!) makes Fork behave again, for a few minutes at least.

DanPristupov commented 3 years ago

Some git process must be hanging or take too long.

Did you try to restart the computer?

dls314 commented 2 years ago

I found this issue with a similar experience today. Is there any way to get more information from Fork about what is causing multiple git processes to be spawned?

Reboot hasn't had an impact, as soon as I open Fork and a repository, it begins doing this.

DanPristupov commented 2 years ago

@dls314 first of all, check if %localappdata%\fork\logs\fork.log contains any errors or warnings.

Or you can send the log to support@fork.dev and I'll have a look.

trebconnell commented 2 years ago

I've attached fork.log. I don't see anything notable in it.

Here's some more info I observed:

Since it doesn't seem to grow past the 21 it's not a huge issue for me, but it would be ideal if Fork could clean up the processes when it exits.

DanPristupov commented 2 years ago

@trebconnell

21 git processes were spawned. I see git processes being created under the Fork.exe child process tree, and outside as sibling processes. The ones under Fork.exe are cleaned.

Can you see arguments of those git processes?

Not sure if it's reusing the previous ones.

No, it doesn't.

trebconnell commented 2 years ago

Yep: git fsmonitor--daemon run --detach --ipc-threads=8 Their parent is a non-existent process. So it looks like the parent process ended and then the child git process was orphaned. It happens too fast for me to see exactly what's happening in the procexp. I can see about capturing a log with procmon when I have some time.

DanPristupov commented 2 years ago

So, I guess you enabled fs-monitor--daemon?

https://www.git-scm.com/docs/git-fsmonitor--daemon

If you don't need it, run:

git config core.fsmonitor false

https://git-scm.com/docs/git-config#Documentation/git-config.txt-corefsmonitor

trebconnell commented 2 years ago

Ahh, yes I did that a while ago and forgot about it. That explains it then! Thanks!