SVN Repository복구하고 사용시에 "svn: Found malformed header in revision file"이란 error message.

ertos12의 이미지

svn을 설치해서 사용하던 시스템이 심각한 오류가 발생해서 시스템에 Linux를 새로이 설치하였습니다.
다행스럽게도 svn은 별도의 disk에 있어서, 별도의 svn repository를 백업하지는 않았지만,
repository directory는 그대로 남아 있습니다.
새로이 설치한 시스템에 svn의 repository를 svnserve -i -r 를 지정해서
사용하면 일단, 서버 상태는 정상적으로 보입니다.
그런데, 리모트에 작업용 시스템에서 svn log를 해보면..

.....
.....
svn: Corrupt node-revision '2-30.0-9.r32/356955'
svn: Found malformed header in revision file

이렇게 에러 메세지가 나옵니다. svn update를 실행하면, 그냥 무한정 멈춰서있습니다.
서버 시스템에서 svnadmin으로 다음과 같이 실행하면,

svnadmin verify
* Verified revision 0.
* Verified revision 1.
* Verified revision 2.
* Verified revision 3.
svnadmin: Found malformed header in revision file

이렇게 error가 납니다.

svnadmin dump로 백업을할려고 해도 동일하게 revision 4에서 위와 동일한 에러 "Found malformed header in revision file"이라는 에러가 발생합니다.

그냥 repository directory를 통째로 가지고 있어도 복구가 안되는 건가요?

kukyakya의 이미지

svnadmin dump 로 dump 하신 후에 svnadmin load로 저장소를 재구축하시면 되지 않을까요?

ertos12의 이미지

svnadmin dump로 dump를 해도 똑같이
svnadmin dump > repo.dmp
* Dumped revision 0.
* Dumped revision 1.
* Dumped revision 2.
* Dumped revision 3.
svnadmin: Found malformed header in revision file

이렇게 에러가 발생합니다. 현재 repository의 revision은 77까지 되있습니다.

neocoin의 이미지

svnadmin recover svn_path

예전에 테스트로 flash 메모리에 svn 저장소를 쓸일이 있었는데 버클리 DB가 이상하게 자주 깨지는 경우가 발생했었습니다. 그외에도 잘쓰다가 깨진적도 있었구요.
이후로 아예 svn repository를 백업하는 습관이 생겼습니다.

백업 본이 있으니, 한번 테스트라도 해보세요.

복구 할수 있는 가장 최신 revision으로 돌아가는 걸로 알고 있는데, svn의 버전이 올라가면서 거의 이런 상황은 저에게 사라졌었습니다.

ertos12의 이미지

음.. svnadmin recover는 버클리 DB에서만 사용하는 것 아닌가요? 전 default롤 fsfs type이라서요.

svnadmin recover
Repository lock acquired.
Please wait; recovering the repository may take some time...

Recovery completed.
The latest repos revision is 77.

실행은 정상적으로 되었지만, 문제점은 해결되지 않네요..
fsfs type일때는 어떻게 해야 하죠?

아니면.. 현재 문제가 되는 revision은 제외하고, 가장 최신 revision만을 복구할 수 있는 방법은 없을까요?
svnadmin dump -r 77 > repo.dump

이렇게 복구를 시도해도 동일한 error message가 나와 버리네요..
어떻게 해야 할지 막막합니다..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.