Wrong A/B test recipient assignment when reaching 2^31 recipients overall
When assigning recipients from mailing A to mailing B and C when submitting an A/B mailing, a temporary table is used to hold the recipient ids. The column type used to receive the ids is a signed integer, while the recipient ids in civicrm_mailing_recipients
are unsigned integers.
Therefore, once the number of overall recipients reaches 231, there is a mismatch when joining on ids in those two tables. Because of that, no recipient is assigned to mailing B or C, and mailing A is sent to the whole target recipients set.
This happens in CRM_Mailing_BAO_Recipients::updateRandomRecipients
.
I will submit a patch.