Open
Description
Issue Description
There appears to be a memory leak in svn2git
's run_command
function,
I assume in IO.popen
.
This memory leak leads to eating up all the RAM + Swap memory (128Gb + 64Gb on my system) during large conversions,
which will eventually crash the svn2git
process once RAM is full.
In below btop
screenshots you can see that:
- This issue occurs while
svn2git
is runninggit svn fetch
(which is called throughrun_command
) git svn fetch
does not experience a memory leak, since it's memory usage stays lowsvn2git
does experience a memory leak, since it's memory usage keeps on growing
Click to Expand/Collapse the "Screenshots"
0h40min - 33.4Gb
1h01min - 51.6Gb
2h11min - 120Gb
3h00min - 159.6Gb
Work Around
- Either wait for
svn2git
to crash when out of memory,
or manually force stop it with x2 CTRL + C
(and alsodocker container ls
+docker stop <container-id>
when using Rikj000/Ruby-SVN2Git-Docker) - Process continues upon restart, however:
- In case of crash upon restart, fix by:
- Open the
.git/config
file in the output Git repo - Delete all
branches
+tags
entries within - Delete the
.git/svn/refs/remotes/svn/trunk/index.lock
file in the output Git repo, if it exists
- Open the
- Disk space cleanup before restart:
- Open the
.git/objects/pack/
directory in the output Git repo - Delete all (usually very large)
tmp_pack_......
files within - See: https://old.reddit.com/r/git/comments/324ejz/can_i_safely_delete_tmp_pack_files_in/
- Open the
- In case of crash upon restart, fix by:
Metadata
Metadata
Assignees
Labels
No labels