Curve modifier flips vertex locations during curve animation

I have found a problem in Blender 2.8 (blender-2.80-8aa87972cac3-linux-glibc224-x86_64) that I can’t explain. Maybe it’s a bug, but maybe I’ve just misunderstood something.

I’m using a curve modifier on a cylinder. One of the curve’s control points is hooked to an empty. If I rotate the empty along the Y axis around the cursor, the locations of the cylinder’s vertices suddenly swap when the angle of rotation and the empty’s Y coordinate change from positive to negative and vice versa at the origin. I parented another empty to one of the cylinder’s vertices, and during the animation the vertex and the empty jump from one side of the cylinder to the other.

I was intending to parent other objects to empties attached to the cylinder, but that’s not going to work if the empties jump around during the animation.

Does anyone know what causes this?

blender_curve_mod_problem

I’ve attached the .blend file if anyone wants to have a look at it.

2019-06-12_08-18-08_01.blend (143.0 KB)

After further experimentation, I have realised that this is not a bug, but inherent in Blender’s Curve modifer functionality.

Apparently rotating the control point in my animation causes Blender to rotate the cylinder 180° along the local Z axis. This may have something to do with Blender’s bezier curve ‘tilt’ value, as changing the tilt value by 180° produces the same result.

I haven’t found any way to work around this problem. It seems that the Curve modifier is unsuitable for the animation I was attempting, which is annoying because apart from this issue it does exactly what I want. Back to the not-doing-much-drawing-board.