darcs

Issue 623 get => out of memory (only on local filesystem!)

Title get => out of memory (only on local filesystem!)
Priority bug Status given-up
Milestone Resolved in
Superseder Nosy List Serware, darcs-devel, dmitry.kurochkin, jamesdsadler, kowey, markstos, thorkilnaur, tommy
Assigned To
Topics Performance

Created on 2008-01-27.12:45:37 by jamesdsadler, last changed 2017-07-30.23:28:57 by gh.

Messages
msg2812 (view) Author: jamesdsadler Date: 2008-01-27.13:01:26
When I try and clone a repository like so 'darcs get foo foo-cloned' with my
current largish and unfortunately non-OSS-licensed repository, I get an 'out of
memory' error.

Strangely enough, 'darcs get http://my-darcs-repo-machine/foo' foo-cloned works
just fine.  Somehow, 'darcs get' over HTTP does not exhibit the issue, but
'darcs get' on the local file system does.

This happens on 2.0.0pre3 and current unstable head. I have confirmed that this
issue DOES NOT occur with darcs 1.0.9rc1 (what comes with Ubuntu)
msg2817 (view) Author: markstos Date: 2008-01-28.02:23:47
James, to debug this further:

Would you have any preferences in ~/.darcs/prefs which could be affecting this? 

You mentioned it happens with Darcs2. How about if you use "darcs get --hashed" ? 

also, you can try this:

strace darcs get foo foo-cloned. 

That will spew all the low level system calls that are happening. (There will be
many!). Although the output will be verbose, you should be able to perhaps get
an idea of what's going on when the system runs out of memory, and/or how the
local case differs from the http case.
msg2818 (view) Author: markstos Date: 2008-01-28.02:25:40
James, 

I'm also curios to know: What happens if you try this with Darcs2:

darcs convert foo foo-d2
darcs get foo-d2 foo-cloned

 ?

  Mark
msg2824 (view) Author: jamesdsadler Date: 2008-01-28.13:24:11
My ~/.darcs/defaults looks like this:

get --set-scripts-executable
pull --set-scripts-executable
send --sign

I'll let you know how the tests with strace go.

On 28/01/2008, Mark Stosberg <bugs@darcs.net> wrote:
> James, to debug this further:
>
> Would you have any preferences in ~/.darcs/prefs which could be affecting this?
>
> You mentioned it happens with Darcs2. How about if you use "darcs get --hashed" ?
>
> also, you can try this:
>
> strace darcs get foo foo-cloned.
>
> That will spew all the low level system calls that are happening. (There will be
> many!). Although the output will be verbose, you should be able to perhaps get
> an idea of what's going on when the system runs out of memory, and/or how the
> local case differs from the http case.
>
> ----------
> nosy: +markstos
>
> __________________________________
> Darcs bug tracker <bugs@darcs.net>
> <http://bugs.darcs.net/issue623>
> __________________________________
>
msg2837 (view) Author: droundy Date: 2008-01-28.15:30:16
James, could you give us some further information about the repository that
triggers this issue?

I presume from what you've said that it's in darcs1 format.  Here's some other
information that would be helpful in trying to reproduce this:

How many patches are in it?

What is the total size of _darcs/patches (e.g. `du -sh _darcs/patches`)?

What's the total size of the repository contents (e.g. du -sh _darcs/pristine)?

How much memory and swap do you have? Similarly, if you watch top, how much
memory do you see darcs using before it dies?

Do you have many (or large) binary files in the repository?

Thanks for your bug report!

David
msg3475 (view) Author: jamesdsadler Date: 2008-02-16.02:55:16
Hi David, 

The repository is in darcs1 format, yes.
> How many patches are in it?
2112

> What is the total size of _darcs/patches (e.g. `du -sh _darcs/patches`)?
619M

> What's the total size of the repository contents (e.g. du -sh _darcs/pristine)?
342M

> How much memory and swap do you have? Similarly, if you watch top, how much
memory do you see darcs using before it dies?
My machine has 4GB, but due to irritating BIOS/motherboard limitation, I can
only see 3.2GB.  At the time I made the error report I was running 32bit Ubuntu
Gutsy.  My machine was configured with 4GB swap.  Using top, darcs's resident
set was about 2.7GB, and it died trying to allocate another ~700MB.  I don't
recall the size of the non-resident set, but I expect that the 700MB allocation
attempt would have surpassed the 4GB address space for 32bit processes.

> Do you have many (or large) binary files in the repository?
Unfortunately, yes (358 binaries - basically all the dependencies for our
different modules).  There are about 10 3MB binaries and the rest are
progressively smaller.  There is also a single very large text file ~30MB.

I realize that putting all of those binaries under source control wasn't the
smartest thing to do - it was the result of a hasty decision, what can I say..
msg4721 (view) Author: kowey Date: 2008-05-15.18:52:24
It would be great if somebody could write a small script to reproduce conditions
like those in James's repository (and James, that you could keep your repo
around for future testing).  I think Jason has done some work in this area.

Note particularly the failing on local get and not on remote get.
History
Date User Action Args
2008-01-27 12:45:37jamesdsadlercreate
2008-01-27 13:00:27jamesdsadlersetstatus: unread -> unknown
nosy: droundy, tommy, beschmi, kowey, jamesdsadler
messages: - msg2811
2008-01-27 13:01:27jamesdsadlersetnosy: droundy, tommy, beschmi, kowey, jamesdsadler
messages: + msg2812
2008-01-28 02:23:48markstossetnosy: + markstos
messages: + msg2817
2008-01-28 02:25:41markstossettopic: + Darcs2
nosy: droundy, tommy, beschmi, kowey, markstos, jamesdsadler
messages: + msg2818
2008-01-28 13:24:16jamesdsadlersetnosy: droundy, tommy, beschmi, kowey, markstos, jamesdsadler
messages: + msg2824
2008-01-28 15:30:17droundysetnosy: droundy, tommy, beschmi, kowey, markstos, jamesdsadler
messages: + msg2837
2008-01-31 20:26:11droundysetstatus: unknown -> waiting-for
nosy: droundy, tommy, beschmi, kowey, markstos, jamesdsadler
2008-02-16 02:55:17jamesdsadlersetnosy: droundy, tommy, beschmi, kowey, markstos, jamesdsadler
messages: + msg3475
2008-04-29 18:16:53koweylinkissue815 superseder
2008-04-29 18:18:25koweyunlinkissue815 superseder
2008-05-15 18:48:55koweysettopic: + Performance
nosy: + Serware, dagit
2008-05-15 18:52:26koweysetnosy: droundy, tommy, beschmi, kowey, markstos, dagit, jamesdsadler, Serware
messages: + msg4721
2008-05-15 18:53:43koweysetnosy: droundy, tommy, beschmi, kowey, markstos, dagit, jamesdsadler, Serware
title: 'darcs get' fails with 'out of memory' when getting from local filesystem -> get => out of memory (on local filesystem only!)
2009-08-06 17:52:37adminsetnosy: + jast, dmitry.kurochkin, darcs-devel, zooko, mornfall, simon, thorkilnaur, - droundy, jamesdsadler
2009-08-06 20:55:40adminsetnosy: - beschmi
2009-08-10 22:12:19adminsetnosy: + jamesdsadler, - darcs-devel, zooko, jast, mornfall
2009-08-11 00:05:31adminsetnosy: - dagit
2009-08-18 15:10:53koweysetstatus: waiting-for -> needs-reproduction
nosy: tommy, kowey, markstos, simon, jamesdsadler, thorkilnaur, dmitry.kurochkin, Serware
topic: - Darcs2
title: get => out of memory (on local filesystem only!) -> get => out of memory (only on local filesystem!)
2009-08-25 18:04:04adminsetnosy: + darcs-devel, - simon
2009-08-27 14:27:07adminsetnosy: tommy, kowey, markstos, darcs-devel, jamesdsadler, thorkilnaur, dmitry.kurochkin, Serware
2009-10-23 22:42:59adminsetnosy: + serware, - Serware
2009-10-23 23:28:57adminsetnosy: + Serware, - serware
2017-07-30 23:28:57ghsetstatus: needs-reproduction -> given-up