I was running geth under a user call 'ethereum' with this command:
It was up to date until today there have a quickfix on geth so I compiled the source code and try to run my geth with this command:
Somehow it said
Synchronisation failed: block downloading canceled (requested)
Then, geth started to synchronize again from beginning. I don't have any idea how it can happen even I pointed to same directory.