Page MenuHomePhabricator

Message transformation leaves strip markers
Closed, ResolvedPublic

Description

screen capture about Edittools

My own wiki (http://grondin.tuxfamily.org) doesn't display correctly two pages about parsers :

  1. Special:Version displays the followings message

errorWarning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Premature end of data in tag root line 1 in Entity, line: 71 in /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/Parser.php on line 2967
Erreur interne

Parser::preprocessToDom generated invalid XML

Backtrace:

#0 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/Parser.php(3021): Parser->preprocessToDom('NOTOC?This ...')
#1 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/Parser.php(915): Parser->replaceVariables('NOTOC?This ...')
#2 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/Parser.php(295): Parser->internalParse('NOTOC?This ...')
#3 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/OutputPage.php(361): Parser->parse('NOTOC?This ...', Object(Title), Object(ParserOptions), true, true, NULL)
#4 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/OutputPage.php(338): OutputPage->addWikiTextTitle('NOTOC?This ...', Object(Title), true)
#5 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/SpecialVersion.php(34): OutputPage->addWikiText('NOTOC?This ...')
#6 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/SpecialVersion.php(17): SpecialVersion->execute()
#7 [internal function]: wfSpecialVersion(NULL, Object(SpecialPage))
#8 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/SpecialPage.php(654): call_user_func('wfSpecialVersio...', NULL, Object(SpecialPage))
#9 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/SpecialPage.php(460): SpecialPage->execute(NULL)
#10 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/Wiki.php(193): SpecialPage::executePath(Object(Title))
#11 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/includes/Wiki.php(45): MediaWiki->initializeSpecialCases(Object(Title), Object(OutputPage), Object(WebRequest))
#12 /data/web/6c/03/7c/grondin.tuxfamily.org/htdocs/index.php(89): MediaWiki->initialize(Object(Title), Object(OutputPage), Object(User), Object(WebRequest))
#13 {main}

  1. The charinsert tag doesn't display correctly caracters in Mediawiki:Edittools.

Outils d'édition: UNIQ502424a61cae77e5-charinsert-00000001-QINU

UNIQ502424a61cae77e5-charinsert-00000002-QINU · UNIQ502424a61cae77e5-charinsert-00000003-QINU · UNIQ502424a61cae77e5-charinsert-00000004-QINU

UNIQ502424a61cae77e5-charinsert-00000005-QINU ··· UNIQ502424a61cae77e5-charinsert-00000006-QINU ··· UNIQ502424a61cae77e5-charinsert-00000007-QINU ··· UNIQ502424a61cae77e5-charinsert-00000008-QINU ··· UNIQ502424a61cae77e5-charinsert-00000009-QINU ··· UNIQ502424a61cae77e5-charinsert-0000000A-QINU ··· UNIQ502424a61cae77e5-charinsert-0000000B-QINU ··· UNIQ502424a61cae77e5-charinsert-0000000C-QINU ··· UNIQ502424a61cae77e5-charinsert-0000000D-QINU ··· UNIQ502424a61cae77e5-charinsert-0000000E-QINU ··· UNIQ502424a61cae77e5-charinsert-0000000F-QINU ··· UNIQ502424a61cae77e5-charinsert-00000010-QINU ··· UNIQ502424a61cae77e5-charinsert-00000011-QINU ... UNIQ502424a61cae77e5-charinsert-00000012-QINU ... UNIQ502424a61cae77e5-charinsert-00000013-QINU ··· UNIQ502424a61cae77e5-charinsert-00000014-QINU

Alphabet : UNIQ502424a61cae77e5-charinsert-00000015-QINU - UNIQ502424a61cae77e5-charinsert-00000016-QINU

see screen capture

  1. Scripts in Mediawiki:Common.js or Mediawiki:monobook.js don't run.

Version: 1.12.x
Severity: blocker

Attached:

capture_ecran.png (531×1 px, 87 KB)

Details

Reference
bz12056

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 9:58 PM
bzimport set Reference to bz12056.

See by example my wiki Special:Version page : http://grondin.tuxfamily.org/index.php?title=Special:Version and try to edit a page.

Please give a list of the extensions you have enabled.

(In reply to comment #2)

Please give a list of the extensions you have enabled.

This is the list from my LocalSettings.php

$path = array( $IP, "$IP/includes", "$IP/languages" );
set_include_path( implode( PATH_SEPARATOR, $path ) . PATH_SEPARATOR . get_include_path() );

require_once( "includes/DefaultSettings.php" );

Extension NUKE à inclure juste après DefaultSettings.php et avant tout autre require_oncee

require_once('extensions/Nuke/SpecialNuke.php');

  1. For a detailed description of the following switches see
  2. http://meta.wikimedia.org/Enotif and http://meta.wikimedia.org/Eauthent
  3. There are many more options for fine tuning available see
  4. /includes/DefaultSettings.php
  5. UPO means: this is also a user preference option

$wgEnotifUserTalk = true; # UPO
$wgEnotifWatchlist = true; # UPO
$wgEmailAuthentication = true;

Schemas for Postgres

$wgDBmwschema = "mediawiki";
$wgDBts2schema = "public";

Experimental charset support for MySQL 4.1/5.0.

$wgDBmysql5 = false;

Shared memory settings

$wgMainCacheType = CACHE_NONE;
$wgMemCachedServers = array();

  1. To enable image uploads, make sure the 'images' directory
  2. is writable, then set this to true:

$wgEnableUploads = true;
$wgUseImageResize = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";
$wgFetchCommonsDescriptions = true;
$wgCategoryMagicGallery = true;

  1. If you want to use image uploads under safe mode,
  2. create the directories images/archive, images/thumb and
  3. images/temp, and make them all writable. Then uncomment
  4. this, if it's not already uncommented:

$wgHashedUploadDirectory = true;

  1. If you have the appropriate support software installed
  2. you can enable inline LaTeX equations:

$wgUseTeX = false;

$wgLocalInterwiki = $wgSitename;

$wgLanguageCode = "fr";

  1. Default skin: you can change the default skin. Use the internal symbolic
  2. names, ie 'standard', 'nostalgia', 'cologneblue', 'monobook':

$wgDefaultSkin = 'monobook';

  1. For attaching licensing metadata to pages, and displaying an
  2. appropriate copyright notice / icon. GNU Free Documentation
  3. License and Creative Commons licenses are supported so far.

$wgEnableCreativeCommonsRdf = true;
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "http://www.gnu.org/copyleft/fdl.html";
$wgRightsText = "GNU Free Documentation License 1.2";
$wgRightsIcon = "${wgScriptPath}/skins/common/images/gnu-fdl.png";

$wgRightsCode = "gfdl"; # Not yet used

$wgDiff3 = "";

  1. When you make changes to this configuration file, this will make
  2. sure that cached pages are cleared.

$configdate = gmdate( 'YmdHis', @filemtime( FILE ) );
$wgCacheEpoch = max( $wgCacheEpoch, $configdate );

#Activation de la fonctionnalé transwiki, faut bien tenter !
#$wgImportTargetNamespace = array (100, 101, 102, 103, 104, 105);
$wgTmpDirectory = "{$wgUploadDirectory}/tmp";
$wgImportSources = array(
'w',
'wikt',
's',
'b',
'q',
'v',
'n');

Extention charinsert pour Mediawiki

require_once("extensions/CharInsert/CharInsert.php");

Extension DynamicLinkPage2

require_once("extensions/DynamicPageList2/DynamicPageList2.php");

Personnalisation de mon wiki

$wgSharedUploadDBname = true;
$wgAllowCopyUploads = true;
$wgUploadNavigationUrl = 'http://commons.wikimedia.org/wiki/Special:Upload';
$wgBlockAllowsUTEdit = true; # Blocks allow users to edit their own user talk page
$wgGroupPermissions['sysop']['deleterevision'] = true;
$wgGroupPermissions['oversight']['deleterevision'] = true;
$wgGroupPermissions['bureaucrat']['hiderevision'] = true;
$wgGroupPermissions['steward']['hiderevision'] = true;
$wgGroupPermissions['oversight']['hiderevision'] = true;
$wgGroupPermissions['developer']['siteadmin'] = true;
$wgGroupPermissions['oversight']['oversight'] = true;
$wgRestrictionLevels = array( '', 'autoconfirmed', 'sysop', 'interwiki', 'bureaucrat', 'developer', 'oversight', 'steward' );

$wgEnotifWatchlist = true; # UPO
$wgEnotifUserTalk = true; # UPO
$wgEnotifRevealEditorAddress = true; # UPO; reply-to address may be filled with page editor's address (if user allowed this in the preferences)
$wgRCShowWatchingUsers = true; # UPO
$wgPageShowWatchingUsers = true;
$wgSVGMaxSize = 102400;
$wgUseCopyrightUpload = true;
$wgExportAllowListContributors = true ;
$wgAllowUserJs = true;
$wgAllowUserCss = true;
$wgBlockAllowsUTEdit=true;

$wgRateLimitsExcludedGroups = array( 'sysop', 'bureaucrat', 'developer', 'steward', 'oversight' );
$wgEnableScaryTranscluding = true;
$wgAllowExternalImages = true;
$wgUseXMLparser = true;
$wgUseImageResize = true;
$wgLocalInterwiki = 'gdn';

Extension Translate

include("$IP/extensions/Translate/Translate.php");
$wgTranslateEC = array_keys($wgTranslateAC); // All modules
$wgTranslateFuzzyBotName = 'FuzzyBot';
$wgTranslateTryLoad = true;
$wgGroupPermissions['Translators']['translate'] = true;
$wgGroupPermissions['steward']['translate'] = true;
$wgGroupPermissions['bureaucrat']['translate'] = true;

#Spécial Interwiki
require_once("extensions/SpecialInterwiki.php");

$wgGroupPermissions['*']['interwiki'] = false;
$wgGroupPermissions['interwiki']['interwiki'] = true;

#Renommage utilisateurs
require_once("extensions/Renameuser/SpecialRenameuser.php");
$wgGroupPermissions['*']['renameuser'] = false;
$wgGroupPermissions['bureaucrat']['renameuser'] = true;
$wgGroupPermissions['steward']['renameuser'] = true;

CheckUser for Special:CheckUser
require_once("$IP/extensions/CheckUser/CheckUser.php");
$wgGroupPermissions['checkuser']['checkuser'] = true;
$wgCheckUserLog = true;

#fonction <ref>
require_once( "$IP/extensions/Cite/Cite.php" );
require_once( "$IP/extensions/Cite/SpecialCite.php" );

#fonction EditCount
require_once( "$IP/extensions/Editcount/SpecialEditcount.php" );
#fonction CountEdit
require_once( 'extensions/CountEdit/CountEdits.php');

#Fonction InputBox
require_once("extensions/inputbox/inputbox.php");
require_once("extensions/create.php");

for SubPageList extension

require_once("extensions/SubPageList2.php");

Parseur fonctions

require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );

#Fonction DeleteUser
require_once("extensions/Deleteuser/SpecialDeleteuser.php");

#Fonction NewUserLog
require_once("$IP/extensions/Newuserlog/Newuserlog.php");

#Fonction Poem
require_once("$IP/extensions/Poem/Poem.php");

#Fonction Patrouilleur;
require_once( 'extensions/Patroller/Patroller.php' );

#BadImageList
require_once( 'extensions/BadImage/BadImage.php' );
// $wgGroupPermissions['oversight']['badimages'] = true;

#Permission steward
require_once( 'extensions/Makesysop/SpecialMakesysop.php' );
$wgGroupPermissions['steward' ]['makesysop' ] = true;
$wgGroupPermissions['steward' ]['userrights'] = true;
$wgGroupPermissions['bureaucrat']['makesysop' ] = true;
$wgGroupPermissions['bureaucrat']['userrights'] = false;

#Deleted contributions
require_once( 'extensions/DeletedContributions/SpecialDeletedContributions.php' );

#Oversight
require_once( 'extensions/Oversight/HideRevision.php' );

#AskSql
require_once( 'extensions/Asksql/Asksql.php' );
$wgGroupPermissions['*']['asksql'] = false;
$wgGroupPermissions['developer']['asksql'] = true;

#Interdiction de création, d'édition ou de modification de certains titre
require_once("$IP/extensions/BlockTitles/BlockTitles.php");

#Fonction Makebot pour Bureaucrates
require_once('extensions/Makebot/Makebot.php');
$wgGroupPermissions['steward']['makebot' ] = true;

#Fonction CrudeProtextion
require_once('extensions/CrudeProtection/CrudeProtection.php');

#Email nouvels utilisateurs
require_once('extensions/NewUserNotif/NewUserNotif.php');

#Liste noire des utilisateurs
require_once('extensions/UsernameBlacklist/UsernameBlacklist.php');

#Liste des pages les plus récentes
require_once('extensions/NewestPages/NewestPages.php');

#Category Tree
$wgUseAjax = true;
require_once( 'extensions/CategoryTree/CategoryTree.php' );

Messages de déboyages

$wgShowExceptionDetails = true;

#Contributions editcount
require_once('extensions/Contributionseditcount/Contributionseditcount.php' );

Spam Black List

require_once( "$IP/extensions/SpamBlacklist/SpamBlacklist.php" );

ConfirmEdit : un filtre anti-spam pour éviter qu'un bot nous casse les pieds

require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );

ConfirmAccount : filtre pour les nouveaux comptes. éviter des créations abusives.

require_once( "$IP/extensions/ConfirmAccount/SpecialConfirmAccount.php");
$wgGroupPermissions['bureaucrat']['confirmaccount'] = true;
$wgGroupPermissions['steward']['confirmaccount'] = true;
$wgGroupPermissions['developer']['confirmaccount'] = true;

Import des images libres depuis Flickfr

require_once('extensions/ImportFreeImages/ImportFreeImages.php');
$wgIFI_FlickrAPIKey = 'fab715ff5545e7f5a034afe0fd0724fd';

StubManager

require 'extensions/StubManager/StubManager.php';

Secure HTML

require 'extensions/SecureHTML/SecureHTML.php';

About the first problem : Special:version It would seem that the problem provides from SecureHTML extension

I've tried to desactivate it on my own and Special:Version it's displaying correctly.

About the two others one, the problems are the same

The real problem consists by all breaking tag

I seen after éditing a page, all tags are broken (<charinsert> <inputbox> <quiz>) etc.

I think that the problem is from Parserfunction of mediawiki.

The problem is the revision of Parser.php between version 27629 and 27667.

http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/Parser.php?r1=27629&r2=27667&pathrev=27707.

I've tested my wiki and the newest versions of Parser.php since 27667 (include) make broken tag, and block Special:Version.

I think that you ought to revert these revision to 27629. I did that and all runs perfectly.

Changed title to reflect the updated report.

Should be fixed in r27871. Please confirm.

(In reply to comment #8)

Should be fixed in r27871. Please confirm.

<charinsert></charinsert> runs now.

But, the new release of Parser.php makes still breaking tags as <Quiz></Quiz> or <DPL></DPL>.

So I'can't see the [[Special:Version]] page, too. this one has the following message :

Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Premature end of data in tag root line 1 in Entity, line: 88 in /var/www/wiki/includes/Parser.php on line 2972
Erreur interne

Parser::preprocessToDom generated invalid XML

Backtrace:

#0 /var/www/wiki/includes/Parser.php(3026): Parser->preprocessToDom('NOTOC?This ...')
#1 /var/www/wiki/includes/Parser.php(920): Parser->replaceVariables('NOTOC?This ...')
#2 /var/www/wiki/includes/Parser.php(300): Parser->internalParse('NOTOC?This ...')
#3 /var/www/wiki/includes/OutputPage.php(361): Parser->parse('NOTOC?This ...', Object(Title), Object(ParserOptions), true, true, NULL)
#4 /var/www/wiki/includes/OutputPage.php(338): OutputPage->addWikiTextTitle('NOTOC?This ...', Object(Title), true)
#5 /var/www/wiki/includes/SpecialVersion.php(34): OutputPage->addWikiText('NOTOC?This ...')
#6 /var/www/wiki/includes/SpecialVersion.php(17): SpecialVersion->execute()
#7 [internal function]: wfSpecialVersion(NULL, Object(SpecialPage))
#8 /var/www/wiki/includes/SpecialPage.php(660): call_user_func('wfSpecialVersio...', NULL, Object(SpecialPage))
#9 /var/www/wiki/includes/SpecialPage.php(461): SpecialPage->execute(NULL)
#10 /var/www/wiki/includes/Wiki.php(193): SpecialPage::executePath(Object(Title))
#11 /var/www/wiki/includes/Wiki.php(45): MediaWiki->initializeSpecialCases(Object(Title), Object(OutputPage), Object(WebRequest))
#12 /var/www/wiki/index.php(89): MediaWiki->initialize(Object(Title), Object(OutputPage), Object(User), Object(WebRequest))
#13 {main}

(In reply to comment #8)

Should be fixed in r27871. Please confirm.

<charinsert></charinsert> runs now.

But, the new release of Parser.php makes still breaking tags as <Quiz></Quiz> or <DPL></DPL>.

So I'can't see the [[Special:Version]] page, too. this one has the following message :

Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Premature end of data in tag root line 1 in Entity, line: 88 in /var/www/wiki/includes/Parser.php on line 2972
Erreur interne

Parser::preprocessToDom generated invalid XML

Backtrace:

#0 /var/www/wiki/includes/Parser.php(3026): Parser->preprocessToDom('NOTOC?This ...')
#1 /var/www/wiki/includes/Parser.php(920): Parser->replaceVariables('NOTOC?This ...')
#2 /var/www/wiki/includes/Parser.php(300): Parser->internalParse('NOTOC?This ...')
#3 /var/www/wiki/includes/OutputPage.php(361): Parser->parse('NOTOC?This ...', Object(Title), Object(ParserOptions), true, true, NULL)
#4 /var/www/wiki/includes/OutputPage.php(338): OutputPage->addWikiTextTitle('NOTOC?This ...', Object(Title), true)
#5 /var/www/wiki/includes/SpecialVersion.php(34): OutputPage->addWikiText('NOTOC?This ...')
#6 /var/www/wiki/includes/SpecialVersion.php(17): SpecialVersion->execute()
#7 [internal function]: wfSpecialVersion(NULL, Object(SpecialPage))
#8 /var/www/wiki/includes/SpecialPage.php(660): call_user_func('wfSpecialVersio...', NULL, Object(SpecialPage))
#9 /var/www/wiki/includes/SpecialPage.php(461): SpecialPage->execute(NULL)
#10 /var/www/wiki/includes/Wiki.php(193): SpecialPage::executePath(Object(Title))
#11 /var/www/wiki/includes/Wiki.php(45): MediaWiki->initializeSpecialCases(Object(Title), Object(OutputPage), Object(WebRequest))
#12 /var/www/wiki/index.php(89): MediaWiki->initialize(Object(Title), Object(OutputPage), Object(User), Object(WebRequest))
#13 {main}

(In reply to comment #10)

(In reply to comment #8)

Should be fixed in r27871. Please confirm.

<charinsert></charinsert> runs now.

But, the new release of Parser.php makes still breaking tags as <Quiz></Quiz>
or <DPL></DPL>.

It's even worse. <extensiontag>Something</extension> tag doesn't only *render* as UNIQ-...-QINU crap, it's actually *replaced* by a UNIQ token *in the revision itself*. Something in there is trying to render those tags pre-save, I think.

Setting severity to blocker as we can't possibly release a version that breaks almost all extension tags.

Can't reproduce. Can someone narrow this down for me a little bit please? DPL1 and Quiz are working fine for me with trivial input text, and Special:Version is working with a decent list of extensions.

Maybe it's PHP version related, can I have your version numbers please?

(In reply to comment #12)

Maybe it's PHP version related, can I have your version numbers please?

Here you go:

  • MediaWiki: 1.12alpha (r27946)
  • PHP: 5.2.4 (cgi-fcgi)
  • MySQL: 5.0.45-community-nt
  • [[mw:Extension:Redircite]], latest SVN version

Edit a page, add "<redircite>Something</redircite>" (without the quotes) and save. This renders as UNIQ-...-QINU crap. Edit the page again, and it turns out the <redircite> tags were actually *replaced* by the UNIQ-...-QINU stuff. [[mw:Extension:ToggleDisplay]] and even [[mw:Extension:Cite]] are affected as well.

On a clean 1.11 install, everything works just fine.

I don't have any Special:Version problems, however.

When I try to reproduce following directions in comment #13 with redircite, I do not have any problem.

The page renders and saves apparently fine.

  • MediaWiki: 1.12alpha (r27951)
  • PHP: 5.2.4RC2 (cgi-fcgi)
  • MySQL: 5.0.27-standard

(In reply to comment #14)

The page renders and saves apparently fine.

Weird. For me, even x<nowiki>y</nowiki>z isn't rendering correctly.

  • PHP: 5.2.4RC2 (cgi-fcgi)

Could you upgrade to 5.2.4?

dotkorg wrote:

(In reply to comment #15)

Weird. For me, even x<nowiki>y</nowiki>z isn't rendering correctly.

Same problem on Commons:
http://commons.wikimedia.org/w/index.php?title=Template_talk:AdminWelcome/en&diff=8765512&oldid=8763902

The issue I described in the bug title, which is the one Bertrand Grodin initially reported, is fixed. The issue presently being discussed is unrelated. I've created a new bug (Bug 12154) for the problem of erratic total failure. I'm marking this bug as closed.

See bug 12154.