deallocate resets state to pending_allocation