Problem: when using drush pm-update, it will check all modules for available updates then list all the modules that needs to be updated but after it completes a cycle it starts again.
This issue is posted on https://drupal.org/node/1352102 and the workaround is to delete all the row that have update_fetch_tasks on queue table in your database.
The workaround SQL query are:
DELETE FROM `YOUR_DATABASE_NAME`.`queue` WHERE `queue`.`name` = 'update_fetch_tasks';