We have the slave build machines polling Mercurial repositories, using the Mercurial plugin, to trigger builds.
During the Jenkins job, we create and push a tag changeset as part of the build process.
This tag changeset is detected by polling and causing an infinite loop of builds.
I've looked into other options, I notice the notice away from polling to be more push activated, which sounds good, but it seems this still relies on polling to detect what has changed, so it seems this would still be a problem.
The other thing that sounded like it may help was "modules" in the Mercurial plugin, but this is a huge change to move lots of repositories to put everything except the hgtags file into a sub folder and then specify that sub folder as a module.
If tag changesets were ignorred by polling, similar to a change that was made to ignore merge changesets, all would be good in the world