Packages tend to be propagated to mirrors before the hdlists, so if you happen to catch a mirror while it's busy updating, you may well find a situation where the hdlist it has no longer reflects the packages it has. Thus the missing packages (these would be ones that had been updated twice since your rsync; the hdlist would contain version X+1, which the actual file on the mirror would be X+2) and the non-updated kernel (which had presumably only been updated once; you have 9mdk, the hdlist lists 9mdk so urpmi thinks there is no update available, even though 10mdk was actually on the mirror by that point).
And this is why somebody should start using an .!UNSAFE flag on servers example session
1 upload a file named .!UNSAFE to the server
2 start rsync
3 successfully complete rsync
4 delete .!UNSAFE
this way a script or person or whatever can check for the .!UNSAFE file and then if it is found wait for a semirandom time and restart
if this is started all the way at the top (mandrakesoft) then huge amounts of time/bandwidth can be saved.
(and yes the exact file name could be translated into whatever the native language of the server is (or just something like .!!! that just looks funny))
