I built geth from a fairly new release 1.8.12, when running on testnet (ropsten) it is executing contracts, however when running on the real net it is not, any idea why this is happening? I am using fastsync and not mining - I did start miner but that does not make any difference.
Edit:August 5th 15:14 PDT Did more debugging and here's where I am at:
In downloader.processFastSyncContent(), the downloader will keep trying to get blocks, and process those after pivot point, in importBlockResults() those blocks after pivot point will be processed and the contracts inside them will be executing. My geth is never passing the pivot point on main net, the afterP list of blocks is always empty. Not sure why tho, my eth.syncing shows: {currentBlock: 6094815, highestBlock: 6094940, knownStates: 84201854, pulledStates: 84159136, startingBlock: 6094466 }
On ropsten testnet my evm almost starts evaluating contracts immediately when it is syncing. Now I'm thinking maybe the testnet has something different from the main net that triggers this behavior?