Description

Pages are only partially handled case-sensitive. Editing them can result in a mess and potentially loss of data.

This is related to bug https://moinmo.in/MoinMoinBugs/RenamepageCasesensitive, but I don't want to rename the page.

This is related to feature https://moinmo.in/FeatureRequests/CaseInsensitivePageNames, but I don't want pages to be case insensitive, I just want the case sensitive ones to work correctly.

Steps to reproduce

  1. Type an URL of a non-existing page with lower case letters only, e.g. https://moinmo.in/lowercasebug

  2. When prompted to create the page, do so, enter some data ("sample data") and save the page.
  3. Open the original URL again to check if your data is displayed (URL without #preview)
  4. Type the URL with different casing, e.g. https://moinmo.in/lowercaseBUG

  5. Note that the page content of the lower cased page is displayed
  6. Edit the upper case page, enter some additional data, e.g. "changed", save the page.
  7. Open the upper case URL again to check the data (URL without #preview)
  8. Open the lower case URL again. Note that the changed data is displayed.
  9. Edit the lower case page. => Bug: the editor only shows the original text, not the changed text ("changed" is missing)

  10. Change the page, enter "yet another change", save it.
  11. Go to the upper case page. Note that the "yet another change" is displayed.
  12. Edit the page. Note that you're editing the "changed" version.

In case of minor edits, the editor might not recognize that he is editing a different page than expected. I didn't recognize it too, until I added a headline.

Example

Above steps should make it possible to reproduce.

Component selection

Details

I'm a beginner and didn't change much in the config, except ~5 things mentioned on the LanguageSetup page.

MoinMoin Version

1.9.8

OS and Version

Windows 7 SP 1 x64

Browser

Firefox 37.0.1

Python Version

2.7 (C:\Python27\)

Server Setup

wikiconfig.py: DesktopEdition = True

Server Details

Server and client on same machine

File system

NTFS

Language you are using the wiki in (set in the browser/UserPreferences)

wikiconfig.py: language_default = 'en'

On hard disk, I can only find one directory with all lower case letters, lowercasebug. The file edit-log contains this:

1429110755697651        00000001        SAVENEW lowercasebug    <IP>    <PC>    1423575656.53.22771             
1429110943201251        00000002        SAVE    lowercaseBUG    <IP>    <PC>    1423575656.53.22771             
1429113792669495        00000003        SAVE    lowercasebug    <IP>    <PC>    1423575656.53.22771             
1429113985814333        00000004        SAVE    lowercasebug    <IP>    <PC>    1423575656.53.22771             
1429166672534679        00000005        SAVE    lowercaseBUG    <IP>    <PC>    1423575656.53.22771             
1429166682861879        00000006        SAVE    lowercasebug    <IP>    <PC>    1423575656.53.22771             

So, from file system point of view, everything seems to be ok. I also noticed today, that after a restart of my PC (and therefore a restart of my Moinmoin server), editing both pages showed the same content. Therefore I think this is a server-internal caching problem (e.g. caching in a hashmap which is case sensitive).

Workaround

Use a OS/FS that treats files/directories strictly case-sensitive.

Discussion

There is no special code in moin to support case-insensitive filesystems. It really expects "foo" and "FOO" to be different things.

Is there a way to turn caching off in moinmoin? Which file system for Windows which is case-sensitive so that I can apply the workaround?

Plan


CategoryMoinMoinBug

MoinMoin: MoinMoinBugs/CaseSensitivePageEditing (last edited 2015-04-21 09:32:26 by 178)