[update] Cherry-pick from upstream