brion(a)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)