microsoft / ProcDump-for-Linux

A Linux version of the ProcDump Sysinternals tool
MIT License
2.95k stars 308 forks source link

Interrupt free dumping #256

Open AloisKraus opened 2 weeks ago

AloisKraus commented 2 weeks ago

Expected behavior

Like on Windows it should be possible to dump a process without interruption. Procdump -r uses process snapshots.

Actual behavior

During dump generation process is not responding.

The Google dumping tool claims that it is possible:

https://github.com/anatol/google-coredumper

As far as I have read the code it forks the process from the inside to get a copy of everything by calling sys_fork(). Is this something which could be achieved from the outside with procdump as well on Linux, or would one need to bake this capability into the service?

MarioHewardt commented 2 weeks ago

Thanks for the suggestion. Today, we leverage gcore to do the actual dump generation, but it if we decide to go down the path of using our own core dumper we will definitely take a look at this.

AloisKraus commented 2 weeks ago

Is this not needed by you internally, or are all your services running in Kubernetes multi instance capable and you simply take a Pod offline and dump it while another one is servicing requests?