The expiration should be done by the gc() function on login, not while isComplete() is calling hasKey() for every chunk. Backport of ab56f694 from master