git pull fails on linux-next (out of memory)

Arvid Brodin arvid.brodin at enea.com
Fri Mar 30 18:10:38 EDT 2012


Arvid Brodin wrote:
> On 2012-03-06, I cloned linux-next:
> 
> $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git linux-next-20120306
> 
> 
> I now want to update this repository before posting patches, to make sure
> they still apply cleanly. I first tried this on 20120328:
> 
> $ git pull
> remote: Counting objects: 63784, done.
> remote: Compressing objects: 100% (13595/13595), done.
> remote: Total 45829 (delta 38421), reused 38448 (delta 31414)
> Receiving objects: 100% (45829/45829), 9.87 MiB | 209 KiB/s, done.
> Resolving deltas: 100% (38421/38421), completed with 5695 local objects.
>>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
>  + 5a377dc...bc6f15c akpm-end   -> origin/akpm-end  (forced update)
>    055bf38..de8856d  akpm-start -> origin/akpm-start
>  + a568b5f...7734592 master     -> origin/master  (forced update)
>    055bf38..de8856d  stable     -> origin/stable
>  * [new tag]         next-20120328 -> next-20120328
>>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
>  * [new tag]         v3.3       -> v3.3
>  * [new tag]         v3.3-rc7   -> v3.3-rc7
> warning: too many files (created: 1625 deleted: 423), skipping inexact rename detection
> warning: too many files (created: 5127 deleted: 1509), skipping inexact rename detection
> warning: too many files (created: 1134 deleted: 655), skipping inexact rename detection
> warning: too many files (created: 4816 deleted: 3510), skipping inexact rename detection
> warning: too many files (created: 1004 deleted: 544), skipping inexact rename detection
> warning: too many files (created: 1734 deleted: 1778), skipping inexact rename detection
> warning: too many files (created: 1069 deleted: 608), skipping inexact rename detection
> warning: too many files (created: 1070 deleted: 764), skipping inexact rename detection
> warning: too many files (created: 757 deleted: 405), skipping inexact rename detection
> warning: too many files (created: 980 deleted: 542), skipping inexact rename detection
> fatal: inflateInit: out of memory (no message)
> 
> 
> I then "forgot" about it for a little while, doing other stuff. Tried it again today:
> 
> 
> $ git pull
> remote: Counting objects: 16816, done.
> remote: Compressing objects: 100% (1595/1595), done.
> remote: Total 9491 (delta 7901), reused 9254 (delta 7678)
> Receiving objects: 100% (9491/9491), 2.53 MiB | 299 KiB/s, done.
> Resolving deltas: 100% (7901/7901), completed with 3010 local objects.
>>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
>  + bc6f15c...73bd151 akpm-end   -> origin/akpm-end  (forced update)
>    de8856d..1c03658  akpm-start -> origin/akpm-start
>  + 7734592...1dc85fe master     -> origin/master  (forced update)
>    de8856d..1c03658  stable     -> origin/stable
>  * [new tag]         next-20120330 -> next-20120330
> warning: too many files (created: 1625 deleted: 423), skipping inexact rename detection
> warning: too many files (created: 5127 deleted: 1509), skipping inexact rename detection
> warning: too many files (created: 1134 deleted: 655), skipping inexact rename detection
> warning: too many files (created: 4816 deleted: 3510), skipping inexact rename detection
> warning: too many files (created: 1004 deleted: 544), skipping inexact rename detection
> warning: too many files (created: 1734 deleted: 1778), skipping inexact rename detection
> warning: too many files (created: 1069 deleted: 608), skipping inexact rename detection
> warning: too many files (created: 1070 deleted: 764), skipping inexact rename detection
> warning: too many files (created: 757 deleted: 405), skipping inexact rename detection
> warning: too many files (created: 1084 deleted: 773), skipping inexact rename detection
> warning: too many files (created: 980 deleted: 542), skipping inexact rename detection
> fatal: Out of memory? mmap failed: Cannot allocate memory
> 
> $ git gc
> Counting objects: 2609985, done.
> Delta compression using up to 2 threads.
> Compressing objects: 100% (392553/392553), done.
> Writing objects: 100% (2609985/2609985), done.
> Total 2609985 (delta 2197683), reused 2602739 (delta 2190459)
> 
> $ git pull
> warning: too many files (created: 1625 deleted: 423), skipping inexact rename detection
> warning: too many files (created: 5127 deleted: 1509), skipping inexact rename detection
> warning: too many files (created: 1134 deleted: 655), skipping inexact rename detection
> warning: too many files (created: 4816 deleted: 3510), skipping inexact rename detection
> warning: too many files (created: 1004 deleted: 544), skipping inexact rename detection
> warning: too many files (created: 1734 deleted: 1778), skipping inexact rename detection
> warning: too many files (created: 1069 deleted: 608), skipping inexact rename detection
> warning: too many files (created: 1070 deleted: 764), skipping inexact rename detection
> warning: too many files (created: 757 deleted: 405), skipping inexact rename detection
> warning: too many files (created: 1084 deleted: 773), skipping inexact rename detection
> warning: too many files (created: 980 deleted: 542), skipping inexact rename detection
> fatal: Out of memory? mmap failed: Cannot allocate memory
> 
> $ free
>              total       used       free     shared    buffers     cached
> Mem:        998920     309376     689544          0      10200     177252
> -/+ buffers/cache:     121924     876996
> Swap:      2923788     161956    2761832
> 
> $ git --version
> git version 1.6.3.3
> 
> 
> I cannot find anything useful using Google. It's not like I'm doing anything
> complicated, nor is my machine very low on memory. Do I really have to "re-clone"
> the repository and re-apply my patches every time I want to keep the repository
> up-to-date? (I've had the same problem before and used that "solution".)
> 
> Or is there some other way to do this? Perhaps there is a way to perform the pull
> a little bit at a time, e.g. pull linux-next-20120313, linux-next-20120320 etc?
> 

If I understand correctly, 'git pull' is "sort of" equivalent to 'git fetch; git
merge'. So I tried

$ git fetch

This didn't do anything (perhaps the remote branch was already up to date from my
previous pulls?).

$ git merge tags/v3.3

Weirdly enough, this gave a few conflicts on files I've never touched. Perhaps the
failed git pulls above left my repository in some inconsistent state?

I solved the conflicts by hand, selecting the v3.3 versions. If I try to build the
kernel in my respository now, compilation fails on (at least) one of the conflicting
files.

:(


-- 
Arvid Brodin
Enea Services Stockholm AB - since February 16 a part of Xdin in the Alten
Group. Soon we will be working under the common brand Xdin. Read more at
www.xdin.com.



More information about the Kernelnewbies mailing list