Skip to content

Processing build does not work on Linux #1043

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

Closed
hx2A opened this issue Apr 17, 2025 · 5 comments
Closed

Processing build does not work on Linux #1043

hx2A opened this issue Apr 17, 2025 · 5 comments
Assignees

Comments

@hx2A
Copy link
Collaborator

hx2A commented Apr 17, 2025

I am attempting to run the build on a Linux computer but the Gradle daemon is getting killed. I can run it just fine on my MacOS machine. I seem to remember I was able to run the build on Linux in the past, with Gradle, so there must be a change from the past few months that caused this to stop working on Linux.

Here is the output from the terminal:

$ ./gradlew run
To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.11/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
Daemon will be stopped at the end of the build 
The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=27455a15-47c3-48ac-9cd0-a11ec3da1c3c, currentDir=/var/home/jim/INSTALL/processing-4.4.1}
Attempting to read last messages from the daemon log...
Daemon pid: 84903
  log file: /var/home/jim/.gradle/daemon/8.11/daemon-84903.out.log
----- Last 20 lines from daemon log file - daemon-84903.out.log -----
2025-04-17T12:20:06.052-0400 [INFO] [org.gradle.launcher.daemon.server.DaemonRegistryUpdater] Marking the daemon as busy, address: [7ed09869-856c-4961-8783-b8a860ce0e89 port:40993, addresses:[localhost/127.0.0.1]]
2025-04-17T12:20:06.052-0400 [DEBUG] [org.gradle.launcher.daemon.registry.PersistentDaemonRegistry] Marking busy by address: [7ed09869-856c-4961-8783-b8a860ce0e89 port:40993, addresses:[localhost/127.0.0.1]]
2025-04-17T12:20:06.052-0400 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry.
2025-04-17T12:20:06.052-0400 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2025-04-17T12:20:06.053-0400 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2025-04-17T12:20:06.053-0400 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] resetting idle timer
2025-04-17T12:20:06.053-0400 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] daemon is running. Sleeping until state changes.
2025-04-17T12:20:06.054-0400 [INFO] [org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy] Daemon is about to start building Build{id=27455a15-47c3-48ac-9cd0-a11ec3da1c3c, currentDir=/var/home/jim/INSTALL/processing-4.4.1}. Dispatching build started information...
2025-04-17T12:20:06.054-0400 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 54: dispatching org.gradle.launcher.daemon.protocol.BuildStarted@2d30967f
2025-04-17T12:20:06.055-0400 [DEBUG] [org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment] Configuring env variables: [PATH, container, XAUTHORITY, HISTCONTROL, XDG_DATA_DIRS, CONDA_DEFAULT_ENV, CONDA_PYTHON_EXE, DBUS_SESSION_BUS_ADDRESS, HF_HOME, CONDA_PREFIX, XDG_CURRENT_DESKTOP, MAIL, COLORTERM, LOGNAME, TERM_PROGRAM_VERSION, PWD, SHELL, LESSOPEN, OLDPWD, TOOLBOX_PATH, DEBUGINFOD_IMA_CERT_PATH, DEBUGINFOD_URLS, CONDA_PROMPT_MODIFIER, LS_COLORS, XDG_SESSION_DESKTOP, SHLVL, GSETTINGS_SCHEMA_DIR_CONDA_BACKUP, TMUX_PANE, HISTSIZE, CONDA_EXE, NVIDIA_VISIBLE_DEVICES, TERM, LANG, XDG_SESSION_ID, MOZ_GMP_PATH, XDG_SESSION_TYPE, DISPLAY, _CE_M, WAYLAND_DISPLAY, KONSOLE_VERSION, CONDA_SHLVL, XDG_SESSION_CLASS, TERM_PROGRAM, DESKTOP_SESSION, GPG_TTY, USER, XDG_MENU_PREFIX, XDG_SEAT, SSH_AUTH_SOCK, EDITOR, _CE_CONDA, HOSTNAME, GSETTINGS_SCHEMA_DIR, TMUX, XDG_VTNR, XDG_RUNTIME_DIR, HOME]
2025-04-17T12:20:06.059-0400 [DEBUG] [org.gradle.launcher.daemon.server.exec.LogToClient] About to start relaying all logs to the client via the connection.
2025-04-17T12:20:06.059-0400 [INFO] [org.gradle.launcher.daemon.server.exec.LogToClient] The client will now receive all logging from the daemon (pid: 84903). The daemon log file: /var/home/jim/.gradle/daemon/8.11/daemon-84903.out.log
2025-04-17T12:20:06.060-0400 [DEBUG] [org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon] Requesting daemon stop after processing Build{id=27455a15-47c3-48ac-9cd0-a11ec3da1c3c, currentDir=/var/home/jim/INSTALL/processing-4.4.1}
2025-04-17T12:20:06.060-0400 [LIFECYCLE] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] Daemon will be stopped at the end of the build 
2025-04-17T12:20:06.060-0400 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] Stop as soon as idle requested. The daemon is busy
2025-04-17T12:20:06.060-0400 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] daemon stop has been requested. Sleeping until state changes.
2025-04-17T12:20:06.060-0400 [DEBUG] [org.gradle.launcher.daemon.server.exec.ExecuteBuild] The daemon has started executing the build.
2025-04-17T12:20:06.061-0400 [DEBUG] [org.gradle.launcher.daemon.server.exec.ExecuteBuild] Executing build with daemon context: DefaultDaemonContext[uid=337d4ce3-8252-408a-a226-dee6b8838c10,javaHome=/usr/lib/jvm/java-21-openjdk,javaVersion=21,javaVendor=Red Hat, Inc.,daemonRegistryDir=/var/home/jim/.gradle/daemon,pid=84903,idleTimeout=120000,priority=NORMAL,applyInstrumentationAgent=true,nativeServicesMode=ENABLED,daemonOpts=-Xmx4g,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]
warning(109): /var/home/jim/INSTALL/processing-4.4.1/java/src/processing/mode/java/preproc/JavaParser.g4:47:0: options ignored in imported grammar JavaParser
Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt.----- End of the daemon log -----


FAILURE: Build failed with an exception.

* What went wrong:
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

> Task :java:preprocessor:ant-preproc
warning(109): /var/home/jim/INSTALL/processing-4.4.1/java/src/processing/mode/java/preproc/JavaParser.g4:47:0: options ignored in imported grammar JavaParser

When I use the suggest --info option I see the task that fails is :app:includeCore:

> Task :app:includeCore UP-TO-DATE                                                                                                                                                                                       Caching disabled for task ':app:includeCore' because:                                                                                                                                                                      Build cache is disabled                                                                                                                                                                                                  Not worth caching                                                                                                                                                                                                      
Skipping task ':app:includeCore' as it is up-to-date.                                                                                                                                                                    
Resolve mutations for :java:preprocessor:ant-preproc (Thread[#212,Execution worker Thread 3,5,main]) started.                                                                                                            :java:preprocessor:ant-preproc (Thread[#212,Execution worker Thread 3,5,main]) started.                                                                                                                                  The message received from the daemon indicates that the daemon has disappeared.                                                                                                                                          Build request sent: Build{id=120c4041-2700-4e09-a0e1-d5e1242822e0, currentDir=/var/home/jim/INSTALL/processing-4.4.1}                                                                                                    Attempting to read last messages from the daemon log...                                                                                                                                                                  Daemon pid: 87241                                                                                                                                                                                                        
  log file: /var/home/jim/.gradle/daemon/8.11/daemon-87241.out.log                                                                                                                                                       
----- Last 20 lines from daemon log file - daemon-87241.out.log -----                                                                                                                                                    
  Build cache is disabled                                                                                                                                                                                                
  Not worth caching                                                                                                                                                                                                      
Skipping task ':app:processResources' as it is up-to-date.                                                                                                                                                               
Resolve mutations for :app:includeCore (Thread[#212,Execution worker Thread 3,5,main]) started.                                                                                                                          
:app:includeCore (Thread[#212,Execution worker Thread 3,5,main]) started.                                                                                                                                                
Caching disabled for task ':app:includeCore' because:                                                                                                                                                                    
  Build cache is disabled                                                                                                                                                                                                
  Not worth caching                                                                                                                                                                                                      
Skipping task ':app:includeCore' as it is up-to-date.                                                                                                                                                                    
Resolve mutations for :java:preprocessor:ant-preproc (Thread[#212,Execution worker Thread 3,5,main]) started.                                                                                                            
:java:preprocessor:ant-preproc (Thread[#212,Execution worker Thread 3,5,main]) started.                                                                                                                                  
Caching disabled for task ':java:preprocessor:ant-preproc' because:                                                                                                                                                      
  Build cache is disabled                                                                                                                                                                                                
Task ':java:preprocessor:ant-preproc' is not up-to-date because:                                                                                                                                                         
  Task has not declared any outputs despite executing actions.                                                                                                                                                           
warning(109): /var/home/jim/INSTALL/processing-4.4.1/java/src/processing/mode/java/preproc/JavaParser.g4:47:0: options ignored in imported grammar JavaParser                                                            
i: starting the daemon as: /usr/lib/jvm/java-21-openjdk/bin/java -cp /var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.0.20/244b603e8c729f98baaf9088d90b5b9350c68af8/kot
lin-compiler-embeddable-2.0.20.jar:/var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/2.0.20/7388d355f7cceb002cd387ccb7ab3850e4e0a07f/kotlin-stdlib-2.0.20.jar:/var/home/jim/.gradle/cac
hes/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-script-runtime/2.0.20/4aea042b39014e0a924c2e1d4a21b6fff7e4d35/kotlin-script-runtime-2.0.20.jar:/var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/
kotlin-reflect/1.6.10/1cbe9c92c12a94eea200d23c2bbaedaf3daf5132/kotlin-reflect-1.6.10.jar:/var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-daemon-embeddable/2.0.20/9eb02dce62f058efe6a121cf00
cf5da9779e2746/kotlin-daemon-embeddable-2.0.20.jar:/var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.intellij.deps/trove4j/1.0.20200330/3afb14d5f9ceb459d724e907a21145e8ff394f02/trove4j-1.0.20200330.jar:/v
ar/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.6.4/2c997cd1c0ef33f3e751d3831929aeff1390cb30/kotlinx-coroutines-core-jvm-1.6.4.jar:/var/home/jim/.gradle/caches/module
s-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar -Djava.awt.headless=true -Djava.rmi.server.hostname=127.0.0.1 -Xmx4g -XX:ReservedCodeCacheSize=320m -Dkotlin.e
nvironment.keepalive -ea -XX:+UseCodeCacheFlushing -XX:+UseParallelGC --add-exports java.base/sun.nio.ch=ALL-UNNAMED org.jetbrains.kotlin.daemon.KotlinCompileDaemon --daemon-runFilesPath /home/jim/.local/share/kotlin/
daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath /var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.0.20/244b603e8c729f98baaf9088d90b5b9350c68af8/
kotlin-compiler-embeddable-2.0.20.jar:/var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/2.0.20/7388d355f7cceb002cd387ccb7ab3850e4e0a07f/kotlin-stdlib-2.0.20.jar:/var/home/jim/.gradle/
caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-script-runtime/2.0.20/4aea042b39014e0a924c2e1d4a21b6fff7e4d35/kotlin-script-runtime-2.0.20.jar:/var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotl
in/kotlin-reflect/1.6.10/1cbe9c92c12a94eea200d23c2bbaedaf3daf5132/kotlin-reflect-1.6.10.jar:/var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-daemon-embeddable/2.0.20/9eb02dce62f058efe6a121c
f00cf5da9779e2746/kotlin-daemon-embeddable-2.0.20.jar:/var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.intellij.deps/trove4j/1.0.20200330/3afb14d5f9ceb459d724e907a21145e8ff394f02/trove4j-1.0.20200330.jar
:/var/home/jim/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.6.4/2c997cd1c0ef33f3e751d3831929aeff1390cb30/kotlinx-coroutines-core-jvm-1.6.4.jar:/var/home/jim/.gradle/caches/mod
ules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar                                                                                                            
i: #1 retrying connecting to the daemon                                                                                                                                                                                  
Options for KOTLIN DAEMON: IncrementalCompilationOptions(super=CompilationOptions(compilerMode=INCREMENTAL_COMPILER, targetPlatform=JVM, reportCategories=[0, 3], reportSeverity=2, requestedCompilationResults=[0], kotl
inScriptExtensions=[]), areFileChangesKnown=false, modifiedFiles=null, deletedFiles=null, classpathChanges=NotAvailableForNonIncrementalRun, workingDir=/var/home/jim/INSTALL/processing-4.4.1/app/build/kotlin/compileKo
tlin/cacheable, multiModuleICSettings=MultiModuleICSettings(buildHistoryFile=/var/home/jim/INSTALL/processing-4.4.1/app/build/kotlin/compileKotlin/local-state/build-history.bin, useModuleDetection=false), usePreciseJa
vaTracking=true, icFeatures=IncrementalCompilationFeatures(withAbiSnapshot=false, preciseCompilationResultsBackup=true, keepIncrementalCompilationCachesInMemory=true, enableUnsafeIncrementalCompilationForMultiplatform
=false), outputFiles=[/var/home/jim/INSTALL/processing-4.4.1/app/build/classes/kotlin/main, /var/home/jim/INSTALL/processing-4.4.1/app/build/kotlin/compileKotlin/cacheable, /var/home/jim/INSTALL/processing-4.4.1/app/b
uild/kotlin/compileKotlin/local-state])
Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt.----- End of the daemon log -----

I did do Google searches for Gradle daemons getting killed and it seems this is not an uncommon problem for Linux users. I did create a gradle.properties file:

org.gradle.jvmargs=-Xmx4g
org.gradle.daemon=false

I can't disable the daemon though. It always says To honour the JVM settings for this build a single-use Daemon process will be forked. How do I get rid of the daemon? None of the fixes I read about via Google worked for me. How can I get the build to work on Linux?

@hx2A
Copy link
Collaborator Author

hx2A commented Apr 17, 2025

To investigate this I also referred back to my previously created fork of the processing repo:

https://github.com/hx2A/processing4

I know the build worked before. But today, when I run it, I get this message:

$ ./gradlew build
To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.11/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
Daemon will be stopped at the end of the build 
> Task :core:different:compileDifferentSharedLibraryDifferentObjc FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':core:different:compileDifferentSharedLibraryDifferentObjc'.
> Error while evaluating property 'compilerVersion' of task ':core:different:compileDifferentSharedLibraryDifferentObjc'.
   > Cannot invoke "org.gradle.nativeplatform.toolchain.internal.gcc.metadata.GccMetadata.getVendor()" because the return value of "org.gradle.platform.base.internal.toolchain.SearchResult.getComponent()" is null

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 3s
5 actionable tasks: 1 executed, 4 up-to-date

It fails on the ThinkDifferent code. I know I made some PRs related to this in the past. I did that work on my MacOS computer though. I also remember we removed the compiled objective c code from the repo, and that we had a good reason for it, but did that also make it impossible for non MacOS users to run the build? The build should work on all machines. That's the only way we can ever fix platform specific bugs.

@Stefterv
Copy link
Collaborator

Stefterv commented Apr 17, 2025

Hey Jim! Are you compiling with any JDK version other than 17 x64? Any version higher than 17 or an arm version would kill the process at this stage (will be fixed by #957)

Some more info, I've seen this before and it is a really annoying issue as it fails and gives improper errors. The failure actually happens within the legacy Ant step used by the Preprocessor but Gradle will report it as if somewhere else.

@Stefterv
Copy link
Collaborator

I will try to finish my work on #957 tomorrow morning, as you're not the first to run into this issue

@hx2A
Copy link
Collaborator Author

hx2A commented Apr 17, 2025

Hi @Stefterv ! I downgraded to Java 17 and then everything worked correctly.

Does this build contain the necessary MacOS thinkdifferent native libraries?

What I'm trying to achieve here is to run the py5 build. The py5 build process is dependent on the Processing. Previously I would download one of the release archives (e.g. processing-4.3.4-linux-arm64.tgz) and unzip that, but as of 4.4.0, files like that are no longer being created. I need to adapt py5's build process to either use the result of the Gradle build or use one of the portable files.

I have a lot of questions about how to best adapt py5 to the new Processing build process. Rather than ask those questions here, I created an issue for this in the py5 repo. @Stefterv , can you have a look and help me figure this out?

@hx2A
Copy link
Collaborator Author

hx2A commented Apr 17, 2025

And I am going to close this because Java 17 fixed this and it seems you are already aware of the issue.

@hx2A hx2A closed this as completed Apr 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants