首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >递归和内存泛滥:启动一个分级守护进程,1个繁忙和6个停止的守护进程无法重用,详细信息请使用状态。

递归和内存泛滥:启动一个分级守护进程,1个繁忙和6个停止的守护进程无法重用,详细信息请使用状态。
EN

Stack Overflow用户
提问于 2022-04-25 04:03:46
回答 2查看 906关注 0票数 6

我正在使用这个插件https://github.com/mozilla/rust-android-gradle,它需要我添加

代码语言:javascript
运行
复制
tasks.whenTaskAdded { task ->
    if ((task.name == 'javaPreCompileDebug' || task.name == 'javaPreCompileRelease')) {
        task.dependsOn 'cargoBuild'
    }
}

我的颤栗项目的建造。从头到尾,当我想要的时候,我就会得到这样的东西:

代码语言:javascript
运行
复制
Starting a Gradle Daemon, 18 busy Daemons could not be reused, use --status for details
Starting a Gradle Daemon, 19 busy Daemons could not be reused, use --status for details
...

然后,它继续启动一个新的,直到我的RAM洪水和计算机崩溃。如果我对该代码进行评论,它就会生成。

是否有一种方法可以调试更多来查看正在发生的事情?查看系统监视器,它启动了大量的java Gradle守护进程

这是./gradlew --info --stack trace --debug assembleDebug输出的一部分。

代码语言:javascript
运行
复制
2022-04-24T17:14:45.981+0000 [QUIET] [system.out] > Configure project :
2022-04-24T17:14:45.981+0000 [QUIET] [system.out] Starting a Gradle Daemon, 2 busy and 23 stopped Daemons could not be reused, use --status for details
2022-04-24T17:14:51.958+0000 [LIFECYCLE] [org.gradle.cache.internal.DefaultFileLockManager] 
2022-04-24T17:14:51.958+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2022-04-24T17:14:51.958+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2022-04-24T17:14:51.958+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2022-04-24T17:14:51.958+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2022-04-24T17:14:51.958+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2022-04-24T17:14:51.958+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2022-04-24T17:14:46.015+0000 [LIFECYCLE] [org.gradle.internal.logging.progress.ProgressLoggerFactory] 
2022-04-24T17:14:46.015+0000 [LIFECYCLE] [org.gradle.internal.logging.progress.ProgressLoggerFactory] > Configure project :
2022-04-24T17:14:54.279+0000 [QUIET] [system.out] 
2022-04-24T17:14:54.279+0000 [QUIET] [system.out] > Configure project :
2022-04-24T17:14:54.279+0000 [QUIET] [system.out] Starting a Gradle Daemon, 3 busy and 23 stopped Daemons could not be reused, use --status for details
2022-04-24T17:15:01.958+0000 [LIFECYCLE] [org.gradle.cache.internal.DefaultFileLockManager] 
2022-04-24T17:15:01.958+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2022-04-24T17:15:01.958+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2022-04-24T17:15:01.958+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2022-04-24T17:15:01.959+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2022-04-24T17:15:01.959+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2022-04-24T17:15:01.959+0000 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2022-04-24T17:14:54.315+0000 [LIFECYCLE] [org.gradle.internal.logging.progress.ProgressLoggerFactory] 
2022-04-24T17:14:54.315+0000 [LIFECYCLE] [org.gradle.internal.logging.progress.ProgressLoggerFactory] > Configure project :
2022-04-24T17:15:02.379+0000 [QUIET] [system.out] 
2022-04-24T17:15:02.379+0000 [QUIET] [system.out] > Configure project :
2022-04-24T17:15:02.379+0000 [QUIET] [system.out] Starting a Gradle Daemon, 4 busy and 23 stopped Daemons could not be reused, use --status for details
2022-04-24T17:15:10.279+0000 [QUIET] [system.out] 
2022-04-24T17:15:10.279+0000 [QUIET] [system.out] > Configure project :
2022-04-24T17:15:10.279+0000 [QUIET] [system.out] Starting a Gradle Daemon, 5 busy and 23 stopped Daemons could not be reused, use --status for details

我的build.gradle

代码语言:javascript
运行
复制
buildscript {
    ext.kotlin_version = '1.6.21'
    repositories {
        google()
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'org.mozilla.rust-android-gradle:plugin:0.9.2'
    }

分级版本:

代码语言:javascript
运行
复制
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip

更新:

代码语言:javascript
运行
复制
 ./gradlew --status
   PID STATUS   INFO
   671 IDLE     7.4.2
  1026 IDLE     7.4.2
  1320 IDLE     7.4.2
  2128 IDLE     7.4.2
  2470 IDLE     7.4.2
  2760 IDLE     7.4.2
  3035 IDLE     7.4.2

Only Daemons for the current Gradle version are displayed. See https://docs.gradle.org/7.4.2/userguide/gradle_daemon.html#sec:status

更新:

代码语言:javascript
运行
复制
java --version
openjdk 11.0.14.1 2022-02-08
OpenJDK Runtime Environment (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

更新:

代码语言:javascript
运行
复制
flutter --version
Flutter 2.10.5 • channel stable •
https://github.com/flutter/flutter.git
Framework • revision 5464c5bac7 (10 days ago) •
2022-04-18 09:55:37 -0700
Engine • revision 57d3bac3dd
Tools • Dart 2.16.2 • DevTools 2.9.2

更新:

代码语言:javascript
运行
复制
./gradlew --status
   PID STATUS   INFO
  7625 IDLE     7.4.2
   694 STOPPED  (after the daemon registry became unreadable)
   977 STOPPED  (after the daemon was no longer found in the daemon registry)
  6270 STOPPED  (other compatible daemons were started after being idle for 0 minutes and not recently used)
  5976 STOPPED  (other compatible daemons were started after being idle for 0 minutes and not recently used)
  5689 STOPPED  (other compatible daemons were started after being idle for 0 minutes and not recently used)
  6548 STOPPED  (other compatible daemons were started after being idle for 0 minutes and not recently used)

Only Daemons for the current Gradle version are displayed. See https://docs.gradle.org/7.4.2/userguide/gradle_daemon.html#sec:status
EN

回答 2

Stack Overflow用户

发布于 2022-05-03 17:51:42

假设这不是本地防火墙问题。

文件$GRADLE_USER_HOME/gradle.properties定义了行为。

可以防止它重新启动守护进程(原因可能是插件而不是守护进程):

代码语言:javascript
运行
复制
org.gradle.daemon.performance.enable-monitoring=false

或者可以完全禁用守护进程:

代码语言:javascript
运行
复制
org.gradle.daemon=false

最好先使用开关--no-daemon运行,就像手册建议的那样:

如果怀疑守护进程变得不稳定,就可以简单地杀死它。回想一下,可以为构建指定--no-daemon开关,以防止使用守护进程。这对于诊断守护进程是否实际上是问题的罪魁祸首很有用。

票数 3
EN

Stack Overflow用户

发布于 2022-05-03 17:00:17

在一个没完没了的循环中创建Gradle守护进程的问题似乎是一个连接问题,也就是说,守护进程不能连接,或者只有缓慢的连接,并且被认为是死的--因此创建了一个新的守护进程,运行到相同的问题,等等,直到系统资源耗尽。

做了一些研究,发现在堆栈溢出,甚至可能更有趣的,因为它与颤振。解决方法是关闭共享WiFi连接/使用系统作为热点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71994409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档