Page MenuHomePhabricator

DiscussionTools does not show a "Reply" button in MW1.41.0 on 32bit
Open, LowPublicBUG REPORT

Description

See: https://www.mediawiki.org/wiki/Topic:Y0qquxcstgu05sk7

After update from 1.39.x or 1.40.x to 1.41.0, and even in a fresh installation of 1.41.0, Discussiontools shows the "Start a discussion" on an empty talk page, but as soon as the talk page exists, and also for previously existing talk pages, is does not show the "Reply" button at all. This makes DiscussionTools unusably broken.

Event Timeline

Step by step:

  • download MediaWiki 1.41.0 and unpack it in the Documentroot of an empty webserver
  • setup empty MariaDB
  • run the Mediawiki installation, leaving as much as possible on default, except: Wiki name, database password, user name, user passwort, enable Linter, enable Visual Editor, enable DiscussionTools
  • notice that it complains that no default skin is selected, so choose Vector
  • install the LocalSettings.php
  • notice that DiscussionTools is not enabled in the generated LocalSettings.php, so enable it
  • run update.php or not
  • verify described behaviour

What perhaps should be said: My story runs on a 32 bit Linux, and the MW installer says php uses 32 bit integers, which is not recommended. Any comment on that before a restart the whole testing on a 64 bit system?

Looking at the logs you posted in the MW.org thread, I note a few more things of interest:

  • Your wiki is in German. This is unlikely to be a problem, but worth pointing out.
  • Your wiki does not use short URLs (canonical URLs use format like "index.php?title=..."). This is not a very well-supported configuration for DiscussionTools, there have been bugs like T261711 in the past. Try setting $wgUsePathInfo=true to use URLs like "index.php/...".
  • Your wiki is installed directly at the root of the domain (i.e. with $wgScriptPath = ''). This is not a very well-supported configuration for all of MediaWiki, and in the DiscussionTools area there has been a recent bug about it: T358321. This one actually looks like it is new in 1.41 – can you try applying the patch from there: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/DiscussionTools/+/1006097/3/includes/CommentUtils.php, then purge affected pages, and see if that fixes it?

The problems happens even with a fresh default 1.41.0 installation on an empty database, so the German language isn't the factor because default is en-gb, and the same for short URLs.

I just reproduced it from a "/wiki" subdirectory, and the problem still occurs.

The mentioned patch doesn't apply to 1.41.0 without error.

I can confirm that in a 64bit environment the problem does not occur.

Can you advise a workaround to make this work again also on a 32 bit system? (Or how to downgrade to 1.40?)

Aklapper renamed this task from Discussiontools broken in MW1.41.0 to DiscussionTools does not show a "Reply" button in MW1.41.0 on 32bit.Mar 28 2024, 3:36 PM
Esanders moved this task from Blocker to Not a blocker on the MW-1.41-release board.

I don't think we've officially made a decision on dropping support for 32-bit systems, but there are list of known issues with running one: https://www.mediawiki.org/wiki/Manual:32-bit . These days 32-bit hardware is increasingly rare, so I can't see this being prioritised.

The list in Manual:32-bit consists of four entries, three of which are relevant for very large sites only, i.e. not relevant for nearly all sites, and one issue similar to this one.

For small sites there is no reason to change architecture every decade just because. If you are not affected by the unavoidable limits, like the memory per process, 32 bit systems are still fine, and there is plenty of time until 2038.

The avoidable limits should be avoided as long as possible, not least to not let MediaWiki be the first software which breaks an architecture.

The fourth one is actually something that’s quite possible to cause issues in DiscussionTools as well: DT doesn’t work with very old timestamps (T350633), and an integer overflow can turn your seemingly current timestamps into very old ones.