Opened 10 years ago
Last modified 6 years ago
#12678 new enhancement
Error message when diagram image cannot be written
| Reported by: | Ryan J Ollos | Owned by: | Jun Omae |
|---|---|---|---|
| Priority: | normal | Component: | TracWorkflowAdminPlugin |
| Severity: | normal | Keywords: | |
| Cc: | Trac Release: | 1.0 |
Description
I just took over maintenance of a server and saw the following error after running the TracAdmin deploy command.
Here is the traceback from the logs:
2016-02-22 02:06:16,740 Trac[main] ERROR: Internal Server Error:
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/Trac-1.0.2-py2.6.egg/trac/web/main.py", line 512, in _dispatch_request
dispatcher.dispatch(req)
File "/usr/lib/python2.6/site-packages/Trac-1.0.2-py2.6.egg/trac/web/main.py", line 221, in dispatch
resp = chosen_handler.process_request(req)
File "/usr/lib/python2.6/site-packages/Trac-1.0.2-py2.6.egg/trac/admin/web_ui.py", line 120, in process_request
path_info)
File "build/bdist.linux-x86_64/egg/tracworkflowadmin/web_ui.py", line 137, in render_admin_panel
self._parse_request(req)
File "build/bdist.linux-x86_64/egg/tracworkflowadmin/web_ui.py", line 700, in _parse_request
self._update_diagram(req, params) # not return
File "build/bdist.linux-x86_64/egg/tracworkflowadmin/web_ui.py", line 455, in _update_diagram
self._create_diagram_image(path, dir, script, errors)
File "build/bdist.linux-x86_64/egg/tracworkflowadmin/web_ui.py", line 462, in _create_diagram_image
fd, tmp = mkstemp(suffix='.png', dir=dir)
File "/usr/lib64/python2.6/tempfile.py", line 293, in mkstemp
return _mkstemp_inner(dir, prefix, suffix, flags)
File "/usr/lib64/python2.6/tempfile.py", line 228, in _mkstemp_inner
fd = _os.open(file, flags, 0600)
OSError: [Errno 13] Permission denied: '<path/to>/htdocs/tracworkflowadmin/tmp7GtMK8.png'
The error was due to the following ownership permissions:
$ ls -ald htdocs/tracworkflowadmin drwxr-xr-x 5 root apache 4096 Feb 22 02:13 htdocs/tracworkflowadmin
The fix was straightforward after looking at the code to see what it was doing.
$ ls -ald htdocs/tracworkflowadmin drwxr-xr-x 5 apache apache 4096 Feb 22 02:13 htdocs/tracworkflowadmin
I was just thinking that this scenario is probably not all that uncommon, and it might be nice to provide an error message to guide the user to a solution in this case.
Attachments (2)
Change History (9)
Changed 10 years ago by
| Attachment: | Screen Shot 2016-02-21 at 23.22.15.png added |
|---|
comment:1 follow-up: 3 Changed 10 years ago by
comment:3 Changed 10 years ago by
Replying to jun66j5:
Indeed. Another thinking, after Trac 1.0, the plugin could use
$ENV/files/tracworkflowadmindirectory rather than$ENV/htdocs/tracworkflowadmin. The$ENV/filesdirectory normally is writable to web server.
What do you think about using $ENV/files/tracworkflowadmin for Trac 0.12+ and adding an installation step that tells the user to create the directory in Trac 0.12? I haven't checked whether the Trac 1.0 upgrade step that creates files would complain if the directory already exists.
comment:5 Changed 9 years ago by
I have such problem
File "/usr/lib/python2.7/dist-packages/tracworkflowadmin/web_ui.py", line 428, in _image_path_setup
os.mkdir(dir)
OSError: [Errno 13] Permission denied: '/var/lib/trac/evologics/htdocs/tracworkflowadmin'
And error message was alert popup with message like "[Object..]500[Object]
Changed 6 years ago by
| Attachment: | t12678.diff added |
|---|
comment:6 Changed 6 years ago by
t12678.diff uses $env/files/tracworkflowadmin for Trac >= 1.0. The patch from #13745 is included.




Indeed. Another thinking, after Trac 1.0, the plugin could use
$ENV/files/tracworkflowadmindirectory rather than$ENV/htdocs/tracworkflowadmin. The$ENV/filesdirectory normally is writable to web server.