The behavior of copydb ( or fast sync) is to sync state tree in the block of current height - 64, but it seems geth don't persist state tree in the block of current height - 64 before exist (it only persist current height, current height - 1, current height - 127) . So copydb will panic.
If I panic in copydb, I have to start geth and wait it syncing another 64 blocks and exist. Then invoke copydb again, it will work normally.