[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

`diff' consumes all available memory

From: Eric Hanchrow <offby1_at_blarg.net>
Date: 2005-03-03 06:09:04 CET

This was reported by "Skolem" on #svn:
http://rafb.net/paste/results/EHc5r274.html

I can repro it on Debian Sarge (x86 Linux 2.6.8)

    Package: subversion
    Version: 1.1.3-1

    -- System Information:

    Versions of packages subversion depends on:
    ii db4.2-util 4.2.52-18 Berkeley v4.2 Database Utilities
    ii libapr0 2.0.53-5 the Apache Portable Runtime
    ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an
    ii libdb4.2 4.2.52-18 Berkeley v4.2 Database Libraries [
    ii libexpat1 1.95.8-1 XML parsing C library - runtime li
    ii libldap2 2.1.30-3 OpenLDAP libraries
    ii libneon24 0.24.7.dfsg-0.2 An HTTP and WebDAV client library
    ii libssl0.9.7 0.9.7e-2 SSL shared libraries
    ii libsvn0 1.1.3-1 shared libraries used by Subversio
    ii libxml2 2.6.16-3 GNOME XML library
    ii patch 2.5.9-2 Apply a diff file to an original
    ii zlib1g 1:1.2.2-3 compression library - runtime

Simply run this script:

    mkdir /tmp/x
    svnadmin create /tmp/x/myrepos
    mkdir /tmp/x/proj
    cd /tmp/x/proj
    mkdir branches tags trunk
    echo blah > /tmp/x/proj/trunk/foo
    cd ..
    svn import /tmp/x/proj file:///tmp/x/myrepos -m foo
    svn co file:///tmp/x/myrepos /tmp/x/proj1
    cd /tmp/x/proj1/trunk
    rm foo
    svn commit
    svn diff --revision HEAD foo

When I run the final "svn diff" command under strace, I see

    Adding /tmp/x/proj/trunk
    Adding /tmp/x/proj/trunk/foo
    Adding /tmp/x/proj/branches
    Adding /tmp/x/proj/tags

    Committed revision 1.
    A /tmp/x/proj1/trunk
    A /tmp/x/proj1/trunk/foo
    A /tmp/x/proj1/branches
    A /tmp/x/proj1/tags
    Checked out revision 1.
    execve("/usr/bin/svn", ["svn", "diff", "--revision", "HEAD", "foo"], [/* 29 vars */]) = 0
... lots of ordinary-looking strace output deleted
    brk(0) = 0x80c4000
    brk(0x80e6000) = 0x80e6000
    time([1109825615]) = 1109825615
    time([1109825615]) = 1109825615
    time([1109825615]) = 1109825615
    time([1109825615]) = 1109825615
    time([1109825615]) = 1109825615
    lstat64("foo", 0xbffff00c) = -1 ENOENT (No such file or directory)
    stat64(".svn/props/foo.svn-work", {st_mode=S_IFREG|0400, st_size=4, ...}) = 0
    stat64(".svn/prop-base/foo.svn-base", {st_mode=S_IFREG|0400, st_size=4, ...}) = 0
    open(".svn/entries", O_RDONLY) = 13
    read(13, "<?xml version=\"1.0\" encoding=\"ut"..., 8192) = 571
    read(13, "", 7621) = 0
    close(13) = 0
    close(12) = 0
    unlink("/tmp/report.tmp") = 0
    close(-1) = -1 EBADF (Bad file descriptor)
    brk(0) = 0x80e6000
    brk(0x8108000) = 0x8108000
    brk(0) = 0x8108000
... literally 2,000 similar lines deleted
    brk(0x10910000) = 0x10910000
    brk(0) = 0x10910000
    brk(0x10932000) = 0x10932000
    brk(0) = 0x10932000
    brk(0x10954000) = 0x10954000
    brk(0) = 0x10954000
    brk(0x10976000) = 0x10976000
    +++ killed by SIGKILL +++

-- 
Because he pays close attention, a Navy pilot can land a
40,000 lb. aircraft at 140 miles per hour on a pitching carrier
deck, at night, more safely than the average teenager can cut a
bagel.
        -- Paul Graham
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Mar 3 06:11:38 2005

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.