On Tue, Oct 18, 2016 at 10:17 PM, Raffael Reichelt <raffael.reichelt@xxxxxxxxx> wrote: > Hello! > > I have a serious problem with git, After my provider had updated to a X86_64 architecture git crashes with various memory-related errors. This is happening remote when pushing to the repository from my local machine as well as trying it on a shell on the server itself. > > This are the error-messages: > > fatal: Out of memory, realloc failed > fatal: recursion detected in die handler > fatal: recursion detected in die handler You other mail said memory is capped at 600MB, which should be a lot for normal repositories. If you set the environment variable GIT_ALLOC_LIMIT to maybe 500MB or lower (convert it to kilobytes first) and git attempts to allocate more than that (just that one time, not total mem) then it's caught and we get a glimpse of how much memory git may need. Unfortunately we can't get a stack trace or anything like that unless you rebuild Git from source. > or > fatal: unable to create threaded lstat > fatal: recursion detected in die handler Hmm.. with "max user processes (-u) 42" we should be fine because we only create 20 threads max. What happens if you set core.preloadindex to false? Can it run until the end or hit some other fatal errors? There's room for improvement in preload_index(). If we hit resource limit like this, it's not the end of the world and we should be able to keep going. But threaded lstat has been available for a long time and this is the first time I see a report like this, not sure if it's worth fixing. -- Duy