镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Packager fails on macOS 10.12 Sierra #9309

Closed

Description

@goldenice

I have upgraded to the macOS Sierra beta yesterday, and the React Native Packager seems to fail. I've tried to reinstall the dependencies, but no use.

The output of the packager is this:

[11:45:02 AM] <START> Building Dependency Graph
[11:45:02 AM] <START> Crawling File System
[Hot Module Replacement] Server listening on /hot

React packager ready.

2016-08-09 11:45 node[6397] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-08-09 11:45 node[6397] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-08-09 11:45 node[6397] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
 ERROR  watch null EMFILE
{"code":"EMFILE","errno":"EMFILE","syscall":"watch null","filename":null}
Error: watch null EMFILE
    at exports._errnoException (util.js:873:11)
    at FSEvent.FSWatcher._handle.onchange (fs.js:1217:21)

The only reference to that specific error I have found is this old issue on the Node 0.10 repo's. I have tried the 'fix' in that topic, namely increasing the open file references limit. That didn't work.

The issue occurs on both Node 4.4.7 and 6.3.1, on macOS Sierra 10.12 on a MBP 2015 15". Does anyone know what is going on here?

Activity

  1. deadlocked247 commented on Aug 10, 2016

    @deadlocked247

    Just got this as well, also on sierra

  2. mc13an commented on Aug 10, 2016

    @mc13an

    me as well, also on sierra

  3. mc13an commented on Aug 10, 2016

    @mc13an

    Credit to @passwd for figuring this out

    We were able to get it to work by increasing the max file limit and moving to watchman v4.6.0

    here are the steps we followed:

    1. increase max file limt

    # check open file limit
    sysctl kern.maxfiles
    
    # edit sysctl
    sudo vim /etc/sysctl.conf
    
    # add these two lines
    kern.maxfiles=10485760
    kern.maxfilesperproc=1048576
    
    # reboot
    sudo reboot
    
    # check new file limit
    sysctl kern.maxfiles
    

    2. upgrade to watchman 4.6

    # clone repo
    git clone https://github.com/facebook/watchman.git
    
    # change to master branch
    git checkout -b v4.6.0 v4.6.0
    
    # run compiler
    ./autogen.sh
    ./configure --enable-lenient --without-pcre --with-python
    make
    sudo make install
    
    # check watchman version
    watchman -v
    
    # result should be 4.6.0
    
  4. deadlocked247 commented on Aug 10, 2016

    @deadlocked247

    @mc-lean you're the best!!!

  5. goldenice commented on Aug 12, 2016

    @goldenice
    Author

    @mc-lean Nice! :)

    Are there any plans to update watchman in the RN-repo so RN works out-of-the-box again?

  6. mc13an commented on Aug 12, 2016

    @mc13an

    @goldenice I would guess that it is. Sierra is due out in September so I would think they would plan to support it out of the box soon

  7. aahlad-allari commented on Aug 21, 2016

    @aahlad-allari

    @mc-lean Thanks 👍

  8. kjpolaszek commented on Aug 29, 2016

    @kjpolaszek

    Great, it works. 👍

  9. zhaomiing commented on Sep 6, 2016

    @zhaomiing

    thanks, you made my day :)

  10. jalmaas commented on Sep 13, 2016

    @jalmaas

    System doesn't report the updated value when i run sysctl kern.maxfiles (reports 300k) but upgraded to watchman 4.7.0 with brew install watchman and it seems to work

  11. monder commented on Sep 13, 2016

    @monder

    @jalmaas value updates only after reboot. Worked for me on GM.

    But indeed, just updating to watchman 4.6.0+ seems to be enough.

  12. jalmaas commented on Sep 13, 2016

    @jalmaas

    it didn't update after reboot here

  13. ide commented on Sep 13, 2016

    @ide
    Contributor

    React Native works fine with relatively up-to-date software. These are the settings that are working for me:

    $ node --version
    v6.5.0
    $ watchman --version
    4.6.0
    $ sysctl kern.maxfiles
    kern.maxfiles: 16384
    $ sysctl kern.maxfilesperproc
    kern.maxfilesperproc: 10240
    
  14. lauborges commented on Sep 13, 2016

    @lauborges

    unfortunately it does not work for me

    macOS 10.12 (16A319)
    
    $ node --version
    -> v6.5.0
    $ watchman --version
    -> 4.6.0
    $ sysctl kern.maxfiles
    -> 10485760
    $ sysctl kern.maxfilesperproc
    -> 1048576
    
    React packager ready.
    
    2016-09-13 17:10 node[8707] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-09-13 17:10 node[8707] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-09-13 17:10 node[8707] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-09-13 17:10 node[8707] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-09-13 17:10 node[8707] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-09-13 17:10 node[8707] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-09-13 17:10 node[8707] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-09-13 17:10 node[8707] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
     ERROR  Error watching file for changes: EMFILE
    {"code":"EMFILE","errno":"EMFILE","syscall":"Error watching file for changes:","filename":null}
    Error: Error watching file for changes: EMFILE
        at exports._errnoException (util.js:1026:11)
        at FSEvent.FSWatcher._handle.onchange (fs.js:1406:11)
    
  15. 11 remaining items

  16. sammosampson commented on Oct 28, 2016

    @sammosampson

    i ran brew install automake but still can't compile watchman

  17. artforlife commented on Oct 30, 2016

    @artforlife

    @sammosampson What errors are you getting?

  18. artforlife commented on Oct 30, 2016

    @artforlife

    After updating to OSX Sierra and XCode 8.1, I cannot compile any of the React-Native projects. I get the error that the OP had. At this point, I have not been able to resolve it. You may consider re-opening the issue.

    Here is what it looks like when I try to compile the Snowflake starter project:

    React packager ready.

    2016-10-30 11:30 node31071 FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-10-30 11:30 node31071 FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-10-30 11:30 node31071 FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    ERROR watch null EMFILE
    {"code":"EMFILE","errno":"EMFILE","syscall":"watch null","filename":null}
    Error: watch null EMFILE
    at exports._errnoException (util.js:856:11)
    at FSEvent.FSWatcher._handle.onchange (fs.js:1296:21)

    See http://facebook.github.io/react-native/docs/troubleshooting.html
    for common problems and solutions.
    ~
    Process terminated. Press to close the window

    Similar errors show up when compiling some tutorials I had laying around (they worked under Sierra and XCode 7.3.1)

  19. bondarewicz commented on Oct 30, 2016

    @bondarewicz

    @artforlife I'm having exact same issue although not related specifically to react-native, I'm in the process of updating to xcode 8.1 as after update to macOS sierra I was unable to run tests which depend on fs, any help appreciated...

    EDIT: please look at this, installing watchman fixed this issue for me

  20. artforlife commented on Oct 30, 2016

    @artforlife

    @bondarewicz Thanks for the idea. I have just tried downgrading to Xcode 7.3.1 and the problem still persists. This leads me to think that it lies not with Xcode but elsewhere. Perhaps the Development Tools is the problem.

    My watchman version is already 4.7.0 ...

  21. bondarewicz commented on Oct 30, 2016

    @bondarewicz

    @artforlife have you tried reinstall ? We need to debug this issue as many had the same problem but there is no definite answer yet...

  22. artforlife commented on Oct 30, 2016

    @artforlife

    @bondarewicz I have tried reinstalling the watchman, but that didn't affect anything.

  23. artforlife commented on Oct 30, 2016

    @artforlife

    I have the following configurations:

    OSX: Sierra
    XCode: 8.1
    NodeJS: 5.1.0
    Watchman: 4.6.0
    kern.maxfiles: 10485760

    I used to following steps to fix the issue.

    1. Run watchman watch-list
    2. Received the following error:

    2016-10-30T18:24:39,064: [3239527360] the permissions on /usr/local/var/run/watchman/userman-state allow others to write to it. Verify that you own the contents and then fix its permissions by running chmod 0700 /usr/local/var/run/watchman/userman-state

    1. Followed the instruction in the error prompt above and ran

    chmod 0700 /usr/local/var/run/watchman/userman-state

    This fixed it. To summarize, it seems to have been a permissions problem on a Watchman directory.

  24. hbd commented on Nov 18, 2016

    @hbd

    Can confirm that this issue was related to tmux. After getting the error

    2016-11-04 12:51 node[4311] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    2016-11-04 12:51 node[4311] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
    events.js:160
          throw er; // Unhandled 'error' event
          ^
    
    Error: Error watching file for changes: EMFILE
        at exports._errnoException (util.js:1026:11)
        at FSEvent.FSWatcher._handle.onchange (fs.js:1406:11)
    npm ERR! Test failed.  See above for more details.
    

    from running react-native commands, I installed watchman, but continued to get the issue. Running react-native commands outside of tmux now works. I do not have jest installed. None of the other fixes mentioned here had any effect.

  25. beshur commented on Nov 23, 2016

    @beshur

    Solved for me with updating Xcode and installing watchman with brew (which is not possible with 7.x Xcode)

    edit
    Also sudo chown -R $(whoami) ~/

  26. cborchert commented on Dec 1, 2016

    @cborchert

    I followed most of the steps above including upgrading watchman, and increasing the max file limit, but what solved it for me was verifying permissions by running watchman watch-list and then following the directions it provided. Thanks @OscarT and @hghinaglia!

  27. abuammar commented on Apr 20, 2017

    @abuammar

    updating watchman solved me the issue when i updated macOS Sierra

    ERROR Error watching file for changes: EMFILE
    {"code":"EMFILE","errno":"EMFILE","syscall":"Error watching file for changes:","filename":null}
    Error: Error watching file for changes: EMFILE
    at exports._errnoException (util.js:1036:11)
    at FSEvent.FSWatcher._handle.onchange (fs.js:1406:11)

  28. jlampa commented on Jul 3, 2017

    @jlampa

    Note that this is also what happens if you don't have Watchman installed at all.

  29. locked as resolved and limited conversation to collaborators on May 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions