Description
I can create a MoinMoin Wiki. I can navigate and create a new user so some permissions are correctly set up.
However, if I edit a page, I can preview it, but get a crash on saving. In this case the front page.
Here are the results of the test script
Python version 2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC v.1200 32 bit (Intel)]
Python installed to c:\python
PyXML is installed
Python Path:
c:\Moin\NikiWiki
C:\WINDOWS\System32\python23.zip
C:\Python\lib\site-packages\Pythonwin
C:\Python\lib\site-packages\win32
C:\Python\lib\site-packages\win32\lib
C:\Python\lib\site-packages
c:\python\DLLs
c:\python\lib
c:\python\lib\plat-win
c:\python\lib\lib-tk
c:\python
C:\Moin\Lib\site-packages
data
Checking directories...
data directory tests OK (set to 'c:\Moin\NikiWiki\data')
text directory tests OK (set to 'c:\Moin\NikiWiki\data\text')
user directory tests OK (set to 'c:\Moin\NikiWiki\data\user')
backup directory tests OK (set to 'c:\Moin\NikiWiki\data\backup')
Server Environment:
ALLUSERSPROFILE = 'C:\\Documents and Settings\\All Users'
COMMONPROGRAMFILES = 'C:\\Program Files\\Common Files'
COMPUTERNAME = 'LEWIE'
COMSPEC = 'C:\\WINDOWS\\system32\\cmd.exe'
CONTENT_LENGTH = '0'
GATEWAY_INTERFACE = 'CGI/1.1'
HTTPS = 'off'
HTTP_ACCEPT = 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, application/x-gsarcade-launch, */*'
HTTP_ACCEPT_LANGUAGE = 'en-gb'
HTTP_CONNECTION = 'Keep-Alive'
HTTP_HOST = 'localhost'
HTTP_USER_AGENT = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'
HTTP________________ = '----- -------'
INCLUDE = 'C:\\Program Files\\Microsoft.NET\\SDK\\v1.1\\include\\;C:\\Program Files\\Microsoft Visual Studio .NET\\FrameworkSDK\\include\\'
INSTANCE_ID = '1'
LIB = 'C:\\Program Files\\Microsoft.NET\\SDK\\v1.1\\Lib\\;C:\\Program Files\\Microsoft Visual Studio .NET\\FrameworkSDK\\Lib\\'
LOCAL_ADDR = '127.0.0.1'
NUMBER_OF_PROCESSORS = '1'
OS = 'Windows_NT'
PATH = 'C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\Program Files\\Sonic\\MyDVD;C:\\Program Files\\Common Files\\Adaptec Shared\\System;"C:\\Program Files\\Symantec\\Norton Ghost 2003\\";C:\\Program Files\\UltraEdit'
PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH'
PATH_INFO = '/nikiwiki/moin.cgi'
PATH_TRANSLATED = 'c:\\Moin\\NikiWiki\\moin.cgi'
PROCESSOR_ARCHITECTURE = 'x86'
PROCESSOR_IDENTIFIER = 'x86 Family 15 Model 2 Stepping 7, GenuineIntel'
PROCESSOR_LEVEL = '15'
PROCESSOR_REVISION = '0207'
PROGRAMFILES = 'C:\\Program Files'
QUERY_STRING = 'test'
REMOTE_ADDR = '127.0.0.1'
REMOTE_HOST = '127.0.0.1'
REQUEST_METHOD = 'GET'
SCRIPT_NAME = '/nikiwiki/moin.cgi'
SERVER_NAME = 'localhost'
SERVER_PORT = '80'
SERVER_PORT_SECURE = '0'
SERVER_PROTOCOL = 'HTTP/1.1'
SERVER_SOFTWARE = 'Microsoft-IIS/5.1'
SYSTEMDRIVE = 'C:'
SYSTEMROOT = 'C:\\WINDOWS'
TEMP = 'C:\\WINDOWS\\TEMP'
TMP = 'C:\\WINDOWS\\TEMP'
USERPROFILE = 'C:\\Documents and Settings\\LocalService'
VS71COMNTOOLS = 'C:\\Program Files\\Microsoft Visual Studio .NET 2003\\Common7\\Tools\\'
VSCOMNTOOLS = '"C:\\Program Files\\Microsoft Visual Studio .NET\\Common7\\Tools\\"'
WINDIR = 'C:\\WINDOWS'
Unit Tests:
runTest (MoinMoin._tests.test_Page.existsTestCase) ... ok
runTest (MoinMoin._tests.test_PageEditor.expand_variablesTestCase) ... ok
runTest (MoinMoin._tests.test_marshal.MarshalTestCase) ... ok
runTest (MoinMoin._tests.test_parser_wiki.WikiMacroTestCase) ... ok
runTest (MoinMoin._tests.test_parser_wiki.PageLinkTestCase) ... ok
runTest (MoinMoin._tests.test_parser_wiki.InlineMarkupTestCase) ... ok
runTest (MoinMoin._tests.test_user.encodePasswordTestCase) ... ok
runTest (MoinMoin._tests.test_util_mail.decodeSpamSafeEmailTestCase) ... ok
runTest (MoinMoin._tests.test_util_web.makeSelectionTestCase) ... ok
runTest (MoinMoin._tests.test_util_web.makeQueryStringTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.CompositeElementTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.RawTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.EmptyElementTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.AttrTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.TextTestCase) ... ok
runTest (MoinMoin._tests.test_wikiacl.parsingTestCase) ... ok
runTest (MoinMoin._tests.test_wikimacro.NormalMacroTestCase) ... ok
runTest (MoinMoin._tests.test_wikiutil.isTemplatePageTestCase) ... ok
runTest (MoinMoin._tests.test_wikiutil.isFormPageTestCase) ... ok
----------------------------------------------------------------------
Ran 19 tests in 0.125s
OKAs you can see, no problems.
Here is the stack trace
--> -->
OSError[Errno 13] Permission denied Please include this information in your bug reports!:
Python Python 2.3.3: c:\python\python.exe
Platform: win32 (nt)
MoinMoin Release 1.2.1 [Revision 1.184]
Sat Apr 03 18:22:12 2004
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
c:\python\Lib\site-packages\MoinMoin\request.py in run(self=<MoinMoin.request.RequestCGI instance at 0x0066AF08>)
454 else:
455 try:
456 cgitb.Hook(file=self).handle(saved_exc)
457 # was: cgitb.handler()
458 except:
cgitb = <module 'MoinMoin.support.cgitb' from 'C:\Python\lib\site-packages\MoinMoin\support\cgitb.pyc'>, cgitb.Hook = <class MoinMoin.support.cgitb.Hook at 0x008A2EA0>, file undefined, self = <MoinMoin.request.RequestCGI instance at 0x0066AF08>, ).handle undefined, saved_exc = (<class exceptions.OSError at 0x005E4750>, <exceptions.OSError instance at 0x00895FD0>, <traceback object at 0x00895E40>)
c:\python\Lib\site-packages\MoinMoin\wikiaction.py in do_savepage(pagename='FrontPage', request=<MoinMoin.request.RequestCGI instance at 0x0066AF08>)
687 savemsg = msg
688 except pg.SaveError, msg:
689 savemsg = msg
690 request.reset()
691 backto = request.form.get('backto', [None])[0]
savemsg undefined, msg undefined
c:\python\Lib\site-packages\MoinMoin\PageEditor.py in saveText(self=<MoinMoin.PageEditor.PageEditor instance at 0x00888E90>, newtext='##language:en\n#pragma section-numbers off\n\nm\n\n\n=...the database in various ways\n * SyntaxReference\n', datestamp='1076971826', **kw={'comment': '', 'notify': 0, 'stripspaces': 1})
765
766 # write the page file
767 mtime = self._write_file(newtext)
768 if self._acl_cache.has_key(self.page_name):
769 del self._acl_cache[self.page_name]
mtime undefined, self = <MoinMoin.PageEditor.PageEditor instance at 0x00888E90>, self._write_file = <bound method PageEditor._write_file of <MoinMoin.PageEditor.PageEditor instance at 0x00888E90>>, newtext = '##language:en\n#pragma section-numbers off\n\nm\n\n\n=...the database in various ways\n * SyntaxReference\n'
c:\python\Lib\site-packages\MoinMoin\PageEditor.py in _write_file(self=<MoinMoin.PageEditor.PageEditor instance at 0x00888E90>, text='##language:en\n#pragma section-numbers off\n\nm\n\n\n=...the database in various ways\n * SyntaxReference\n')
674 if os.path.isfile(page_filename) and not is_deprecated and self.do_revision_backup:
675 os.rename(page_filename, os.path.join(config.backup_dir,
676 wikiutil.quoteFilename(self.page_name) + '.' + str(os.path.getmtime(page_filename))))
677 else:
678 if os.name == 'nt':
global wikiutil = <module 'MoinMoin.wikiutil' from 'C:\Python\lib\site-packages\MoinMoin\wikiutil.pyc'>, wikiutil.quoteFilename = <function quoteFilename at 0x0070DAF0>, self = <MoinMoin.PageEditor.PageEditor instance at 0x00888E90>, self.page_name = 'FrontPage', str undefined, global os = <module 'os' from 'c:\python\lib\os.pyc'>, os.path = <module 'ntpath' from 'c:\python\lib\ntpath.pyc'>, os.path.getmtime = <function getmtime at 0x00616A70>, page_filename = r'data\text\FrontPage'
OSError: [Errno 13] Permission denied
__doc__ = 'OS system call failed.'
__getitem__ = <bound method OSError.__getitem__ of <exceptions.OSError instance at 0x00895FD0>>
__init__ = <bound method OSError.__init__ of <exceptions.OSError instance at 0x00895FD0>>
__module__ = 'exceptions'
__str__ = <bound method OSError.__str__ of <exceptions.OSError instance at 0x00895FD0>>
args = (13, 'Permission denied')
errno = 13
filename = None
strerror = 'Permission denied'
Example
Add URL that show the bug, screenshot or test wiki markup that fail...
Details
MoinMoin Version |
|
Discussion
This is maybe also an effect of the broken rename on win32 platform - see also the tracker entry on sourceforge. Currently nobody of moin development uses win32 for development or testing, so we made a fix for 1.2.2, but couldn't test it.
Dorian: I tried running Moin 1.2.1 on Windows Server 2003 and encountered the same problem. The file rename was failing. I wrote a test python CGI to rename a file and simulated the problem. In my case the user running the IIS process didnt have permissions to the directory where the data files were located. I opened the Moin directory up to everyone and it go past this.
Plan
- Priority:
- Assigned to: Nobody
- Will be fixed in release: 1.2.2
