cherry pick commit #fd4d434663a08b00b354e3d7fe6862db91b83900
cherry pick commit #c432997c77dcae30d3ffd81d68af1535805f5dff