brion@svn.leuksman.com wrote:
Revert part of r14280 which broke history paging on 32-bit systems.
[snip]
list( $limit, $offset ) = wfCheckLimits( $this->defaultLimit );
$limit = $wgRequest->getInt('limit', $this->defaultLimit);$offset = $wgRequest->getText('offset');
For reference, the problem here is that the history page now uses timestamps for the offset parameter by default, making for more efficient paging through very long histories (and enabling to jump to an arbitrary point in history).
wfCheckLimits() forces the values to integers, but the 14-digit timestamp format we use is too big to fit in a 32-bit signed integer. As a result, history paging was broken on 32-bit machines.
We still have a couple dozen Pentium IV machines in service, but the majority now are 64-bit Opteron boxen, where PHP's default integer type ends up being big enough to accept the larger numbers transparently; so this problem was only intermittent for the last few days and we didn't hear about it until today.
The moral of the story is: don't forget to test history paging when you change the code that does history paging.
And if you've got a 64-bit box? Don't forget to test 32-bit too. :D
-- brion vibber (brion @ pobox.com)