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

Re: valgrind warning committing binary files

From: Julian Foad <julian.foad_at_wandisco.com>
Date: Thu, 29 Apr 2010 12:53:08 +0100

Philip Martin wrote:
> $ svnadmin create repo
> $ valgrind -q --num-callers=20 subversion/svn/.libs/lt-svn import -mm subversion/tests/cmdline/theta.bin file://`pwd`/repo/f1
> ==15201== Syscall param write(buf) points to uninitialised byte(s)

Yup, similar result here running a recent trunk build.

(First I had to move 'theta.bin' to a directory that's not under version
control, otherwise it errored with "Repository UUID 'XXX' doesn't match
expected UUID 'YYY'.")

- Julian

> ==15201== at 0x641175B: (within /usr/lib/debug/libpthread-2.7.so)
> ==15201== by 0x5DA5254: apr_file_flush_locked (readwrite.c:317)
> ==15201== by 0x5DA5960: setptr (seek.c:25)
> ==15201== by 0x5DA5B39: apr_file_seek (seek.c:70)
> ==15201== by 0x592BCAC: svn_io_file_seek (io.c:2755)
> ==15201== by 0x93F955F: get_file_offset (fs_fs.c:860)
> ==15201== by 0x94030E8: rep_write_contents_close (fs_fs.c:5012)
> ==15201== by 0x593DC9C: svn_stream_close (stream.c:116)
> ==15201== by 0x940FF0C: window_consumer (tree.c:2402)
> ==15201== by 0x54F4569: svn_txdelta_send_txstream (text_delta.c:838)
> ==15201== by 0x54F44BD: svn_txdelta_send_stream (text_delta.c:806)
> ==15201== by 0x4E38CD3: send_file_contents (commit.c:160)
> ==15201== by 0x4E3900E: import_file (commit.c:253)
> ==15201== by 0x4E399CD: import (commit.c:562)
> ==15201== by 0x4E3A33D: svn_client_import3 (commit.c:789)
> ==15201== by 0x40B5A2: svn_cl__import (import-cmd.c:114)
> ==15201== by 0x411B37: main (main.c:2119)
> ==15201== Address 0xa8c53ac is 76 bytes inside a block of size 4,096 alloc'd
> ==15201== at 0x4C2260E: malloc (vg_replace_malloc.c:207)
> ==15201== by 0x5DAB19C: pool_alloc (apr_pools.c:1324)
> ==15201== by 0x5DAB30B: apr_palloc_debug (apr_pools.c:1364)
> ==15201== by 0x5DA7A0E: apr_file_open (open.c:168)
> ==15201== by 0x5926FB7: file_open (io.c:247)
> ==15201== by 0x592B9C8: svn_io_file_open (io.c:2657)
> ==15201== by 0x93F92BA: get_writable_proto_rev_body (fs_fs.c:780)
> ==15201== by 0x93F8B17: with_txnlist_lock (fs_fs.c:502)
> ==15201== by 0x93F94CA: get_writable_proto_rev (fs_fs.c:828)
> ==15201== by 0x9402DE8: rep_write_get_baton (fs_fs.c:4946)
> ==15201== by 0x9403494: set_representation (fs_fs.c:5083)
> ==15201== by 0x9403568: svn_fs_fs__set_contents (fs_fs.c:5102)
> ==15201== by 0x93F6C47: svn_fs_fs__dag_get_edit_stream (dag.c:997)
> ==15201== by 0x941019F: apply_textdelta (tree.c:2461)
> ==15201== by 0x941038C: fs_apply_textdelta (tree.c:2516)
> ==15201== by 0x71DD57B: svn_fs_apply_textdelta (fs-loader.c:1080)
> ==15201== by 0x6FAE6BC: apply_textdelta (commit.c:412)
> ==15201== by 0x4E38AE6: send_file_contents (commit.c:109)
> ==15201== by 0x4E3900E: import_file (commit.c:253)
> ==15201== by 0x4E399CD: import (commit.c:562)
>
> It seems to happen for some binary files, but not all, and I haven't
> managed to trigger it for a text file. The file does not need a
> binary mime type:
>
> $ svnadmin create repo
> $ svn co file://`pwd`/repo wc
> $ touch wc/foo
> $ svn add wc/foo # it's a text file
> $ cp subversion/tests/cmdline/theta.bin wc/foo
> $ svn ci -mm wc # triggers the warning
>
> The warning looks serious but I've not yet managed to corrupt a
> repository, so I can't rule out a valgrind false alarm.
>
> Can anyone else reproduce this?
>
Received on 2010-04-29 13:53:43 CEST

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