質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

Q&A

解決済

1回答

5495閲覧

http経由のsvn更新が突然できなくなった。

fujifujifuji

総合スコア6

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

0グッド

0クリップ

投稿2018/06/29 08:14

編集2018/06/30 02:18

前提・実現したいこと

http経由のsvn更新

発生している問題・エラーメッセージ

-最後に成功した時からsvn更新エラーまでなんのエラーもaccess_logに無いが、
急にsvn更新ができなくなった。

svn更新エラー時の var/log/httpd/error_log
[Fri Jun 15 08:54:53 2018] [error] [client 192.168.11.2] (2)No such file or directory: Could not open password file: /home/svn/svnconf/svnusers
[Fri Jun 15 08:54:53 2018] [error] [client 192.168.11.2] access to /svn/repos_dev/trunk/isb_dev failed, reason: verification of user id 'wachi' not configured

該当のソースコード

subversion.conf

<Location /svn> DAV svn SVNListParentPath on SVNParentPath /home/svn AuthType Basic AuthName "Subversion repositories" AuthUserFile "/home/svn/svnconf/svnusers" Require valid-user AuthzSVNAccessFile "/home/svn/svnconf/svnaccess"

httpd.conf

# ServerRoot: The top of the directory tree under which the server's # configuration, error, and log files are kept. # # NOTE! If you intend to place this on an NFS (or otherwise network) # mounted filesystem then please read the LockFile documentation # (available at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>); # you will save yourself a lot of trouble. # # Do NOT add a slash at the end of the directory path. # ServerRoot "/etc/httpd" # # PidFile: The file in which the server should record its process # identification number when it starts. Note the PIDFILE variable in # /etc/sysconfig/httpd must be set appropriately if this location is # changed. # PidFile run/httpd.pid <snip> # # Load config files from the config directory "/etc/httpd/conf.d". # Include conf.d/*.conf <snip> CustomLog logs/svn_log "%t %u %{SVN-ACTION}e %U" env=SVN-ACTION

httpd

#!/bin/bash # # httpd Startup script for the Apache HTTP Server # # chkconfig: - 85 15 # description: The Apache HTTP Server is an efficient and extensible \ # server implementing the current HTTP standards. # processname: httpd # config: /etc/httpd/conf/httpd.conf # config: /etc/sysconfig/httpd # pidfile: /var/run/httpd/httpd.pid # ### BEGIN INIT INFO # Provides: httpd # Required-Start: $local_fs $remote_fs $network $named # Required-Stop: $local_fs $remote_fs $network # Should-Start: distcache # Short-Description: start and stop Apache HTTP Server # Description: The Apache HTTP Server is an extensible server # implementing the current HTTP standards. ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/httpd ]; then . /etc/sysconfig/httpd fi # Start httpd in the C locale by default. HTTPD_LANG=${HTTPD_LANG-"C"} # This will prevent initlog from swallowing up a pass-phrase prompt if # mod_ssl needs a pass-phrase from the user. INITLOG_ARGS="" # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server # with the thread-based "worker" MPM; BE WARNED that some modules may not # work correctly with a thread-based MPM; notably PHP will refuse to start. # Path to the apachectl script, server binary, and short-form for messages. apachectl=/usr/sbin/apachectl httpd=${HTTPD-/usr/sbin/httpd} prog=httpd pidfile=${PIDFILE-/var/run/httpd/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd} RETVAL=0 STOP_TIMEOUT=${STOP_TIMEOUT-10} # The semantics of these two functions differ from the way apachectl does # things -- attempting to start while running is a failure, and shutdown # when not running is also a failure. So we just do it the way init scripts # are expected to behave here. start() { echo -n $"Starting $prog: " LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL } # When stopping httpd, a delay (of default 10 second) is required # before SIGKILLing the httpd parent; this gives enough time for the # httpd parent to SIGKILL any errant children. stop() { echo -n $"Stopping $prog: " killproc -p ${pidfile} -d ${STOP_TIMEOUT} $httpd RETVAL=$? echo [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} } reload() { echo -n $"Reloading $prog: " if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then RETVAL=6 echo $"not reloading due to configuration syntax error" failure $"not reloading $httpd due to configuration syntax error" else # Force LSB behaviour from killproc LSB=1 killproc -p ${pidfile} $httpd -HUP RETVAL=$? if [ $RETVAL -eq 7 ]; then failure $"httpd shutdown" fi fi echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status -p ${pidfile} $httpd RETVAL=$? ;; restart) stop start ;; condrestart|try-restart) if status -p ${pidfile} $httpd >&/dev/null; then stop start fi ;; force-reload|reload) reload ;; graceful|help|configtest|fullstatus) $apachectl $@ RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}" RETVAL=2 esac exit $RETVAL

試したこと

subversion.confを確認した所
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn★

★このディレクトリが実情と異なり、
/backup/home/svn★

がルートだったので(サーバ作成者が既にいないのでどうしてそう設定したか
なんで今まで動いていたか、シンボリックリンク等使っていたのかは謎。)
実情にあわせて/home/svnをルートにてsvn更新した所、
svn://(ドメイン名)/svn/=>OK
http://(ドメイン名)/svn/=>NG
となる。

var/log/httpd/access_log及びerror_logには何もログは残らず、
TortoiseSVNが下記エラーを返す。

C:\Users\002320\Desktop\repos_doc
Can't find a temporary directory: Internal error

apachの設定を疑って権限を付与したが状況は変わらず。
chown -R apache:apache /home/svn/

chmod -R 755 /home/svn/

補足情報(FW/ツールのバージョンなど)

CentOS
apache
※バージョン確認中に落ちたのでまた起動したらバージョン追加します。

TortoiseSVNで保持しているhttpでアクセスする際のroot情報が
下記変わっていない事も疑っています。
しかしsvn=>再配置で設定しても
svn://(ドメイン名)/svn/=>OK
http://(ドメイン名)/svn/=>NG
この状況は変わりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

原因:svnサーバーの容量オーバー

df -h
すると
100%になっていた。
※下記サイトと同じ現象。

http://d.hatena.ne.jp/snegishi/20091228/1261952589

いらないファイルを削除した所今度は次の問題が発生した。

問題:svnチェックアウトのみできて、コミットができないディレクトリがある。

[repos_doc:/]
はチェックアウトもコミットもできるが

[repos:/]
はチェックアウトのみできて、コミットができない。

var/log/httpd/error_logを確認すると403エラーが出ている
192.168.11.2 - taro [03/Jul/2018:11:12:31 +0900] "PROPFIND /svn/repos/trunk/ivc/src/main HTTP/1.1" 207 714 "-" "SVN/1.8.4 (x86-microsoft-windows) serf/1.3.2 TortoiseSVN-1.8.3.24901"
192.168.11.2 - taro [03/Jul/2018:11:12:31 +0900] "MKACTIVITY /svn/repos/!svn/act/74418100-bc35-8347-b886-39ec5677bd77 HTTP/1.1" 403 352 "-" "SVN/1.8.4 (x86-microsoft-windows) serf/1.3.2 TortoiseSVN-1.8.3.24901"

原因:/home/svn/svnconf/svnaccessの権限
taroが、「developers 」のグループにのみ設定されていて
「release」に含まれていなかった。

変更前
[groups]
developers = taro, xxx, ooo
release = xxx, ooo

[repos:/]

  • = r

@developers = r
@release = rw

[repos_dev:/]

  • = r

@developers = rw
@release = rw

変更後
[groups]
developers = taro, xxx, ooo
release = taro★, xxx, ooo

補足情報(FW/ツールのバージョンなど)
CentOS 6.5

投稿2018/07/03 06:48

fujifujifuji

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fujifujifuji

2018/07/03 07:15

一番知りたいのはこんなに設定を見直さないと動かない状態で、なぜ最初のエラー前は動いていたかですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問