A few 4 cyl petrol E46 suffered with stretching timing chains, they came in for a retro fit vacuum sensor and programming to allow a new 'chain stretch check' in diagnosis. By pressing the brake pedal hard at idle three times the test module looked at the difference between crankshaft and camshaft signals to detect any delay caused by chain wear. If it was beyond a certain point a manual wear test was then required.
It was the later diesel N47 engines that suffered the much worse problems
Six cylinder BMW's are the ones to get the four cylinder engines over the past fifteen years have suffered reliability problems.