<!--
  Note: if the issue is about documentation or the website, please file it at:
  https://github.com/reactjs/reactjs.org/issues/new
-->

**Do you want to request a *feature* or report a *bug*?**

Bug

**What is the current behavior?**

See fiddle https://jsfiddle.net/j2nzg31L/1/

The warning related to the select fires repeatedly.  @gaearon tells me it should dedupe, and that this is a bug.

**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://jsfiddle.net or similar (template for React 16: https://jsfiddle.net/Luktwrdm/, template for React 15: https://jsfiddle.net/hmbg7e9w/).**

See above

**What is the expected behavior?**

See above

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

16.2
stub = ReactDOM.render(stub, container);
    const node = ReactDOM.findDOMNode(stub);
    expect(node.options[0].selected).toBe(false); 
    expect(node.options[1].selected).toBe(true); 
    expect(node.options[2].selected).toBe(true); 
    
    ReactDOM.render(
      <select multiple={true} defaultValue={['monkey']}>
        {options}
      </select>,
      container,
    );
    expect(node.options[0].selected).toBe(false); 
    expect(node.options[1].selected).toBe(true); 
    expect(node.options[2].selected).toBe(true); 
  });
  it('should allow setting `value`', () => {
    let stub = (
      <select value="giraffe" onChange={noop}>
        <option value="monkey">A monkey!</option>
        <option value="giraffe">A giraffe!</option>
        <option value="gorilla">A gorilla!</option>
      </select>
    );
    const options = stub.props.children;
    const container = document.createElement('div');
    stub = ReactDOM.render(stub, container);
    const node = ReactDOM.findDOMNode(stub);
    expect(node.value).toBe('giraffe');