You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Colvin Cowie (Jira)" <ji...@apache.org> on 2023/01/31 08:58:00 UTC

[jira] [Created] (SOLR-16641) Circular task dependency in gradle

Colvin Cowie created SOLR-16641:
-----------------------------------

             Summary: Circular task dependency in gradle
                 Key: SOLR-16641
                 URL: https://issues.apache.org/jira/browse/SOLR-16641
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
          Components: Gradle
            Reporter: Colvin Cowie


I sent this to the dev mailing list a few days ago and didn't get a response, so I'm opening this issue and will create a PR for it.

 
I just cloned main from [https://github.com/apache/solr/commit/1135fdfd7c49ff7ef23513ab01b4ee36ffc14f8f] and to test that everything was working, before I start making changes, I ran _gradlew tidy updateLicenses check -x test_ just to see that everything would pass [https://github.com/apache/solr/blob/main/dev-docs/how-to-contribute.adoc#making-a-new-contribution].
 
Gradle complains that there's a circular task dependency:
 
{quote}solr>gradlew tidy updateLicenses check -x test

Downloading gradle-wrapper.jar from [https://raw.githubusercontent.com/gradle/gradle/v7.6.0/gradle/wrapper/gradle-wrapper.jar]
To honour the JVM settings for this build a single-use Daemon process will be forked. See [https://docs.gradle.org/7.6/userguide/gradle_daemon.html#sec:disabling_the_daemon].
Daemon will be stopped at the end of the build

FAILURE: Build failed with an exception.

* What went wrong:
Circular dependency between the following tasks:
:errorProneSkipped
\--- :localSettings
     \--- :solr:updateLicenses
          +--- :localSettings (*)
          +--- :solr:benchmark:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar
          |    |    +--- :gitStatus
          |    |    |    \--- :localSettings (*)
          |    |    +--- :localSettings (*)
          |    |    +--- :solr:core:classes
          |    |    |    +--- :localSettings (*)
          |    |    |    +--- :solr:core:compileJava
          |    |    |    |    +--- :errorProneSkipped (*)
          |    |    |    |    +--- :localSettings (*)
          |    |    |    |    +--- :solr:core:validateSourcePatterns
          |    |    |    |    |    \--- :localSettings (*)
          |    |    |    |    +--- :solr:solrj:compileJava
          |    |    |    |    |    +--- :errorProneSkipped (*)
          |    |    |    |    |    +--- :localSettings (*)
          |    |    |    |    |    \--- :solr:solrj:validateSourcePatterns
          |    |    |    |    |         \--- :localSettings (*)
          |    |    |    |    +--- :solr:solrj-streaming:compileJava
          |    |    |    |    |    +--- :errorProneSkipped (*)
          |    |    |    |    |    +--- :localSettings (*)
          |    |    |    |    |    +--- :solr:solrj:compileJava (*)
          |    |    |    |    |    \--- :solr:solrj-streaming:validateSourcePatterns
          |    |    |    |    |         \--- :localSettings (*)
          |    |    |    |    \--- :solr:solrj-zookeeper:compileJava
          |    |    |    |         +--- :errorProneSkipped (*)
          |    |    |    |         +--- :localSettings (*)
          |    |    |    |         +--- :solr:solrj:compileJava (*)
          |    |    |    |         \--- :solr:solrj-zookeeper:validateSourcePatterns
          |    |    |    |              \--- :localSettings (*)
          |    |    |    \--- :solr:core:processResources
          |    |    |         \--- :localSettings (*)
          |    |    \--- :solr:core:compileJava (*)
          |    +--- :solr:solrj:jar
          |    |    +--- :gitStatus (*)
          |    |    +--- :localSettings (*)
          |    |    +--- :solr:solrj:classes
          |    |    |    +--- :localSettings (*)
          |    |    |    +--- :solr:solrj:compileJava (*)
          |    |    |    \--- :solr:solrj:processResources
          |    |    |         \--- :localSettings (*)
          |    |    \--- :solr:solrj:compileJava (*)
          |    +--- :solr:solrj-streaming:jar
          |    |    +--- :gitStatus (*)
          |    |    +--- :localSettings (*)
          |    |    +--- :solr:solrj-streaming:classes
          |    |    |    +--- :localSettings (*)
          |    |    |    +--- :solr:solrj-streaming:compileJava (*)
          |    |    |    \--- :solr:solrj-streaming:processResources
          |    |    |         \--- :localSettings (*)
          |    |    \--- :solr:solrj-streaming:compileJava (*)
          |    +--- :solr:solrj-zookeeper:jar
          |    |    +--- :gitStatus (*)
          |    |    +--- :localSettings (*)
          |    |    +--- :solr:solrj-zookeeper:classes
          |    |    |    +--- :localSettings (*)
          |    |    |    +--- :solr:solrj-zookeeper:compileJava (*)
          |    |    |    \--- :solr:solrj-zookeeper:processResources
          |    |    |         \--- :localSettings (*)
          |    |    \--- :solr:solrj-zookeeper:compileJava (*)
          |    \--- :solr:test-framework:jar
          |         +--- :gitStatus (*)
          |         +--- :localSettings (*)
          |         +--- :solr:test-framework:classes
          |         |    +--- :localSettings (*)
          |         |    +--- :solr:test-framework:compileJava
          |         |    |    +--- :errorProneSkipped (*)
          |         |    |    +--- :localSettings (*)
          |         |    |    +--- :solr:core:compileJava (*)
          |         |    |    +--- :solr:solrj:compileJava (*)
          |         |    |    +--- :solr:solrj-streaming:compileJava (*)
          |         |    |    +--- :solr:solrj-zookeeper:compileJava (*)
          |         |    |    \--- :solr:test-framework:validateSourcePatterns
          |         |    |         \--- :localSettings (*)
          |         |    \--- :solr:test-framework:processResources
          |         |         \--- :localSettings (*)
          |         \--- :solr:test-framework:compileJava (*)
          +--- :solr:core:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    +--- :solr:test-framework:jar (*)
          |    \--- :solr:modules:analysis-extras:jar
          |         +--- :gitStatus (*)
          |         +--- :localSettings (*)
          |         +--- :solr:modules:analysis-extras:classes
          |         |    +--- :localSettings (*)
          |         |    +--- :solr:modules:analysis-extras:compileJava
          |         |    |    +--- :errorProneSkipped (*)
          |         |    |    +--- :localSettings (*)
          |         |    |    +--- :solr:core:compileJava (*)
          |         |    |    +--- :solr:solrj:compileJava (*)
          |         |    |    +--- :solr:solrj-streaming:compileJava (*)
          |         |    |    +--- :solr:solrj-zookeeper:compileJava (*)
          |         |    |    \--- :solr:modules:analysis-extras:validateSourcePatterns
          |         |    |         \--- :localSettings (*)
          |         |    \--- :solr:modules:analysis-extras:processResources
          |         |         \--- :localSettings (*)
          |         \--- :solr:modules:analysis-extras:compileJava (*)
          +--- :solr:distribution:collectJarInfos
          |    \--- :localSettings (*)
          +--- :solr:docker:collectJarInfos
          |    \--- :localSettings (*)
          +--- :solr:documentation:collectJarInfos
          |    \--- :localSettings (*)
          +--- :solr:example:collectJarInfos
          |    \--- :localSettings (*)
          +--- :solr:modules:collectJarInfos
          |    \--- :localSettings (*)
          +--- :solr:packaging:collectJarInfos
          |    \--- :localSettings (*)
          +--- :solr:prometheus-exporter:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:server:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    \--- :solr:solrj-zookeeper:jar (*)
          +--- :solr:solr-ref-guide:collectJarInfos
          |    \--- :localSettings (*)
          +--- :solr:solrj:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:solrj-streaming:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    +--- :solr:test-framework:jar (*)
          |    \--- :solr:modules:sql:jar
          |         +--- :gitStatus (*)
          |         +--- :localSettings (*)
          |         +--- :solr:modules:sql:classes
          |         |    +--- :localSettings (*)
          |         |    +--- :solr:modules:sql:compileJava
          |         |    |    +--- :errorProneSkipped (*)
          |         |    |    +--- :localSettings (*)
          |         |    |    +--- :solr:core:compileJava (*)
          |         |    |    +--- :solr:solrj:compileJava (*)
          |         |    |    +--- :solr:solrj-streaming:compileJava (*)
          |         |    |    +--- :solr:solrj-zookeeper:compileJava (*)
          |         |    |    \--- :solr:modules:sql:validateSourcePatterns
          |         |    |         \--- :localSettings (*)
          |         |    \--- :solr:modules:sql:processResources
          |         |         \--- :localSettings (*)
          |         \--- :solr:modules:sql:compileJava (*)
          +--- :solr:solrj-zookeeper:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:test-framework:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    \--- :solr:solrj-zookeeper:jar (*)
          +--- :solr:webapp:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    \--- :solr:solrj-zookeeper:jar (*)
          +--- :solr:modules:analysis-extras:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:analytics:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:clustering:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:extraction:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:gcs-repository:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:hadoop-auth:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    +--- :solr:test-framework:jar (*)
          |    \--- :solr:modules:analysis-extras:jar (*)
          +--- :solr:modules:hdfs:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    +--- :solr:test-framework:jar (*)
          |    \--- :solr:modules:analysis-extras:jar (*)
          +--- :solr:modules:jwt-auth:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:langid:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:ltr:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:opentelemetry:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:s3-repository:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          +--- :solr:modules:scripting:collectJarInfos
          |    +--- :localSettings (*)
          |    +--- :solr:core:jar (*)
          |    +--- :solr:solrj:jar (*)
          |    +--- :solr:solrj-streaming:jar (*)
          |    +--- :solr:solrj-zookeeper:jar (*)
          |    \--- :solr:test-framework:jar (*)
          \--- :solr:modules:sql:collectJarInfos
               +--- :localSettings (*)
               +--- :solr:core:jar (*)
               +--- :solr:solrj:jar (*)
               +--- :solr:solrj-streaming:jar (*)
               +--- :solr:solrj-zookeeper:jar (*)
               +--- :solr:test-framework:jar (*)
               \--- :solr:modules:analysis-extras:jar (*)

(*) - details omitted (listed previously)


* 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|https://help.gradle.org/]

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See [https://docs.gradle.org/7.6/userguide/command_line_interface.html#sec:command_line_warnings]

BUILD FAILED in 1m 28s
2 actionable tasks: 2 executed
Error: Something went wrong. Make sure you're using Java 11 - 19.{quote}
 
 
After running gradlew on its own I've realised that it's because if the gradle.properties file doesn't exist, the _localSettings_ task gets added as a dependency of all other tasks: [https://github.com/apache/solr/blob/f25d77a45c53db09742cb0f9599ee7c9774b87ab/gradle/generation/local-settings.gradle#L123] and, I assume, other tasks are indirectly being added as a dependency of localSettings.
 
 
Rather than trying to unpick the task dependencies, it seems like the easiest fix to this is to not have localSettings as a task, and just execute the generation of the gradle.properties inline in the script when they're absent. (Unless there was a specific reason for it needing to be a task?). That removes the circular task dependency.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org