We cannot seem to get price rules to apply to products without saving the product. I have tried various methods of resetting, reindexing, truncating tables, checking and manually running cron, but for some reason although products have some rules applied, they don't get all of the rules until the product is saved again.
I have tried adding a new attribute and then mass-updating all of the products to change the attribute, and while I see the indexers update to show them processing an equivalent number of items in their backlogs, the price never updates - it must be saved individually from the product's CMS edit page.
Looking in the
catalogrule_product_price tables I can see the rules and calculated prices being applied after saving the product.
In my investigation I found that I needed to raise certain innodb settings such as the buffer pool and data file sizes, as we appeared to be getting warnings about the pool size being too small and temp tables being full, but now those warnings appear to have ceased.
Magento 2.2.5, PHP 7.1.32