I never have dishwasher odors, but I use Cascade industrial powder with phosphates only available as a chicken fryer cleaner.
Same as the original old school dish washing formula, just not for retail sale anymore.
Phosphates are supposed to fuck up something or other, but they sure clean dishes.
Get get a case of them on sale from a restaurant supply company for $50-$60, last you a year.
FTW