-
Notifications
You must be signed in to change notification settings - Fork 24.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows & Android: react native server crashes very often #9136
Comments
I got the same problem after i modified a js file. |
I solve the problem by install watchman. |
@chardlau doesn't solve my problem, I have no idea why just adding watchman to env path can avoid such error |
I think I find another solution, but not quite sure, help me check it. After crawling files, a watcher will be added on these files, so what if I ignore such files under .idea? Add one method in local-cli\default.config.js
Change code of method getPackagerServer In local-cli\server\runServer.js Done. |
Now it cries about build folder |
@pvllnspk I have never come cross errors like yours, could you paste the detail message? And need to tell you the truth I got the error again after the server running for several hours, it's still related to 'workspace.xml___jb_old___'. |
@withparadox2, so seems like we need to find another solution, let's keep in touch |
any news? |
For the record:
The only temporarily workaround I found was to change behavior of react cli on exceptions. Open |
Hi folks, are you folks still experiencing this issue? |
I didnt experience this issue from RN v0.37 (still crash on 0.36 very often) |
Experiencing the same on 0.39.2 with .idea and .git folders |
The problem still exists with v0.40 |
I encounter this issue with v0.40 ONLY when including 'react-native-camera' library.
`
BUILD FAILED Total time: 4 mins 35.965 secs (node:3816) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejec
|
The problem still exists with v0.40. |
Confirm problem on Windows 7, [email protected]
|
Same here. Windows 7, [email protected] |
This become really annoying :( I can't work in normal flow. |
@ericnakagawa I think this issue should be reopened |
@ericnakagawa totally should be reopened. |
Same problem, RN 0.40.0, Win7 |
I hava solved it. see http://blog.csdn.net/real_bird/article/details/54691589 |
Is this a Windows 7 specific problem? Does anybody experiencing this issue with Windows 10? |
I have the same issue v 0.38 can i just tell that packager to ignore certain folders |
+1 having this issue on React Native 0.39.2 |
Should be reopened, can confirm I'm getting this issue on RN 0.40 |
This still happens for me...
Seems when anything that isn't the packager tries to access the same files, the packager throws a fit. It won't run again until I remove my node_modules and re-install ( Also do note, I use vim and CLI, so you can rule out any editor/android studio/etc I guess. Almost always, too, the lstat errors are on This issue really shouldn't be closed, I suggest you re-open it @ericnakagawa. |
After running the packager manually outside of vscode, and attaching to it
for debugging, everything is way faster and I no longer hit any issues.
Give it a try?
…On 17 Apr 2017 11:52 a.m., "James Garbutt" ***@***.***> wrote:
This still happens for me...
> react-native --version
react-native-cli: 2.0.1
react-native: 0.43.3
In procmon, I see a huge amount of file operations with status "BUFFER
OVERFLOW", could be related?
Seems when anything that *isn't* the packager tries to access the same
files, the packager throws a fit. It won't run again until I remove my
node_modules and re-install (yarn). So my guess is something bad going on
with open file handles, etc...
Almost always, too, the lstat errors are on .git paths and
node_modules/.bin paths.
This issue *really* shouldn't be closed, I suggest you re-open it
@ericnakagawa <https://github.com/ericnakagawa>.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#9136 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAc6vULEz8sNdyI4XVRIfuONNX4UZNH7ks5rw0RUgaJpZM4JZooz>
.
|
Right now I'm pretty much running it all outside any editor and have always been:
Result is an unknown lstat error (code I've stepped through the packager and broke on the exception, but its literally just an lstat error, no useful information. Re-running the packager after it has errored results in the same error (sometimes on a different path). So at this point it no longer functions at all. The only solution I found is to trash the entire node_modules directory and re-install it all, presumably because the mass of file handles it has open get freed... (its monitoring node_modules by the looks of it, thats potentially a huge tree). Also sounds like the solution way up above, of running a |
Expanding on @withparadox2 solution: This solved the issue for me on: Create the following let blacklist = require('react-native/packager/blacklist');
let config = {
getBlacklistRE(platform) {
return blacklist(platform, [
// Ignore local `.sample.js` files.
/.*\.sample\.js$/,
// Ignore IntelliJ directories
/.*\.idea\/.*/,
// ignore git directories
/.*\.git\/.*/,
// Ignore android directories
/.*\/app\/build\/.*/,
// Add more regexes here for paths which should be blacklisted from the packager.
]);
}
};
module.exports = config; |
I had this problem as well after upgrading to react-native 0.43.4 using react-native-git-upgrade. I use Visual Studio Code on Windows 7 and run on the Android Emulator that comes with Android Studio. Here is the solution that worked for me:
|
I have the same problem. I use VS Code 1.11.2, Windows 7 and create-react-native-app. Any solution ? |
@pierre-H check my solution up. |
@llioor There is no android folder with creact-react-native-app |
@pierre-H If you want, go through these steps: https://facebook.github.io/react-native/docs/getting-started.html and if you have the same issue as mentioned in the first comment here so check my solution. |
On every build I get the same problem. The packager crashes since it is watching files that are deleted or modified during build. Typical error:
The actual file it crashes on varies, but always in the android\app\build folder. I tried the suggestion to add a Windows 10 |
@PCguru did you read all comments in this post? |
We're not using react-native-fbsdk. The packager shouldn't be monitoring the build folder. |
@PCguru Newer versions of react-native apparently use a different signature for blacklisting -- you're supposed to no longer include the "platform" parameter. So @codebymikey's solution here should work, except instead of:
It should now be:
For reference, see here and here. For me, with:
EDIT: Actually, this didn't solve it. See below for a working solution. |
Hmmm. I perhaps spoke too soon. While the above may have helped (hard to tell -- I don't want to replicate the old state to confirm), I then found I was still getting errors a couple builds later. However, I believe I've fixed it fully now, by using watchman, as recommended by @chardlau here: #9136 (comment) However, the link he gave is outdated. The latest version can be obtained here: https://facebook.github.io/watchman/docs/install.html
EDIT I've since found the root cause of the watchman issues: the paths were not being normalized in the I reported the issue here, along with the solution: jestjs/jest#3752 So in other words, to solve the "ERROR EPERM: operation not permitted, lstat" problem:
Also, note that when running "react-native start" to start the packager, in some cases it might be necessary to add the "--resetCache" flag. I've had some issues in my debugging process where cached files were kept, causing my latest "react-native start" to not recreate all the files. (either causing problems, or hiding problems) |
I've found a second solution.
project.ext.react = [
// the entry file for bundle generation
- entryFile: "index.android.js",
+ entryFile: "src/index.android.js",
extraPackagerArgs: ["--sourcemap-output", file("$buildDir/outputs/index.android.js.map")],
];
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected String getJSMainModuleName() {
- return "index.android";
+ return "src/index.android";
}
What this does is it removes the need for the blacklist -- it just doesn't even start processing anything other than what's in "src" and "node_modules". This means, when you build your project, the file-changes in "android" are not even on the radar. (Of course, if you make Java/Android changes within the "node_modules" folder and build them, the packager may crash. But this is not very common, so it's okay.) So why does this work, but not the "ignore list"? I think it's because the file-watcher system does some operations even on "ignored" paths -- it doesn't do the full processing, but still calls "lstat" on the files. (In my project, paths which were ignored, and confirmed as such with custom code in various places in react-native's js files, still showed up in errors for an "lstat" operation in the packager process -- unfortunately, the stack trace just said "Error (native)" or something. Of course, the ignore-not-fully-ignoring might also just be a side-effect of the non-normalized-paths-causing-duplicate-entries issue mentioned in my previous post.) So anyway, if the above solution of using watchman doesn't work, you can try this one as well. (I'm currently going with the watchman solution, however, since I've read that it's somewhat faster) Phew! Anyway, hope I can finally close the book on this one... |
Still same problem in Win 7 with the following versions |
Hello, I had the same problem on windows 10 , I could fix it following the next steps: 2. return to root folder of your project and run 3. now run If all is right you project should run in your Emulator whitout problems. I hope works for you as It works for me. |
Turned off Atom (editor) and Android Studio and tried again, Worked like a charm. Probably Android Studio indexing is interfering with npm. |
@hiteshsahu This worked in my case. I closed both Android Studio and Atom, then ran |
I've written a new Stack Overflow answer which sums up and extends a bit on the solution(s) presented above: https://stackoverflow.com/a/47420765/2441655 It doesn't require the developer to close the react-native packager or Android Studio, or call "gradlew clean"; which is nice, since those workarounds are annoying and eat away at your sanity. My earlier posts (a couple pages up) are less clear because at the time I didn't understand the distinction between the two issues. (That, and there was a third issue in the "jest" module which made one of those two issues much harder to diagnose/debug -- the third issue is fixed now if you're using the latest versions, so doesn't need to be worked around anymore) |
This is still happening on RN 0.45.1 (at least on windows), and from all the comments it looks like a race condition against the filesystem. I think if lstat() fails and the file doesn't exist, it should simply not be considered an error. These kinds of problems are really common when dealing with a filesystem outside of the control of the application. Almost nothing should be assumed about the filesystem structure from one second to the next. Can I help somehow? Is there someone still working on a fix for this? |
https://facebook.github.io/watchman/docs/config.html
i think that's why .watchmanconfig.ignore_dirs=["android"] not work! |
now the rn-cli.config.js become these:
i have tried in : now the dev server won't be interupted by "lstat err" due to the rebuild process of android app |
After that I should again do:
How to resolve this quite annoying problem?
Thanks
The text was updated successfully, but these errors were encountered: