Bug 7658 - svn падает на update при большой вложенности каталогов
Summary: svn падает на update при большой вложенности каталогов
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: subversion (show other bugs)
Version: unstable
Hardware: all Linux
: P2 critical
Assignee: Sviatoslav Sviridov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-12 16:18 MSD by Denis Smirnov
Modified: 2005-08-19 16:13 MSD (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Denis Smirnov 2005-08-12 16:18:52 MSD
при глубине вложенности порядка 11-12 svn update падает (segfault). Единственный
выход -- svn cleanup, зайти поглубже в дерево и сделать svn update там.

В случае, если файлов извлекать не надо, то svn update работает при любой
вложенности.
Comment 1 Sviatoslav Sviridov 2005-08-16 13:20:48 MSD
А можно тесткейс как получить такой segfault?

И если не сложно - можете закинуть в апстим?
Comment 2 Denis Smirnov 2005-08-16 16:58:03 MSD
Тесткейс элементарный:

#!/bin/sh
mkdir 1
svnadmin create 1
mkdir 2
svn co file://`realpath 1` 2
mkdir -p 2/1/2/3/4/5/6/7/8/9/10/11/12
svn add 2/1
svn commit -m '' 2
 
svn co file://`realpath 1` 3

кинуть в апстрим не могу.
Comment 3 Sviatoslav Sviridov 2005-08-17 00:15:57 MSD
На 1.2.0 проявляется, на 1.2.1 не проявляется.
Похоже, придется закидывать в сизиф 1.2.1 с оторванными perl-bindings...
Comment 4 Sviatoslav Sviridov 2005-08-17 00:22:19 MSD
Кстати, на 1.2.1 есть более другие баги, проявляющиеся при больших уровнях
вложенности:

1. при слишком больших уровнях вложенности svn не может прочитать собственный
файл описания изменения в транзакции (во время коммита):
svn: Commit failed (details follow):
svn: Can't read length line in file
'<censored>/1/db/transactions/0-1.txn/node._7t.0'
(обламывается на уровне 282)

2. Если 1й баг не проявляется (например, при 280 вложенных каталогах), то во
время собсно коммита память кушается нещадно. Для коммита используется вся
память и своп на машине с 384М RAM + 128M swap.

Но данне баги, думаю, пока можно считать минорными.

=====#!/bin/sh
mkdir 1
svnadmin create 1
mkdir 2
svn co file://`realpath 1` 2
DIRS=`seq 1 285|xargs echo|tr ' ' '/'`
mkdir -p "2/$DIRS"
svn add 2/1
svn commit -m '' 2

svn co file://`realpath 1` 3
=========

Comment 5 Sviatoslav Sviridov 2005-08-17 01:51:50 MSD
Исправлено в 1.2.1-alt1
Comment 6 Denis Smirnov 2005-08-18 21:48:36 MSD
А.. Ну глюки при уровне вложенности больше нескольких десятков как-то мало
волнуют :)