After many trials to subtract a tube from another object without creating leaky surfaces I have found out that the "cutting" object (e.g. a tube) should be thickened
beforehand to make the boolean operation work correctly. If for instance the tube has a diameter of 5 mm, then thicken this object innwards by 2.5 mm to fill it completely. Hope this helps.