I've seen partial pivoting described thus: during the $k$th step of LU factorization of $\mathbf{A}$, find the remaining element of $\mathbf{A}$ in column $k$ with the greatest absolute value, and swap its row with the $k$th row.
However, I can think of one example where this strategy leads to division-by-zero: $$\mathbf{A} = \begin{bmatrix}6&3&6\\5&\frac{5}{2}&8\\3&1&4\end{bmatrix}$$This matrix has been chosen such that the greatest values in each column are already on the diagonal, so no swapping should be necessary, according to this strategy. In this example, $u_{2,2} = 0$, and computing $l_{3,2}$ will require dividing by zero.
Am I misunderstanding the concept of partial pivoting? It seems that the problem arises from trying to choose the row based on the greatest value in $\mathbf{A}$, but I think it would make more sense to choose the row that results in the greatest value in $\mathbf{U}$. I'm not sure if that's correct, or how that could be applied practically.