A patch for this bug from Sam has been committed to CVS: https://lists.webarch.co.uk/pipermail/mkdoc-commit/2006-June/001121.html
And regarding the creation of corrupted documents he said:
I never encountered the bug where cross-linked documents can't be edited, but I think I see how it could happen. I think it's likely that documents in this state will need to be fixed, either by hand or by a script. Depending on how many there are it might be easier to delete and recreate them.
This patch does seem to resolve the problem of links pointing to other sites but on one test server there is still the document corruption problem…
This bug was first reported by Jamie in Feb 2006: http://www.burngreave.net/pipermail/bndfc-web-tech/2006-February/000284.html
Bruno has since confirmed that it also happens on another server.
The symptoms are that sometime internal links are pointed to other sites on the server — the domain name used is the wrong one.
The only work around to this bug at the moment is to only have one MKDoc instance per Apache / mod_perl instance.
To reproduce this bug all you need is two sites on one server both with a document at, for example, /news/ and if you then create a new document, say /test/ on both sites and add a link component to both /test/ pages pointing at /news/ then one of the sites will end up linking to the other.
In addition is seem that there is another bug that prevents pages that have their links mixed up from being edited, this is the error in the apache logs:
SOFTWARE_ERROR $VAR1 = { 'SCRIPT_NAME' => '', 'MKD__CACHE_DIR' => '/usr/local/mkdoc-sites/linktest.webarchitects.co.uk/cache', 'PATH_INFO' => '/test/', 'REQUEST_METHOD' => 'GET', 'HTTP_ACCEPT' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/ png,*/*;q=0.5', 'SCRIPT_FILENAME' => '/usr/local/mkdoc-1-6/cgi/mkdoc.cgi', 'SERVER_SOFTWARE' => 'Apache/1.3.34 (Unix) mod_perl/1.29', 'MKD__PLUGIN_LIST' => '/usr/local/mkdoc-1-6/conf/users.conf', 'AUTH_TYPE' => 'Basic', 'QUERY_STRING' => '', 'REMOTE_PORT' => '51609', 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.13) Gecko/20060501 Fedora/1.7.13-1.1.fc5', 'SERVER_SIGNATURE' => '<ADDRESS>Apache/1.3.34 Server at users.linktest.webarchitects.co.uk Port 8080</ADDRESS>', 'HTTP_CACHE_CONTROL' => 'max-age=0', 'HTTP_ACCEPT_LANGUAGE' => 'en', 'SITE_DIR' => '/usr/local/mkdoc-sites/linktest.webarchitects.co.uk', 'PERL5LIB' => '/usr/local/mkdoc-1-6', 'PATH' => '/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/mkdoc-1-6/tools:/usr/local/mkdoc-1-6/tools/cron', 'GATEWAY_INTERFACE' => 'CGI-Perl/1.1', 'MKDOC_DIR' => '/usr/local/mkdoc-1-6', 'DOCUMENT_ROOT' => '/usr/local/apache/htdocs', 'PATH_TRANSLATED' => '/usr/local/mkdoc-1-6/cgi/mkdoc.cgi/test/', 'SERVER_NAME' => 'users.linktest.webarchitects.co.uk', 'SERVER_ADMIN' => 'chris@webarchitects.co.uk', 'PERL_SEND_HEADER' => 'On', 'HTTP_ACCEPT_ENCODING' => 'gzip,deflate', 'HTTP_X_FORWARDED_SERVER' => 'www.linktest.webarchitects.co.uk', 'USER_DOMAIN' => 'http://users.linktest.webarchitects.co.uk/', 'HTTP_ACCEPT_CHARSET' => 'UTF-8,*', 'REMOTE_USER' => 'chris', 'HTTP_MAX_FORWARDS' => '10', 'SERVER_PORT' => '8080', 'PUBLIC_DOMAIN' => 'http://www.linktest.webarchitects.co.uk/', 'REMOTE_ADDR' => '192.168.1.12', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'HTTP_X_FORWARDED_HOST' => 'users.linktest.webarchitects.co.uk', 'MKD__TIDY' => '/usr/local/mkdoc-1-6/tools/whitelist.sh', 'HTTP_X_FORWARDED_FOR' => '192.168.1.2', 'REQUEST_URI' => '/test/', 'SERVER_ADDR' => '192.168.1.12', 'HTTP_HOST' => 'users.linktest.webarchitects.co.uk:8080', 'MOD_PERL' => 'mod_perl/1.29' }; [PETAL ERROR] Can't use string ("HASH(0xaffd610)") as a HASH ref while "strict refs" in use at ../MKDoc/Util/LinkParser.pm line 362. . Debug info written in /tmp/petal_debug.12691.1149518491.kdrgqckozc at /usr/lib/perl5/site_perl/5.8.8/Petal.pm line 473.
And the debug message are attached: