Page MenuHomePhabricator

Large number of 'maxchars' errors in DiscussionTools
Closed, ResolvedPublic

Description

I was looking at DiscussionTools error logging for some other reason, and I noticed that there's a large number of 'maxchars' errors, starting on 2021-11-05 (87 in total).

This probably comes from rEDTO6022982eb93c: Generate form tokens in the client to prevent double posting, are we generating client-side tokens larger than the server-side code allows?

Query for https://superset.wikimedia.org/superset/sqllab/:

select year, month, day, count_if(event.save_failure_message='maxchars') as count
from editattemptstep
where event.integration='discussiontools' and event.action='saveFailure'
and year=2021 and month>=10
group by year, month, day
order by year, month, day

Event Timeline

Change 739664 had a related patch set uploaded (by Bartosz Dziewoński; author: Bartosz Dziewoński):

[mediawiki/extensions/DiscussionTools@master] Ensure form tokens are not longer than allowed

https://gerrit.wikimedia.org/r/739664

We generate them using code like this:

Math.random().toString( 36 ).slice( 2 );

After running Math.random() a few million times, I found that for some very small values, Internet Explorer 11 will output more digits than other browsers.

For example:

(1.053618714497162e-8).toString( 36 ).slice( 2 );

…is 00000mxnqpk0spr (15 chars) on Firefox and Chrome, but 00000mxnqpk0spqtg (17 chars) on Internet Explorer 11.

Change 739936 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/DiscussionTools@master] Limit form token length

https://gerrit.wikimedia.org/r/739936

Change 739936 abandoned by Esanders:

[mediawiki/extensions/DiscussionTools@master] Limit form token length

Reason:

https://gerrit.wikimedia.org/r/739936

Change 739664 merged by jenkins-bot:

[mediawiki/extensions/DiscussionTools@master] Ensure form tokens are not longer than allowed

https://gerrit.wikimedia.org/r/739664

ppelberg claimed this task.