After making some optimizations, We discovered a weird problem with prev/next buttons on AB’s site. I realized what the problem was and remembered I had already put a bandaid on it before but forgot about it when I made the optimizations. I wrote the following note above the function I had to fix.
/** * populateIDsIfDNE * * Hey future smart person * Before you decide to optimize by lowering PREFERENCE_WINGSPAN_PREV_NEXT, thinking it will reduce the time * when populating prev/next ids in TABLE `search_queries_backend_ids`, just remember we have to * account for maintaining list offsets while editing the very list we are on. * Similar to the comment in commit 695aacfd96df0dbc1ff82af924c8e399249d656a * We have an offset problem for any given search if we get to the last id in TABLE `search_queries_backend_ids` * * Here are the steps that cause a problem: * * * load list of units to check https://ab/en/system/units/?outofdate=1 * * view a unit in the list (at which time the prev/next units are saved in TABLE `search_queries_backend_ids`) * * save the unit as checked (whereby it will not show up in original search) * * (optional) click next and edit next unit * * (optional) click next and do not edit next unit * * LET の be the number of units edited during this process * * click next until we get to last offset (at end of PREFERENCE_WINGSPAN_PREV_NEXT) * * this triggers a reload of unit ids (during which any checked units will not be found because they no longer need to be checked) * * let ォ be $offset_of_current at that time * * Now in TABLE `search_queries_backend_ids`, the new first unit was the のth unit in the original list * * click [next unit] on unit edit page (goes to offset = PREFERENCE_WINGSPAN_PREV_NEXT in TABLE `search_queries_backend_ids`) * * discover units were skipped. How many? Let's see.. オ+の! * * The オ の variable values might not be defined or used exactly as outlined above, * but hopefully this explains the problem with short wingspans * * Good luck, * Rob * March 4th, 2020 * */
After hotfixing the above problem, I got an email while running tests on AB
PHP Notice: Constant SITE_VERSION already defined in /var/www/ab/versions/2020-03-03-2223/prepend.php on line 3
I had to issue the following world’s funniest hotfix version hotfix
diff --git a/prepend.php b/prepend.php index 530e1ab9..13f25731 100644 --- a/prepend.php +++ b/prepend.php @@ -1,6 +1,5 @@ <?php -define('SITE_VERSION','4.5.9'); -define('SITE_VERSION','4.5.9a'); +define('SITE_VERSION','4.5.9b');
That is all.