В lock-free структурах: значение A меняется на B и снова на A. Поток, делающий CAS "если всё ещё A", считает что ничего не изменилось, хотя между ними могли быть другие изменения. Решение - версионирование или tag. В Go реже встречается при использовании atomic.Value и аккуратном проектировании.