Skip to content

Error: performUpdateIfNecessary: Unexpected batch number ... in react v15.4.2 and react-dom v15.4. #9037

Closed
@wking

Description

@wking

Spun off from #6895, which was closed with a request for reproducible test-cases to be filed as separate issues. The test-case I'd filed there (which failed on v15.4.1) is still failing on 15.4.2:

$ node --version
v6.9.4
$ npm --version
3.10.10
$ git clone git://github.com/wking/performUpdateIfNecessary-bug.git bug
$ cd bug
$ npm install
$ npm install
[email protected] /tmp/bug
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ └── [email protected]
├── [email protected]
└─┬ [email protected]
  …
$ npm test
…a…
…
  console.error node_modules/fbjs/lib/warning.js:36
    Warning: performUpdateIfNecessary: Unexpected batch number (current 2, pending 1)

 FAIL  src/Bug.test.js
  ● does not duplicate requests for loaded nodes

    duplicate call for 7
      
      at Bug.<anonymous> (src/Bug.js:16:17)
      at ReactCompositeComponentWrapper._processPendingState (node_modules/react-dom/lib/ReactCompositeComponent.js:675:66)
      at ReactCompositeComponentWrapper.updateComponent (node_modules/react-dom/lib/ReactCompositeComponent.js:618:26)
      at ReactCompositeComponentWrapper.performUpdateIfNecessary (node_modules/react-dom/lib/ReactCompositeComponent.js:561:12)
      at Object.performUpdateIfNecessary (node_modules/react-dom/lib/ReactReconciler.js:157:22)
      at runBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:150:21)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at Object._renderNewRootComponent (node_modules/react-dom/lib/ReactMount.js:320:18)
      at Object._renderSubtreeIntoContainer (node_modules/react-dom/lib/ReactMount.js:401:32)
      at Object.render (node_modules/react-dom/lib/ReactMount.js:422:23)
      at Object.<anonymous>.it (src/Bug.test.js:7:48)

  ✕ does not duplicate requests for loaded nodes (3ms)
…

There are no local catch calls in my code:

$ git grep catch
…no hits…

And really, there's not much code in the example at all :p. There may be bugs and catches deeper in the stack, but the only direct dependencies are react-scripts, react, and react-dom, so it seems like an issue in a Facebook-maintained repository (or possibly one of their dependencies, in which case a Facebook-maintained dependency may need to be bumped).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions