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

OK

As 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


CategoryMoinMoinBugFixed

MoinMoin: MoinMoinBugs/BugPermissioning (last edited 2007-10-29 19:19:29 by localhost)