You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Luc Saillard <lu...@fr.alcove.com> on 2002/08/08 09:08:57 UTC

Commit succeeded, deltification failed

Hi,

i try to put linux kernel 2.5 into subversion and i've a problem, when I
try to commit the 2.5.18 patches. Next the error:
Committed revision 34.
Thu, 08 Aug 2002 02:43:09 +0200 - Applying kernel patch 2.5.17
Thu, 08 Aug 2002 02:43:30 +0200 - Commit patch-2.5.17

Committed revision 35.
Thu, 08 Aug 2002 02:50:30 +0200 - Creating branch 2.5.17

Committed revision 36.
Thu, 08 Aug 2002 02:50:31 +0200 - Applying kernel patch 2.5.18
Thu, 08 Aug 2002 02:51:21 +0200 - Commit patch-2.5.18

svn_error: #21090 : <Berkeley DB error>
  Commit failed (details follow):

svn_error: #21090 : <Berkeley DB error>
  Commit succeeded, deltification failed

svn_error: #21090 : <Berkeley DB error>
  (charset conversion failed)     

Then i've try to do a commit again,  and i've a error that some file need to
be update. So i run svn update, and it took more than 700MB of memory. Next
the script that i've used for the test. I've you any ideas about this
problem ? i've search into the mailing archive, but found nothing. I use
2.4.19-rc1 kernel with 320MB of memory  and about 800MB of swap. The
repository and the linux source is on two scsi hard drive to speedup the
process. It's not a problem of disk space, i've 600MB free on each drive.
I use Subversion Client, version 0.14.0 (r2667) compiled Aug  4 2002, 09:50:42.


Luc


----------------------------------
#!/bin/bash

set -e

# dir: where to put the linux tree
# kerneldir: where we will find the kernel source + patches
# svndir: where to put the repository
# logdir: where to put logfiles
dir=/mnt/linux/srcs/linux/linux-2.5/
kerneldir=/mnt/bigdur/tmp/linux
svndir=/mnt/bordel/tmp/linux
svnurl=file://$svndir
logdir=$PWD

log()
{
  set -e
  echo `date -R` - $*
}

logandexec()
{
  set -e
  echo `date -R` - $*
  $*
}

#echo > $logdir/log
#echo > $logdir/log_exec
pushd $dir
log Starting script
logandexec rm -rf $svndir linux
logandexec svnadmin create $svndir

logandexec tar -xjf $kerneldir/linux-2.5.0.tar.bz2
logandexec svn import $svnurl $dir/linux linux -m "'Initial_import'"

logandexec rm -rf $dir/linux

logandexec svn checkout $svnurl/linux

log Creating branch 2.5.0
logandexec svn cp $svnurl/linux $svnurl/linux-2.5.0 -m "Linux_2.5.0"

pushd linux
let ver=1
while [ $ver -lt 30 ] ; do
  log Applying kernel patch 2.5.$ver
  bzcat $kerneldir/patch-2.5.$ver.bz2 | patch -s -p1
  log Commit patch-2.5.$ver
  svn -q commit -m "Patch_2.5.$ver"
  log Creating branch 2.5.$ver
  svn cp $svnurl/linux $svnurl/linux-2.5.$ver -m "Linux_2.5.$ver"

  let ver=$ver+1
done

log Script finished

popd
popd
-------------------



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Commit succeeded, deltification failed

Posted by Luc Saillard <lu...@fr.alcove.com>.
On Fri, Aug 09, 2002 at 11:48:28AM +0200, Luc Saillard wrote:
> On Thu, Aug 08, 2002 at 10:19:14AM -0500, Karl Fogel wrote:
> > Can you try to reproduce it with the head Subversion?  For one thing,
> 
> Ok, i've downloaded the latest version from trunk. All was compiled with 
> ./autogen.sh && ./configure --enable-maintainer-mode --disable-shared
> --with-berkeley-db=/usr/include/db4:/usr/lib && make
> Note, i need to unset my CFLAGS because, if you pass multiple parameters like
> this CFLAGS="-pipe -g -Wall", configure && make failed.
> 
> Now, this is the error.
> 
> subversion/libsvn_client/commit.c:662: (apr_err=21094, src_err=12)
> svn: Berkeley DB error
> svn: Commit failed (details follow):
> subversion/libsvn_fs/tree.c:2228: (apr_err=21094, src_err=12)
> svn: Commit succeeded, deltification failed                                                                        
> subversion/libsvn_fs/err.c:50: (apr_err=21094, src_err=12)                                                         
> svn: (charset conversion failed)
> 
 Ok i've found the error with gdb and bactrace all stack. The Berkeley error
 is error "not enought memory" while deleting a string (i can give you the
 file or any other information.) The original message given by libdb4 is
 locale dependant, so this is the error:
 "Berkeley DB error while deleting string for filesystem /mnt/bordel/tmp/linux/db:\nNe peut allouer de la mémoire"
Next the backtrace for this error:
Breakpoint 3, svn_fs__dberrf (pool=0x81c5f30, db_err=12, fmt=0x80dc9a0 "Berkeley DB error while %s for filesystem %s:\n") at subversion/libsvn_fs/err.c:50
50        return svn_error_createf (SVN_ERR_BERKELEY_DB, db_err, 0, pool, 
(gdb) bt
#0  svn_fs__dberrf (pool=0x81c5f30, db_err=12, fmt=0x80dc9a0 "Berkeley DB error while %s for filesystem %s:\n") at subversion/libsvn_fs/err.c:50
#1  0x080905c6 in svn_fs__wrap_db (fs=0x81c6000, operation=0x80dc10b "deleting string", db_err=12) at subversion/libsvn_fs/err.c:61
#2  0x0808c4ba in svn_fs__string_delete (fs=0x81c6000, key=0x496633a8 "c8t", trail=0x81eb7d8) at subversion/libsvn_fs/bdb/strings-table.c:418
#3  0x08091304 in delete_strings (keys=0x496633b0, fs=0x81c6000, trail=0x81eb7d8) at subversion/libsvn_fs/reps-strings.c:129
#4  0x08093238 in svn_fs__rep_deltify (fs=0x81c6000, target=0x4962faa0 "apq", source=0x4962f838 "i6j", trail=0x81eb7d8) at subversion/libsvn_fs/reps-strings.c:1374
#5  0x0809008b in svn_fs__dag_deltify (target=0x4962f960, source=0x4962f6f0, props_only=0, trail=0x81eb7d8) at subversion/libsvn_fs/dag.c:1548
#6  0x08084ff5 in txn_deltify (node=0x4962f6f0, pred_count=3, props_only=0, trail=0x81eb7d8) at subversion/libsvn_fs/tree.c:1202
#7  0x080851d8 in deltify_if_mutable_under_txn_id (fs=0x81c6000, id=0x4705b420, txn_id=0x81eb768 "11", trail=0x81eb7d8) at subversion/libsvn_fs/tree.c:1260
#8  0x0808517a in deltify_if_mutable_under_txn_id (fs=0x81c6000, id=0x46c7fe80, txn_id=0x81eb768 "11", trail=0x81eb7d8) at subversion/libsvn_fs/tree.c:1253
#9  0x0808517a in deltify_if_mutable_under_txn_id (fs=0x81c6000, id=0x9eda890, txn_id=0x81eb768 "11", trail=0x81eb7d8) at subversion/libsvn_fs/tree.c:1253
#10 0x0808517a in deltify_if_mutable_under_txn_id (fs=0x81c6000, id=0x9eed920, txn_id=0x81eb768 "11", trail=0x81eb7d8) at subversion/libsvn_fs/tree.c:1253
#11 0x0808517a in deltify_if_mutable_under_txn_id (fs=0x81c6000, id=0x9eeca08, txn_id=0x81eb768 "11", trail=0x81eb7d8) at subversion/libsvn_fs/tree.c:1253
#12 0x08085270 in txn_body_deltify_committed (baton=0xbffff04c, trail=0x81eb7d8) at subversion/libsvn_fs/tree.c:1278
#13 0x080838b8 in svn_fs__retry_txn (fs=0x81c6000, txn_body=0x80851fc <txn_body_deltify_committed>, baton=0xbffff04c, pool=0x81eb5c0)
    at subversion/libsvn_fs/trail.c:127
#14 0x080869a8 in svn_fs_commit_txn (conflict_p=0xbffff0fc, new_rev=0xbffff104, txn=0x81eb690) at subversion/libsvn_fs/tree.c:2226
#15 0x0807cf58 in svn_repos_fs_commit_txn (conflict_p=0xbffff0fc, repos=0x8156bd8, new_rev=0xbffff104, txn=0x81eb690) at subversion/libsvn_repos/hooks.c:200
#16 0x0807c7ab in close_edit (edit_baton=0x8195f40) at subversion/libsvn_ra_local/commit_editor.c:466
#17 0x080571a1 in svn_client__do_commit (base_url=0x8154578 "file:///mnt/bordel/tmp/linux/linux", commit_items=0x812d6c0, editor=0x8156e18, edit_baton=0x8195f40, 
    notify_func=0x804c3a0 <notify>, notify_baton=0x811fd88, notify_path_prefix=0x8156fb0 "/mnt/linux/srcs/linux/linux-2.5/linux", tempfiles=0xbffff214, 
    pool=0x80f2568) at subversion/libsvn_client/commit_util.c:1085
#18 0x080551e6 in svn_client_commit (commit_info=0xbffff2a8, notify_func=0x804c3a0 <notify>, notify_baton=0x811fd88, auth_baton=0x80f2920, targets=0x80f28f0, 
    log_msg_func=0x8052bdc <svn_cl__get_log_message>, log_msg_baton=0x811fda0, xml_dst=0x0, revision=-1, nonrecursive=0, pool=0x80f2568)
    at subversion/libsvn_client/commit.c:890
#19 0x0804b991 in svn_cl__commit (os=0x80f26c8, opt_state=0xbffff3c0, pool=0x80f2568) at subversion/clients/cmdline/commit-cmd.c:91
#20 0x0804f82d in main (argc=4, argv=0xbffff4a4) at subversion/clients/cmdline/main.c:1225
(gdb) 
 
And after when we try to print the error, it can't convert this string. I
think we just need to try to print out the string svn_utf_utf8_to_native, or
execute the else condition when an error occur. Next: the backtrace
(gdb) bt
#0  svn_utf_utf8_to_native (utf8_string=0xb237158 "Berkeley DB error while deleting string for filesystem /mnt/bordel/tmp/linux/db:\nNe peut allouer de la mémoire", 
    buf=0xbfffd70c "subversion/libsvn_fs/err.c", bufsize=2048) at subversion/libsvn_subr/utf.c:542
#1  0x080b096c in handle_error (err=0xb237138, stream=0x4030e360, fatal=0, depth=2, parent_apr_err=21094) at subversion/libsvn_subr/svn_error.c:354
#2  0x080b09bb in handle_error (err=0xb2371c8, stream=0x4030e360, fatal=0, depth=1, parent_apr_err=21094) at subversion/libsvn_subr/svn_error.c:359
#3  0x080b09bb in handle_error (err=0xb237280, stream=0x4030e360, fatal=0, depth=0, parent_apr_err=0) at subversion/libsvn_subr/svn_error.c:359
#4  0x080b09f2 in svn_handle_error (err=0xb237280, stream=0x4030e360, fatal=0) at subversion/libsvn_subr/svn_error.c:370
#5  0x0804f874 in main (argc=4, argv=0xbffff4a4) at subversion/clients/cmdline/main.c:1231

For information my charset is ISO-8859-15 get_locale_charset() in xlate.c:158

Luc

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Commit succeeded, deltification failed

Posted by Luc Saillard <lu...@fr.alcove.com>.
On Thu, Aug 08, 2002 at 10:19:14AM -0500, Karl Fogel wrote:
> Can you try to reproduce it with the head Subversion?  For one thing,

Ok, i've downloaded the latest version from trunk. All was compiled with 
./autogen.sh && ./configure --enable-maintainer-mode --disable-shared
--with-berkeley-db=/usr/include/db4:/usr/lib && make
Note, i need to unset my CFLAGS because, if you pass multiple parameters like
this CFLAGS="-pipe -g -Wall", configure && make failed.

Now, this is the error.

subversion/libsvn_client/commit.c:662: (apr_err=21094, src_err=12)
svn: Berkeley DB error
svn: Commit failed (details follow):
subversion/libsvn_fs/tree.c:2228: (apr_err=21094, src_err=12)
svn: Commit succeeded, deltification failed                                                                        
subversion/libsvn_fs/err.c:50: (apr_err=21094, src_err=12)                                                         
svn: (charset conversion failed)

I don't why this program failed. The big problem, i need to wait nearly 6 hours
before to try to commit the patch-2.5.18.bz2. I've do a svn status juste
after this error, you can see it at
http://luc.saillard.free.fr/subversion/logs/svn_status2.gz

I known my shell script is not perfect, because he doesn't try to add new
file. So you will see some ? for some files.
 
Luc

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Commit succeeded, deltification failed

Posted by Karl Fogel <kf...@newton.ch.collab.net>.
Thanks for the bug report, Luc.

Can you try to reproduce it with the head Subversion?  For one thing,
the charset conversion error will now become much more informative --
it will give the entire error message except for the unconverted
characters.  (The "charset conversion failed" error was produced by
the error-printing function itself, when it was handed a string that
contained some unconvertible data.  So it's hiding the underlying
error information from us, but now Subversion will show much more of
that information.)

The memory problem on your second commit is a separate issue, that
also needs to be addressed, but first we need to find out why
deltification failed.

Thanks,
-Karl

Luc Saillard <lu...@fr.alcove.com> writes:
> i try to put linux kernel 2.5 into subversion and i've a problem, when I
> try to commit the 2.5.18 patches. Next the error:
> Committed revision 34.
> Thu, 08 Aug 2002 02:43:09 +0200 - Applying kernel patch 2.5.17
> Thu, 08 Aug 2002 02:43:30 +0200 - Commit patch-2.5.17
> 
> Committed revision 35.
> Thu, 08 Aug 2002 02:50:30 +0200 - Creating branch 2.5.17
> 
> Committed revision 36.
> Thu, 08 Aug 2002 02:50:31 +0200 - Applying kernel patch 2.5.18
> Thu, 08 Aug 2002 02:51:21 +0200 - Commit patch-2.5.18
> 
> svn_error: #21090 : <Berkeley DB error>
>   Commit failed (details follow):
> 
> svn_error: #21090 : <Berkeley DB error>
>   Commit succeeded, deltification failed
> 
> svn_error: #21090 : <Berkeley DB error>
>   (charset conversion failed)     
> 
> Then i've try to do a commit again,  and i've a error that some file need to
> be update. So i run svn update, and it took more than 700MB of memory. Next
> the script that i've used for the test. I've you any ideas about this
> problem ? i've search into the mailing archive, but found nothing. I use
> 2.4.19-rc1 kernel with 320MB of memory  and about 800MB of swap. The
> repository and the linux source is on two scsi hard drive to speedup the
> process. It's not a problem of disk space, i've 600MB free on each drive.
> I use Subversion Client, version 0.14.0 (r2667) compiled Aug  4 2002, 09:50:42.
> 
> 
> Luc
> 
> 
> ----------------------------------
> #!/bin/bash
> 
> set -e
> 
> # dir: where to put the linux tree
> # kerneldir: where we will find the kernel source + patches
> # svndir: where to put the repository
> # logdir: where to put logfiles
> dir=/mnt/linux/srcs/linux/linux-2.5/
> kerneldir=/mnt/bigdur/tmp/linux
> svndir=/mnt/bordel/tmp/linux
> svnurl=file://$svndir
> logdir=$PWD
> 
> log()
> {
>   set -e
>   echo `date -R` - $*
> }
> 
> logandexec()
> {
>   set -e
>   echo `date -R` - $*
>   $*
> }
> 
> #echo > $logdir/log
> #echo > $logdir/log_exec
> pushd $dir
> log Starting script
> logandexec rm -rf $svndir linux
> logandexec svnadmin create $svndir
> 
> logandexec tar -xjf $kerneldir/linux-2.5.0.tar.bz2
> logandexec svn import $svnurl $dir/linux linux -m "'Initial_import'"
> 
> logandexec rm -rf $dir/linux
> 
> logandexec svn checkout $svnurl/linux
> 
> log Creating branch 2.5.0
> logandexec svn cp $svnurl/linux $svnurl/linux-2.5.0 -m "Linux_2.5.0"
> 
> pushd linux
> let ver=1
> while [ $ver -lt 30 ] ; do
>   log Applying kernel patch 2.5.$ver
>   bzcat $kerneldir/patch-2.5.$ver.bz2 | patch -s -p1
>   log Commit patch-2.5.$ver
>   svn -q commit -m "Patch_2.5.$ver"
>   log Creating branch 2.5.$ver
>   svn cp $svnurl/linux $svnurl/linux-2.5.$ver -m "Linux_2.5.$ver"
> 
>   let ver=$ver+1
> done
> 
> log Script finished
> 
> popd
> popd
> -------------------
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org