Anyone see a pattern? 51, 59, 63, 83, 87, 95, 99, 101, 111, 117, 123, 125, 135, 143, 147 ... glGenerateTextureMipmap() Spikes!

Reaching out for the strangest puzzle with glGenerateTextureMipmap() Spikes!

When the texture height is h: 2, 4, 8, 16, 32, 64 …
glGenerateTextureMipmap() Spike shifts in y direction by exactly one pixel at the following widths:
w: 51, 59, 63, 83, 87, 95, 99, 101, 111, 117, 123, 125, 135, 143, 147 …

It only happens at odd widths, but only those in the sequence.

The Spiking pattern changes at non powers of two heights.

When the height is odd, then the spiking happens in opposite x direction, in other width sequences.

When the width and height are equal, the problem is gone, and also for powers of two, as conventionally expected.

If I can get to the pattern, I would like to compensate for it in transforms.

Are you sure your level of detail zero image is correct?
Check your glPixelStore settings.
For example RGB8 input data needs a glPixelStore unpack alignment of 1 but the default is 4 which will shift pixels in each line when using widths which are not multiple of four.