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