Closed
Bug 177850
Opened 23 years ago
Closed 23 years ago
checksetup fails if the user does not have read permission to the whole bugzilla path
Categories
(Bugzilla :: Installation & Upgrading, defect, P3)
Tracking
()
RESOLVED
FIXED
Bugzilla 2.18
People
(Reporter: jussi, Assigned: jussi)
Details
Attachments
(1 file)
1.43 KB,
patch
|
justdave
:
review+
|
Details | Diff | Splinter Review |
When I was installing bugzilla to a site where the path to bugzilla was:
/data/www/customers/xyz/public_html/bugzilla
After finddepth had reported the error, cwd was /data/www/customers
I added a chdir("/data/www/customers/xyz/public_html/bugzilla") after the
finddepth and changed COMPILE_DIR to point to full path. After these changes I
managed to get checksetup through.
Error message from unmodified checksetup:
Removing existing compiled templates ...
[Fri Nov 1 05:48:28 2002] checksetup.pl: Can't stat data/template: No such file
or directory
Content-type: text/html
<H1>Software error:</H1>
<PRE>mkdir data: Permission denied at
/data/www/customers/xyz/local/share/perl/5.6.1/Template/Provider.pm line 368
</PRE>
<P>
For help, please send mail to this site's webmaster, giving this error message
and the time and date of the error.
[Fri Nov 1 05:48:28 2002] checksetup.pl: mkdir data: Permission denied at
/data/www/customers/xyz/local/share/perl/5.6.1/Template/Provider.pm line 368
![]() |
||
Comment 1•23 years ago
|
||
Waht is the current working directory before finddepth is run?
![]() |
Assignee | |
Comment 2•23 years ago
|
||
The current working directory before finddepth was
/data/www/customers/xyz/public_html/bugzilla
I used system("pwd") to print them (in case that has some side effects).
![]() |
||
Comment 3•23 years ago
|
||
hmm. Something is odd, here.
What perl version do you have? Waht vrsion of File::Find?
![]() |
Assignee | |
Comment 4•23 years ago
|
||
The perl version is 5.6.1. I'm not that sure about File::Find since the file
does not specify a version.
After a bit of digging I found the real problem: Some of the directories below
bugzilla directory have only execute bit set for the bugzilla user and for some
reason File::Find stat's every directory in the path (checking for symlinks?).
When this fails it leaves the working directory to the incorrect value.
This installation is in a hosted site so I do not have control over the permissions.
Summary: checksetup fails when bugzilla is in directory containing /data/ → checksetup fails if the user does not have read permission to the whole bugzilla path
![]() |
||
Comment 5•23 years ago
|
||
Hmmm.
I can stat a directory if only +x is set, though, plus I can't reprporduce this.
There is an opendir call, but that should be error-safe.
Theres a line in checksetup which does |local (^W) = 0;|. If you comment that
out, do you get any warnings from File::Find?
![]() |
Assignee | |
Comment 6•23 years ago
|
||
With a fresh cvs checkout and these permissions I can reproduce the problem. The
next run after localconfig has been created results in the error message.
jussi@gandalf[~/tmp/mozilla/webtools] $ pwd
/home/jussi/tmp/mozilla/webtools
jussi@gandalf[~/tmp/mozilla/webtools] $ ll -d .
d--x------ 4 jussi jussi 4096 marras 4 15:35 ./
jussi@gandalf[~/tmp/mozilla/webtools] $ cd bugzilla
jussi@gandalf[~/tmp/mozilla/webtools/bugzilla] $ ll -d .
drwxrwxr-x 16 jussi jussi 4096 marras 4 15:46 ./
jussi@gandalf[~/tmp/mozilla/webtools/bugzilla] $ ./checksetup.pl
It seems that File::Find uses Cwd::fastcwd which changes the directory and does
an opendir for the parent directories. The Cwd documentation warns about this
kind of a problem but I don't know what can be done to prevent it.
![]() |
||
Comment 7•23 years ago
|
||
Hmm, looking at code, that only happens for the finddepth case.
Maybe we could use File::Path::rmtree, and 'detect' errors by confirming that
the dir no longer exists?
![]() |
Assignee | |
Comment 8•23 years ago
|
||
Here is a fix using rmtree. The getcwd call few lines further caused the error
also, so I changed it to normal cwd.
![]() |
||
Comment 9•23 years ago
|
||
I think it is safe to confirm this and target it for 2.18. It is going to need
a fix in either code or documentation. I hit it myself and found it annoying.
It would be bad for someone who was setting up their first system.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P3
Target Milestone: --- → Bugzilla 2.18
Comment 10•23 years ago
|
||
Comment on attachment 105581 [details] [diff] [review]
Fix using File::Path::rmtree
r= justdave
Ran into this myself trying to upgrade an old pre-template Bugzilla that is
maintained as a non-root user.
Tried out this patch, and it works.
Attachment #105581 -
Flags: review+
Comment 12•23 years ago
|
||
Checking in checksetup.pl;
/cvsroot/mozilla/webtools/bugzilla/checksetup.pl,v <-- checksetup.pl
new revision: 1.208; previous revision: 1.207
done
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Updated•13 years ago
|
QA Contact: matty_is_a_geek → default-qa
You need to log in
before you can comment on or make changes to this bug.
Description
•