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

Re: lock request returns "405 Method Not Allowed"

From: Backup e-mail <bckemail_at_yahoo.com>
Date: 2007-02-28 18:24:14 CET

  OK, I think I've managed to get a more readable trace.
  I suspect the issue could be fixed by changing something in the Apache config file
  but I do not have the clue about what to add or delete.
   
  TRACE SCENARIO
  -------------
  Using strace I've recorded Apache high level system calls while submitting
  two Subversion requests, a CHECKOUT and a LOCK:
  svn co http://zinzalusa/svn/ContactsToLDIF
  svn lock http://zinzalusa/svn/ContactsToLDIF/ContactsToLDIF.bas
  I've attached the relevant (hopefully) lines of the two logs.
   
  For your information Apache's DocumentRoot is /var/www/html/ and Subversion's
  repository root is /var/lib/svn.
  Your help is very much appreciated.
  Thanks,
   
  Costa
  -------------------- httpd-CO-trace.log -------------------------------
  read(12, "PROPFIND /svn/ContactsToLDIF/Con"..., 8000) = 301
  gettimeofday({1172669309, 13935}, NULL) = 0
  stat64("/var/www/html/svn/ContactsToLDIF/ContactsToLDIF.bas", 0xbff59234) = -1 ENOENT (No such file or directory)
  lstat64("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
  lstat64("/var/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
  lstat64("/var/www/html", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
  lstat64("/var/www/html/svn", 0xbff59214) = -1 ENOENT (No such file or directory)
  open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 13
  fstat64(13, {st_mode=S_IFREG|0644, st_size=21544, ...}) = 0
  mmap2(NULL, 21544, PROT_READ, MAP_SHARED, 13, 0) = 0xb776f000
  close(13) = 0
  futex(0xb7cf914c, FUTEX_WAKE, 2147483647) = 0
  open("/var/lib/svn/ContactsToLDIF/format", O_RDONLY) = 13
  read(13, "5\n", 80) = 2
  close(13) = 0
  open("/var/lib/svn/ContactsToLDIF/db/fs-type", O_RDONLY) = 13
  read(13, "fsfs\n", 4096) = 5
  close(13) = 0
  open("/var/lib/svn/ContactsToLDIF/db/fs-type", O_RDONLY) = 13
  read(13, "fsfs\n", 4096) = 5
  close(13) = 0
  open("/var/lib/svn/ContactsToLDIF/db/current", O_RDONLY) = 13
  close(13) = 0
  open("/var/lib/svn/ContactsToLDIF/db/format", O_RDONLY) = 13
  read(13, "2\n", 80) = 2
  close(13) = 0
  open("/var/lib/svn/ContactsToLDIF/db/uuid", O_RDONLY) = 13
  read(13, "7781e80b-232a-0410-a02c-8069c83c"..., 4096) = 37
  close(13) = 0
  open("/var/lib/svn/ContactsToLDIF/db/current", O_RDONLY) = 13
  read(13, "2 2 1\n", 80) = 6
  close(13) = 0
  ------------------- httpd-LOCK-trace.log ------------------------------
  semop(950283, 0xb7d99740, 1) = 0
  poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN, revents=POLLIN}], 2, -1) = 1
  accept(3, {sa_family=AF_INET6, sin6_port=htons(43178), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 12
  semop(950283, 0xb7d99746, 1) = 0
  getsockname(12, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
  fcntl64(12, F_GETFL) = 0x2 (flags O_RDWR)
  fcntl64(12, F_SETFL, O_RDWR|O_NONBLOCK) = 0
  read(12, 0xb91021b0, 8000) = -1 EAGAIN (Resource temporarily unavailable)
  poll([{fd=12, events=POLLIN, revents=POLLIN}], 1, 120000) = 1
  read(12, "LOCK /svn/ContactsToLDIF/Contact"..., 8000) = 256
  gettimeofday({1172669309, 46159}, NULL) = 0
  stat64("/var/www/html/svn/ContactsToLDIF/ContactsToLDIF.bas", 0xbff59234) = -1 ENOENT (No such file or directory)
  lstat64("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
  lstat64("/var/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
  lstat64("/var/www/html", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
  lstat64("/var/www/html/svn", 0xbff59214) = -1 ENOENT (No such file or directory)
  open("/etc/httpd/svn-auth-file", O_RDONLY) = 13
  fstat64(13, {st_mode=S_IFREG|0644, st_size=49, ...}) = 0
  read(13, "costantino:$apr1$Wy.Gr...$lZDxpc"..., 4096) = 49
  close(13) = 0
  poll([{fd=12, events=POLLIN, revents=POLLIN}], 1, 120000) = 1
  read(12, "<?xml version=\"1.0\" encoding=\"ut"..., 8000) = 145
  writev(12, [{"HTTP/1.1 405 Method Not Allowed\r"..., 225}, {"<!DOCTYPE HTML PUBLIC \"-//IETF//"..., 334}], 2) = 559
  write(9, "127.0.0.1 - costantino [28/Feb/2"..., 152) = 152
  shutdown(12, 1 /* send */) = 0
  poll([{fd=12, events=POLLIN, revents=POLLIN|POLLHUP}], 1, 2000) = 1
  read(12, "", 512) = 0
  close(12) = 0
  read(5, 0xbff5958f, 1) = -1 EAGAIN (Resource temporarily unavailable)
  semop(950283, 0xb7d99740, 1) = 0
  poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, -1) = -1 EINTR (Interrupted system call)
  --- SIGINT (Interrupt) @ 0 (0) ---
  brk(0xb910d000) = 0xb910d000
  close(6) = 0
  close(5) = 0
  exit_group(0) = ?
  =======================================================================================

Ben Collins-Sussman <sussman@red-bean.com> wrote: On 2/25/07, Backup e-mail wrote:
> Perhaps I'm wrong, but if I watch the trace of the LOCK request I see that
> it ends while informing that it can not find the .svn/log (directory/file).
> Isn't that significant in this context?

No, it's not significant at all. .svn/log is a temporary journal that
the working copy creates to 'get work done' When changes need to be
made to the working copy, the actions are first journaled in
.svn/log, then executed from the log, then the log is removed. The
journaling aspect allows the client to be interrupted; when the user
runs 'svn cleanup', it finishes executing any leftover log journals.

> Isn't that important or can it do without?
>

In this case, it's totally irrelevant. Notice that the server has
*already* sent a 405 error, and the client is writing it to the
screen. The two strace commands following that are just routine
cleanup checks: "delete .svn/log if present" and "delete the
'lockfile' if present". (The .svn/lock file is just marker that means
"I'm working within this .svn/ area now".... it prevents more than one
client process from trying to change an .svn/ area at once.)

The issue is still a question of why the server is denying your
request. Client-side bookkeeping operations do not affect the
server's configuration. :-)

If you want to trace something useful, try making the repository
available outside of SSL, and do a network trace of the LOCK
request/response using wireshark.

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

 
---------------------------------
No need to miss a message. Get email on-the-go
with Yahoo! Mail for Mobile. Get started.
Received on Wed Feb 28 18:24:46 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.