Tuesday 23 May 2006 2:02:53 am
More debuging, and the explanation! I have this in the logs:
[ May 23 2006 09:39:40 ] [x.x.x.x] eZTARArchiveHandler:
Unable to create directory './var/storage/packages/ez_systems/plain_site/files/'
[ May 23 2006 09:39:40 ] [x.x.x.x] eZTARArchiveHandler:
Unable to create path for ./var/storage/packages/ez_systems/plain_site/files/
[ May 23 2006 09:39:40 ] [x.x.x.x] : Failed loading imported package plain_site from var/storage/packages/ez_systems
And running a kernel trace shows this system call failure before the log messages are created:
25141 httpd CALL access(0x8cc340c,0)
25141 httpd NAMI "./var/storage/packages/ez_systems/plain_site/files/"
25141 httpd RET access -1 errno 2 No such file or directory
25141 httpd CALL __stat13(0x8d8120c,0x48523c5c)
25141 httpd NAMI "./var/storage/packages/ez_systems/plain_site/files/"
25141 httpd RET __stat13 -1 errno 2 No such file or directory
25141 httpd CALL __stat13(0x8d3090c,0x48523c5c)
25141 httpd NAMI "./var/storage/packages/ez_systems/plain_site"
25141 httpd RET __stat13 0
25141 httpd CALL mkdir(0x8d8108c,0x1ff)
25141 httpd NAMI "./var/storage/packages/ez_systems/plain_site/files/" 25141 httpd RET mkdir -1 errno 2 No such file or directory
The rights seems fine, though:
#ls -ld var
drwxr-xr-x 5 www wheel 512 May 12 11:00 var/
#ls -ld var/storage
drwxr-xr-x 3 www wheel 512 May 12 15:25 var/storage/
#ls -ld var/storage//packages
drwxrwxrwx 3 www wheel 512 May 12 15:25 var/storage/packages/
#ls -ld var/storage/packages/ez_systems
drwxrwxrwx 3 www wheel 512 May 23 09:30 var/storage/packages/ez_systems/
#ls -ld var/storage/packages/ez_systems/plain_site drwxrwxrwx 2 www wheel 512 May 23 09:39 var/storage/packages/ez_systems/plain_site/
Running a little test, it seems the trailing slash is the problem: Here is a small C program
#include <stdio.h> #include <sys/stat.h>
int main(void) { int error;
error = mkdir("/tmp/test", 0x1ff); printf("mkdir(\"/tmp/test\", 0x1ff) returns %d\n", error);
error = mkdir("/tmp/test2/", 0x1ff); printf("mkdir(\"/tmp/test2/\", 0x1ff) returns %d\n", error);
return 0; }
If I run it on my system (NetBSD 1.6.2):
mkdir("/tmp/test", 0x1ff) returns 0 mkdir("/tmp/test2/", 0x1ff) returns -1 This is a kernel bug. It has been fixed in more recent releases of NetBSD (2.x and 3.x). A fix in ezPublish would not harm, though. At least you need a check to tell the user to upgrade his kernel.
|