Giter VIP home page Giter VIP logo

conductor-community's Introduction

Announcement

Effective December 13, 2023, Netflix will discontinue maintenance of Conductor OSS on GitHub. This strategic decision, while difficult, is essential for realigning our resources to better serve our business objectives with our internal Conductor fork.

We are deeply grateful for your support and contributions over the years. While Netflix will no longer be maintaining this repo, members of the Conductor community have been active in promoting alternative forks of this project, we’ll leave the code as is and trust that the health of the community will remain strong and continue to develop moving forward.

Netflix Conductor community modules

This repository hosts all the community contributed modules and extensions for Netflix Conductor

Netflix Conductor Logo

What is Conductor?

Conductor is a workflow orchestration engine that runs in the cloud. You can find more details about Conductor at the main repository of Netflix Conductor

What is this repository?

Conductor is an extensible platform that allows users to bring in their own persistence, queues, integrations eventing systems such as SQS, NATS, AMQP etc.

The core conductor project contains implementations tested and supported by Netflix, while this repository will contain all the modules contributed by community.

Repository Structure and Published Artifcats

Binaries are available from Netflix OSS Maven repository, or the Maven Central Repository.

Binaries are published under the group: com.netflix.conductor

For the list of artifacts published please see the table below:

Parent Folder Description
event-queue Support for external eventing systems like AMQP and NATS
external-payload-storage Storage for large workflow payloads
index Indexing for searching workflows
metrics Support for various metrics integrations including Datadog and Prometheus
persistence Persistence for metadata, execution and queue implementation
task Various system tasks - Kafka Publish
lock Workflow execution lock implementation
workflow-event-listener Workflow Status Listener and Binary compatibility with previously published conductor-contribs

FAQ

Why separate repository?

The number of contributions, especially newer implementations of the core contracts in Conductor has increased over the past few years. There is interest in the community to contribute more implementations. To streamline the support and release of the existing community-contributed implementations and future ones, we are creating a new repository dedicated to hosting just contributions. Conductor users who wish to use a contributed module will have a dedicated place to ask questions directly to fellow members of the community.

Having a separate repository will allow us to scale the contributions and also ensure we are able to review and merge PRs in a timely fashion.

How often builds are published?

Similar to core Conductor the builds are published often with each major release. Release numbers are kept in sync with main Conductor releases, which removes the need for a version compatibility matrix.

How do I get help?

Please use the Discussions on Conductor repo at https://github.com/Netflix/conductor/discussions

How do I add new modules here?

  1. Start with a proposal by posting on the discussion
  2. Send a PR

I have a question not listed here.

Please use the Discussions on Conductor repo at https://github.com/Netflix/conductor/discussions

Does it change how I build Conductor or use the Conductor binaries? (Do I need to pull additional dependency in my builds going forward?)

Conductor (https://github.com/Netflix/conductor) no longer pulls in all the dependencies from this repository as part of the conductor-server build. If you plan to use the modules from this repository, please build community-server which pulls in all the dependencies.

conductor-community's People

Contributors

apanicker-nflx avatar aravindanr avatar clari-akhilesh avatar cyzhao avatar dependabot[bot] avatar falu2010-netflix avatar gorzell avatar huangyiminghappy avatar hunterford avatar ismaley avatar josedab avatar jun-he avatar jvemugunta avatar jxu-nflx avatar kishorebanala avatar leandromoreira avatar lordbender avatar manan164 avatar mashurex avatar mdepak avatar mstier-nflx avatar naveenchlsn avatar pctreddy avatar peterlau avatar picaron avatar rickfish avatar s50600822 avatar tafael avatar v1r3n avatar vmg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

conductor-community's Issues

conductor-server startup failed with docker-compose-postgres.yaml

Describe the bug
A clear and concise description of what the bug is.

Details
Conductor version: master @2022-08-31
Persistence implementation: Postgres
Queue implementation: Postgres
Lock: Redis or Zookeeper? Redis

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://conductor.netflix.com/gettingstarted/docker.html
  2. command is : docker-compose -f docker-compose.yaml -f docker-compose-postgres.yaml up
  3. See error:
    conductor-server_1 | 4210 [main] WARN org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext [] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'queueAdminResource' defined in URL [jar:file:/app/libs/conductor-server-3.12.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-rest-3.12.0-SNAPSHOT.jar!/com/netflix/conductor/rest/controllers/QueueAdminResource.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultEventQueueProcessor' defined in URL [jar:file:/app/libs/conductor-server-3.12.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.12.0-SNAPSHOT.jar!/com/netflix/conductor/core/events/queue/DefaultEventQueueProcessor.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowExecutor' defined in URL [jar:file:/app/libs/conductor-server-3.12.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.12.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/WorkflowExecutor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'deciderService' defined in URL [jar:file:/app/libs/conductor-server-3.12.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.12.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/DeciderService.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.netflix.conductor.dao.MetadataDAO' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
    conductor-server_1 | 4216 [main] INFO org.apache.catalina.core.StandardService [] - Stopping service [Tomcat]
    conductor-server_1 | 4237 [main] INFO org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener [] -
    conductor-server_1 |
    conductor-server_1 | Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
    conductor-server_1 | 4270 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter [] -
    conductor-server_1 |
    conductor-server_1 | ***************************
    conductor-server_1 | APPLICATION FAILED TO START
    conductor-server_1 | ***************************
    conductor-server_1 |
    conductor-server_1 | Description:
    conductor-server_1 |
    conductor-server_1 | Parameter 2 of constructor in com.netflix.conductor.core.execution.DeciderService required a bean of type 'com.netflix.conductor.dao.MetadataDAO' that could not be found.
    conductor-server_1 |
    conductor-server_1 |
    conductor-server_1 | Action:
    conductor-server_1 |
    conductor-server_1 | Consider defining a bean of type 'com.netflix.conductor.dao.MetadataDAO' in your configuration.
    conductor-server_1 |
    docker_conductor-server_1 exited with code 0

Expected behavior
Work well with postgresdb

Screenshots
NA

Additional context
NA

[QUESTION]: 3.13.6 Issue with Elasticsearch 7

Hi all, I built the latest code and package it into a docker stack together with postgres 14 and Elasticsearch 7.6.2. When index disabled it works smoothly. When index is enabled I get the following error:

org.elasticsearch.client.ResponseException: method [PUT], host [http://es:9200], URI [/conductor_task], status line [HTTP/1.1 400 Bad Request]
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | {"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters:  [task : {properties={scheduledTime={format=strict_date_optional_time||epoch_millis, type=date}, updateTime={format=strict_date_optional_time||epoch_millis, type=date}, executionTime={type=long}, output={index=true, type=text}, input={index=true, type=text}, taskType={index=true, type=keyword}, reasonForIncompletion={index=true, type=keyword}, domain={index=true, type=keyword}, queueWaitTime={type=long}, taskDefName={index=true, type=keyword}, correlationId={index=true, type=keyword}, startTime={format=strict_date_optional_time||epoch_millis, type=date}, workflowType={index=true, type=keyword}, endTime={format=strict_date_optional_time||epoch_millis, type=date}, taskId={index=true, type=keyword}, workflowId={index=true, type=keyword}, status={index=true, type=keyword}}}]"}],"type":"mapper_parsing_exception","reason":"Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters:  [task : {properties={scheduledTime={format=strict_date_optional_time||epoch_millis, type=date}, updateTime={format=strict_date_optional_time||epoch_millis, type=date}, executionTime={type=long}, output={index=true, type=text}, input={index=true, type=text}, taskType={index=true, type=keyword}, reasonForIncompletion={index=true, type=keyword}, domain={index=true, type=keyword}, queueWaitTime={type=long}, taskDefName={index=true, type=keyword}, correlationId={index=true, type=keyword}, startTime={format=strict_date_optional_time||epoch_millis, type=date}, workflowType={index=true, type=keyword}, endTime={format=strict_date_optional_time||epoch_millis, type=date}, taskId={index=true, type=keyword}, workflowId={index=true, type=keyword}, status={index=true, type=keyword}}}]","caused_by":{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters:  [task : {properties={scheduledTime={format=strict_date_optional_time||epoch_millis, type=date}, updateTime={format=strict_date_optional_time||epoch_millis, type=date}, executionTime={type=long}, output={index=true, type=text}, input={index=true, type=text}, taskType={index=true, type=keyword}, reasonForIncompletion={index=true, type=keyword}, domain={index=true, type=keyword}, queueWaitTime={type=long}, taskDefName={index=true, type=keyword}, correlationId={index=true, type=keyword}, startTime={format=strict_date_optional_time||epoch_millis, type=date}, workflowType={index=true, type=keyword}, endTime={format=strict_date_optional_time||epoch_millis, type=date}, taskId={index=true, type=keyword}, workflowId={index=true, type=keyword}, status={index=true, type=keyword}}}]"}},"status":400}
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | 	at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:326) ~[elasticsearch-rest-client-7.15.2.jar!/:7.15.2]
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | 	at org.elasticsearch.client.RestClient.performRequest(RestClient.java:296) ~[elasticsearch-rest-client-7.15.2.jar!/:7.15.2]
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | 	at org.elasticsearch.client.RestClient.performRequest(RestClient.java:270) ~[elasticsearch-rest-client-7.15.2.jar!/:7.15.2]
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | 	at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.addIndex(ElasticSearchRestDAOV7.java:356) ~[conductor-es7-persistence-3.14.0-SNAPSHOT.jar!/:3.14.0-SNAPSHOT]
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | 	at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.createTaskIndex(ElasticSearchRestDAOV7.java:310) ~[conductor-es7-persistence-3.14.0-SNAPSHOT.jar!/:3.14.0-SNAPSHOT]
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | 	at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.setup(ElasticSearchRestDAOV7.java:233) ~[conductor-es7-persistence-3.14.0-SNAPSHOT.jar!/:3.14.0-SNAPSHOT]
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | 	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | 	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
conductor_conductor-server.1.jcdqx3h22227@ontheroad-3    | 	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]

My configurations are:

# Database persistence type.
conductor.db.type=postgres

spring.datasource.url=jdbc:postgresql://postgres:5432/conductor
spring.datasource.username=...
spring.datasource.password=...

# Hikari pool sizes are -1 by default and prevent startup
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=2

# Elastic search instance indexing is disabled.
conductor.indexing.enabled=true
conductor.elasticsearch.version=7
conductor.elasticsearch.url=http://es:9200
conductor.elasticsearch.clusterHealthColor=yellow

#Enable Prometheus
conductor.metrics-prometheus.enabled=true
management.endpoints.web.exposure.include=prometheus,health,info,metrics

# GRPC disabled
conductor.grpc-server.enabled=false

# Load sample kitchen sink disabled
loadSample=false

Any hint? Thank you very much.

could not install conductor with postgress persistance option using docker-compose

I am trying to follow the simple tutorial of netflix conductor but could not run the postgress or any other persistence option

i have got APPLICATION FAILED TO START and can not use the persistance option

conductor 3.9.10 using docker compose
os: mac /windows

docker-compose -f docker-compose.yaml -f docker-compose-postgres.yaml up

conductor-server_1  | 5772 [main] WARN  org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext [] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowResource' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-rest-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/rest/controllers/WorkflowResource.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowServiceImpl' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/service/WorkflowServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowExecutor' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/WorkflowExecutor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'deciderService' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/DeciderService.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.netflix.conductor.dao.MetadataDAO' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
conductor-server_1  | 5782 [main] INFO  org.apache.catalina.core.StandardService [] - Stopping service [Tomcat]
conductor-server_1  | 5815 [main] INFO  org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener [] -
conductor-server_1  |
conductor-server_1  | Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
conductor-server_1  | 5853 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter [] -
conductor-server_1  |
conductor-server_1  | ***************************
conductor-server_1  | APPLICATION FAILED TO START
conductor-server_1  | ***************************
conductor-server_1  |
conductor-server_1  | Description:
conductor-server_1  |
conductor-server_1  | Parameter 2 of constructor in com.netflix.conductor.core.execution.DeciderService required a bean of type 'com.netflix.conductor.dao.MetadataDAO' that could not be found.
conductor-server_1  |
conductor-server_1  |
conductor-server_1  | Action:
conductor-server_1  |
conductor-server_1  | Consider defining a bean of type 'com.netflix.conductor.dao.MetadataDAO' in your configuration.
conductor-server_1  |

Conductor migration scripts does not work with Postgres 10

Describe the bug
Migration script is failing for V8__indexing.sql in postgres persistence. I am using postgres 10.
CREATE INDEX workflow_index_json_data_json_idx ON workflow_index USING gin(jsonb_to_tsvector('english', json_data, '["all"]'));
ERROR
org.postgresql.util.PSQLException: ERROR: function jsonb_to_tsvector(unknown, jsonb, unknown) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Position: 76

Details
Conductor version: 3.13.8
Persistence implementation: Postgres

To Reproduce
Steps to reproduce the behavior:
deploy conductor-community server version 3.13.8
with postgres version 10.

Expected behavior
Server should start.

AMQPObservableQueue 'ack' implementation is inconsistent with the interface

Describe the bug

The AMQPObservableQueue class incorrectly implements the List<String> ack(List<Message> messages); function from the ObservableQueue interface. The javadoc of ObservableQueue#ack states:

@return the id of the ones which could not be ack'ed

The behaviour of AMQPObservableQueue is instead to return the successfully-ack'ed messages. The consequence of this appears to be that com.netflix.conductor.core.events.queue.DefaultEventQueueProcessor in conductor-core generates a lot of log-error spam because of this line:

https://github.com/Netflix/conductor/blob/631a04dd790f5d46e76691b47a748cad77e0e20d/core/src/main/java/com/netflix/conductor/core/events/queue/DefaultEventQueueProcessor.java#L155

List<String> failures = queue.ack(Collections.singletonList(msg));
if (!failures.isEmpty()) {
    LOGGER.error("Not able to ack the messages {}", failures);
}

The associated AMQPObservableQueueTest test-class has a testAck test which doesn't currently properly validate this behaviour insofar as all it does is validate that the returned List<String> is not-null. It doesn't validate that it is empty.

Details
Conductor version: current version on main
Persistence implementation: N/A
Queue implementation: N/A
Lock: N/A
Workflow definition: N/A
Task definition: N/A
Event handler definition: AMQP

To Reproduce

See associated test-case.

Expected behavior

AMQPObservableQueue#ack should only return messages that have thrown an error.

Screenshots

N/A

Additional context

N/A

Subworkflow is completed but subworkflow is timed out

Describe the bug
Subworkflow is completed but parent workflow is not updated with completed status due which parent workflow Timeout.

Details
Conductor version: 2.31.0
Persistence implementation: Postgres
Queue implementation: Postgres
Lock: Redis

Conductor Integration with MySQL Database

Describe the bug
Integration with MySQL Database throws an error due to missing attribute setting for Cache (cacheRefreshTime) fetched from properties

Details
Conductor version:3.9.0-SNAPSHOT
Persistence implementation: MySQL
Queue implementation: Dynoqueues
Lock: Redis

To Reproduce
Steps to reproduce the behavior:

  1. Netflix Conductor setup with db type as mysql
  2. Startup of server results in exception for missing dependency on MySQLMetadataDAO
  3. Exception is caused because the cacheRefreshTime is not fetched correctly from Properties

Expected behavior
Server startup results in successful handshake with MySQL via Flyway

Additional context
The code works fine when setup with In-memory database. The issue is only seen with MySQL integration.

[QUESTION]: amqp Repeated push message

conductor-community version: 3.14.0

workflow Definition:

{
  "createTime": 1698202712523,
  "accessPolicy": {},
  "name": "amqp",
  "description": "Edit or extend this sample workflow. Set the workflow name to get started",
  "version": 1,
  "tasks": [
    {
      "name": "event_task",
      "taskReferenceName": "event_0",
      "inputParameters": {
        "mod": "${workflow.input.mod}",
        "oddEven": "${workflow.input.oddEven}"
      },
      "type": "EVENT",
      "startDelay": 0,
      "sink": "amqp_queue:task_eventsss",
      "optional": false,
      "asyncComplete": true
    }
  ],
  "inputParameters": [],
  "outputParameters": {
    "data": "${get_population_data.output.response.body.data}",
    "source": "${get_population_data.output.response.body.source}"
  },
  "schemaVersion": 2,
  "restartable": true,
  "workflowStatusListenerEnabled": false,
  "ownerEmail": "[email protected]",
  "timeoutPolicy": "ALERT_ONLY",
  "timeoutSeconds": 0,
  "variables": {},
  "inputTemplate": {}
}

1、Starting the workflow will continuously push two pieces of information
image

2、Send message again every 1 minute
image
image
image

What is this problem and how should we handle it

Postgresql Eventing is not working

Describe the bug
Startup issue, connection is closed and after that queues stop working.

Details
Conductor version: 3.4.1
Persistence implementation: Postgres 11.12 on AWS
Queue implementation: Postgres
Lock: Redis

To Reproduce
Steps to reproduce the behavior:

  1. Deploy (Start) Conductor server
  2. Make sure there are workflows added and at least one is running (data is there)
  3. Make blue-green deployment (rollout update in k8s e.g. kubectl rollout restart deployment conductor)
  4. while once instance is stopping and another is starting errors occurs
  5. See error in logs

Expected behavior
Rollout startup without issues

Additional context

2022-04-07 13:32:47	
WARN	2022-04-07T10:32:47,366	414546	com.netflix.conductor.contribs.queue.nats.NATSStreamObservableQueue	[jnats-callbacks]	onDisconnect. Disconnected for viax_conductor_COMPLETED
2022-04-07 13:32:47	
WARN	2022-04-07T10:32:47,370	414550	com.zaxxer.hikari.pool.ProxyConnection	[pool-23-thread-1]	HikariPool-1 - Connection org.postgresql.jdbc.PgConnection@614aaa83 marked as broken because of SQLSTATE(08006), ErrorCode(0)
2022-04-07 13:32:47	
org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.
2022-04-07 13:32:47	
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:350) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:481) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:401) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:164) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:114) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) ~[HikariCP-3.4.5.jar!/:?]
2022-04-07 13:32:47	
	at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) ~[HikariCP-3.4.5.jar!/:?]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.util.Query.executeQuery(Query.java:304) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.util.Query.executeAndFetch(Query.java:423) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.dao.PostgresQueueDAO.lambda$peekMessages$26(PostgresQueueDAO.java:300) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.dao.PostgresBaseDAO.query(PostgresBaseDAO.java:225) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.dao.PostgresQueueDAO.peekMessages(PostgresQueueDAO.java:299) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.dao.PostgresQueueDAO.popMessages(PostgresQueueDAO.java:314) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.dao.PostgresQueueDAO.lambda$pollMessages$5(PostgresQueueDAO.java:100) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.dao.PostgresBaseDAO.getWithTransactionWithOutErrorPropagation(PostgresBaseDAO.java:166) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.dao.PostgresQueueDAO.pollMessages(PostgresQueueDAO.java:99) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.postgres.dao.PostgresQueueDAO.pop(PostgresQueueDAO.java:81) ~[conductor-postgres-persistence-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.core.execution.tasks.SystemTaskWorker.pollAndExecute(SystemTaskWorker.java:113) ~[conductor-core-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at com.netflix.conductor.core.execution.tasks.SystemTaskWorker.lambda$startPolling$0(SystemTaskWorker.java:79) ~[conductor-core-3.4.1-SNAPSHOT.jar!/:3.4.1-SNAPSHOT]
2022-04-07 13:32:47	
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
2022-04-07 13:32:47	
	at java.util.concurrent.FutureTask.runAndReset(Unknown Source) [?:?]
2022-04-07 13:32:47	
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
2022-04-07 13:32:47	
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
2022-04-07 13:32:47	
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
2022-04-07 13:32:47	
	at java.lang.Thread.run(Unknown Source) [?:?]
2022-04-07 13:32:47	
Caused by: java.net.SocketException: Connection reset
2022-04-07 13:32:47	
	at java.net.SocketInputStream.read(Unknown Source) ~[?:?]
2022-04-07 13:32:47	
	at java.net.SocketInputStream.read(Unknown Source) ~[?:?]
2022-04-07 13:32:47	
	at sun.security.ssl.SSLSocketInputRecord.read(Unknown Source) ~[?:?]
2022-04-07 13:32:47	
	at sun.security.ssl.SSLSocketInputRecord.readHeader(Unknown Source) ~[?:?]
2022-04-07 13:32:47	
	at sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(Unknown Source) ~[?:?]
2022-04-07 13:32:47	
	at sun.security.ssl.SSLSocketImpl.readApplicationRecord(Unknown Source) ~[?:?]
2022-04-07 13:32:47	
	at sun.security.ssl.SSLSocketImpl$AppInputStream.read(Unknown Source) ~[?:?]
2022-04-07 13:32:47	
	at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:161) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:128) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:113) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:73) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.core.PGStream.receiveChar(PGStream.java:443) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2057) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:323) ~[postgresql-42.2.20.jar!/:42.2.20]
2022-04-07 13:32:47	
	... 24 more

Azure Blob Storage & Azure Service Bus Integration

Azure Blob Storage & Azure Service Bus

Hi,
I'm an AI engineer, interested in using Netflix Conductor to orchestrate a microservices Architecture.

I actually have just 1 question, due to the absence of a clearly doc about it: Is it true that I can use Azure Blob storage to store metadata and payloads (completely, not just payloads over a threshold, so there would be no longer the need to use Redis), and Azure Service Bus as Event Handler (this is absent from the doc...)?
If so, which are the config.properties files I need to modify?

Thanks a lot in advance,
Nicholas Dascanio

[QUESTION]: why getWorkflow should be executed in transaction

Can someone kindly help me understand why this should be transactional?

        WorkflowModel workflow = getWithRetriedTransactions(tx -> readWorkflow(tx, workflowId));

        if (workflow != null) {
            if (includeTasks) {
                List<TaskModel> tasks = getTasksForWorkflow(workflowId);
                tasks.sort(Comparator.comparingInt(TaskModel::getSeq));
                workflow.setTasks(tasks);
            }
        }
        return workflow;
    }

pollMessages() in PostgresQueueDAO does not break when popMessages() returns empty message list.

Describe the bug
In pollMessages implementation we need to address two issues when messagesSlices object is empty.

  1. The loop continues when there are no eligible messages in the queue. This leads to unnecessary querying of the database until the timeout is reached, and the sleep time of 100ms escalates the problem. The mix of these two together causes high queries per second at scale.
  2. When the number of messages is less than the count specified, the thread blocks and holds onto the previous messages in the memory until timeout happens or the count is reached.

Please share your thoughts on this. If we agree, I can raise a Merge Request for the same.

Details
Conductor version: any
Persistence implementation: Postgres
Queue implementation: Postgres

To Reproduce
Steps to reproduce the behavior:

  1. Run conductor with Postgres as the persistence layer for Queue implementation.
  2. Monitor QPS in Postgres using pg_stat_statements
    Note: Here we are only seeing the effect of pollMessages called from the WorkflowReconciler where the timeout is 2000ms and count depends on the CPU core.

Expected behavior

Return the messages that are present instead of waiting and retrying till the timeout or count.

Screenshots
Just started the service and execute pg_stat_statements. Below, is the number of queries executed per minute from one instance just for WorkflowReconciler. The QSP increases exponentially if there are multiple instances and if the workers poll for activity.

Screenshot 2023-06-20 at 3 55 16 PM

Note: Here we are only seeing the effect of pollMessages called from the WorkflowReconciler. There are other places where pollMessage is being invoked.

Additional context
The MySQL implementation of the poll does not have this while(true) loop.

conductor-es7-persistence in maven repo is over packages.

Describe the bug
conductor-es7-persistence in maven repo is a shadow jar with many dependencies packaged directly.
One side effect as I know if integrating it with conductor, spring boot actuator endpoints will not be enabled so no way to leverage features supported by actuator, for example, metrics/prometheus.

Details
Conductor version: 3.13.3
Persistence implementation: Cassandra, Postgres, MySQL, Dynomite etc
Queue implementation: Postgres, MySQL, Dynoqueues etc
Lock: Redis or Zookeeper?
Workflow definition:
Task definition:
Event handler definition:

To Reproduce
Download the jar and check its size or unzip it.

Expected behavior
jar in maven repo should be a lightweight jar instead of shadow jar with full of dependencies embedded.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

file index/es7-persistence/build.gradle

`
// Drop the classifier and delete jar task actions to replace the regular jar artifact with the shadow artifact
shadowJar {
configurations = [project.configurations.shadow]
classifier = null

// Service files are not included by default.
mergeServiceFiles {
    include 'META-INF/services/*'
    include 'META-INF/maven/*'
}

}

jar.enabled = false
jar.dependsOn shadowJar
`

Unable to override postgres schema_name as "conductor" in conductor 3.7.3

Describe the bug
I am trying to upgrade conductor 3.7.3 version but after upgrade conductor server not starting because in this version schema as "public" is hardcoded in PostgresConfiguration which not allowing to override any other schema name like "conductor" etc.
For my project need ,I have use only different schema name thats why this issue need to fix so that I can override db schema.

Suggested Fix
I spend some time on this conductor repo to fixed the issue so that anyone can override conductor schema property but I am unable to raise PR against tag v3.7.3 so that this fix can review and merge. Fixed present in below fork .
Netflix/conductor@main...trivedishalini:conductor-v3.7.3

Please take a look and suggest further as I have project release coming up in next 2 weeks .

Note
Fix needed in v3.7.3 conductor tag

Details
Conductor-Server version: 3.7.3
Persistence implementation: Postgress
Queue implementation: Postgres
Postgres_schema_name: conductor
Postgres_database_name: conductor
Postgres_database_user: conductor
Lock: Redis
Workflow definition: N/A
Task definition: N/A
Event handler definition: N/A

Below Screenshots for conductor PostgresConfiguration class which have schema hardcoded as public
image

Out of the box build / test failure

Describe the bug
Pulling down the latest version and running
./gradlew clean build --no-build-cache
Postgres SQL Test Failure

2023-03-25 22:29:48.404 ERROR 32188 --- [led-task-pool-1] c.n.c.c.r.WorkflowReconciler : Error when polling for workflows

com.netflix.conductor.core.exception.NonTransientException: HikariDataSource HikariDataSource (HikariPool-3) has been closed.
at com.netflix.conductor.postgres.dao.PostgresBaseDAO.getWithTransactionWithOutErrorPropagation(PostgresBaseDAO.java:171) ~[main/:?]
at com.netflix.conductor.postgres.dao.PostgresQueueDAO.pollMessages(PostgresQueueDAO.java:118) ~[main/:?]
at com.netflix.conductor.postgres.dao.PostgresQueueDAO.pop(PostgresQueueDAO.java:96) ~[main/:?]
at com.netflix.conductor.core.reconciliation.WorkflowReconciler.pollAndSweep(WorkflowReconciler.java:66) [conductor-core-3.13.5.jar:3.13.5]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) [spring-context-5.3.19.jar:5.3.19]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.3.19.jar:5.3.19]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.sql.SQLException: HikariDataSource HikariDataSource (HikariPool-3) has been closed.
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:96) ~[HikariCP-4.0.3.jar:?]
at com.netflix.conductor.postgres.dao.PostgresBaseDAO.getWithTransactionWithOutErrorPropagation(PostgresBaseDAO.java:156) ~[main/:?]
... 15 more

2023-03-25 22:29:48.725 INFO 32188 --- [ionShutdownHook] c.z.h.HikariDataSource : HikariPool-3 - Shutdown completed.

[DOC]: Community Server

What are you missing in the docs

Proposed text

Can someone elaborate what this means?

How can I use this binary in my docker builds?
Follow the build process for docker at the main repo and replace the conductor server with the output from this repository.

Also is there any documentation for all the different settings that are in the application.properties and config.properties files?
Also, how does the docker compose build process work with the gradle, application.properties and config.properties?

Can't run Conductor with Postgres: Application failed to start

Describe the bug
When I run the following command to deploy Conductor with Postgres:
docker-compose -f docker-compose.yaml -f docker-compose-postgres.yaml up
As described on https://conductor.netflix.com/architecture.html, I get the following messages:

conductor-server_1 | 18335 [main] INFO org.apache.catalina.core.StandardService [] - Stopping service [Tomcat]
conductor-server_1 | 18442 [main] INFO org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener [] -
conductor-server_1 |
conductor-server_1 | Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
conductor-server_1 | 18522 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter [] -
conductor-server_1 |
conductor-server_1 | ***************************
conductor-server_1 | APPLICATION FAILED TO START
conductor-server_1 | ***************************
conductor-server_1 |
conductor-server_1 | Description:
conductor-server_1 |
conductor-server_1 | Parameter 2 of constructor in com.netflix.conductor.core.execution.DeciderService required a bean of type 'com.netflix.conductor.dao.MetadataDAO' that could not be found.
conductor-server_1 |
conductor-server_1 |
conductor-server_1 | Action:
conductor-server_1 |
conductor-server_1 | Consider defining a bean of type 'com.netflix.conductor.dao.MetadataDAO' in your configuration.

Running Conductor using Dynomite, using the following command, works just fine:
docker-compose -f docker-compose.yaml -f docker-compose-dynomite.yaml up
But it doesn't work with PostgreSQL.

Details
Conductor version: v3.8.1
Persistence implementation: Postgres
Queue implementation: N/A
Lock: N/A
Workflow definition: N/A
Task definition: N/A
Event handler definition: N/A

To Reproduce
Steps to reproduce the behavior:
Run command:
docker-compose -f docker-compose.yaml -f docker-compose-postgres.yaml up

Expected behavior
I expect Conductor to start up with PostgreSQL.

Screenshots
N/A

Additional context
Is there anything else needed to run Conductor with PostgreSQL (instead of Dynomite)? If so, where can I find documentation to run Conductor with PostgreSQL?

cannot create new task definitions with MySQL integration

bug
When posting a new task definition via the UI or the community server API, the following error occurs :

{"status":500,"message":"Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Receiver class com.netflix.conductor.mysql.dao.MySQLMetadataDAO does not define or inherit an implementation of the resolved method 'abstract com.netflix.conductor.common.metadata.tasks.TaskDef updateTaskDef(com.netflix.conductor.common.metadata.tasks.TaskDef)' of interface com.netflix.conductor.dao.MetadataDAO.","instance":"conductor-server","retryable":false}

build :Conductor v3.11.0-SNAPSHOT using Java 17.0.4

Details
Conductor version: 3.11.0
Persistence implementation: MySQL
Queue implementation: MySQL

Are MySQL Events working? (Also PostgreSQL)

Hi,

Are MySQL events working? When following the instructions here everything works as expected, but when adding:

{
  "name": "test_workflow_for_eventHandler2",
  "description": "A test workflow to start another workflow with EventHandler",
  "version": 1,
  "tasks": [
    {
      "name": "test_start_workflow_event2",
      "taskReferenceName": "start_workflow_with_event2",
      "type": "EVENT",
      "sink": "conductor"
    },
    {
      "name": "test_task_tobe_completed_by_eventHandler2",
      "taskReferenceName": "test_task_tobe_completed_by_eventHandler2",
      "type": "WAIT"
    }
  ]
}
{
  "name": "test_workflow_startedBy_eventHandler2",
  "description": "A test workflow which is started by EventHandler, and then goes on to complete task in another workflow.",
  "version": 1,
  "tasks": [
    {
      "name": "test_complete_task_event2",
      "taskReferenceName": "complete_task_with_event2",
      "inputParameters": {
        "sourceWorkflowId": "${workflow.input.sourceWorkflowId}"
      },
      "type": "EVENT",
      "sink": "conductor"
    }
  ]
}

{
  "name": "test_start_workflow2",
  "event": "conductor:test_workflow_for_eventHandler2:start_workflow_with_event2",
  "actions": [
    {
      "action": "start_workflow",
      "start_workflow": {
        "name": "test_workflow_startedBy_eventHandler2",
        "input": {
          "sourceWorkflowId": "${workflowInstanceId}"
        }
      }
    }
  ],
  "active": true
}

{
  "name": "test_complete_task_event2",
  "event": "conductor:test_workflow_startedBy_eventHandler2:complete_task_with_event2",
  "actions": [
    {
        "action": "complete_task",
        "complete_task": {
            "workflowId": "${sourceWorkflowId}",
            "taskRefName": "test_task_tobe_completed_by_eventHandler"
         }
    }
  ],
  "active": true
}

then starting test_workflow_for_eventHandler2 the event works, it turns green, but the test_workflow_startedBy_eventHandler2 does not start. Am I missing something?

Thanks.

After workflow repaired task is executed two times

Describe the bug
We notices that task is executed twice sometimes. After we enabled debug logs we found out that after WorkflowRepairService re-queued task for some reason the task was exeucted two times:

INFO  2022-07-04T07:56:38,583 147034  com.netflix.conductor.core.reconciliation.WorkflowRepairService [sweeper-thread-1]  Task 425d9c94-dc30-441b-b21b-73ccc5118829 in workflow d6e20f06-c884-4c25-81a4-4a7c0eb3827e re-queued for repairs

DEBUG 2022-07-04T07:56:42,994 151445  com.netflix.conductor.contribs.tasks.http.HttpTask  [system-task-worker-1]  Response: 200, {bills={partyAUTHOR={biId=5200737, status=OPEN}, partyUNIVERSITY={biId=5200740, status=OPEN}}}, task:425d9c94-dc30-441b-b21b-73ccc5118829

DEBUG 2022-07-04T07:56:42,994 151445  com.netflix.conductor.contribs.tasks.http.HttpTask  [system-task-worker-0]  Response: 200, {bills={partyAUTHOR={biId=5200738, status=OPEN}, partyUNIVERSITY={biId=5200739, status=OPEN}}}, task:425d9c94-dc30-441b-b21b-73ccc5118829

What does WorkflowRepairService do and do we need it at all? Why does it happen even when we have lock service?
Thanks.

Details
Conductor version: 3.7.2
Persistence implementation: Postgres
Queue implementation: Postgres
Lock: Redis

To Reproduce
This happens from time-to-time, we did not find steps to reproduce

Expected behavior
HTTP task must be executed only once.

HTTP task calling HTTPS with certs

Hi Everyone,

Need help to call URL's which are HTTPS , currently getting below ERROR :

Failed to invoke HTTP task due to: java.lang.Exception: I/O error on POST request for "https://localhost:8080/uri": PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
where to configure cert in conductor server

When trying to run netflix conductor docker with postgres, getting this exception

Describe the bug
I got the latest version of the conductor repo synced in my local machine. I ran the docker build and then compose up command with postgres persistence.

docker-compose -f docker-compose.yaml -f docker-compose-postgres.yaml up

I am getting this error.

docker-conductor-server-1 |
docker-conductor-server-1 | Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
docker-conductor-server-1 | 5328 [main] ERROR org.springframework.boot.SpringApplication [] - Application run failed
docker-conductor-server-1 | org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowResource' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-rest-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/rest/controllers/WorkflowResource.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowServiceImpl' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/service/WorkflowServiceImpl.class]:

Details
Conductor version:
Persistence implementation:Postgres,
Queue implementation: Dynoqueues
Lock: Redis or Zookeeper?
Workflow definition:
Task definition:
Event handler definition:

To Reproduce
Steps to reproduce the behavior:

  1. Get the main branch of the conductor synced on the local machine.
  2. Add this dependency in the build.gradle of the conductor
    runtimeOnly group: 'com.netflix.conductor', name: 'conductor-postgres-persistence', version: '3.10.0'
  3. Run docker-compose build and up using the following command
    docker-compose -f docker-compose.yaml -f docker-compose-postgres.yaml up

Expected behavior
Conductor should be up with postgres as persistence.

Screenshots
Adding the stacktrace here

docker-conductor-server-1 |
docker-conductor-server-1 | Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
docker-conductor-server-1 | 5328 [main] ERROR org.springframework.boot.SpringApplication [] - Application run failed
docker-conductor-server-1 | org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowResource' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-rest-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/rest/controllers/WorkflowResource.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowServiceImpl' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/service/WorkflowServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowExecutor' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/WorkflowExecutor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'deciderService' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/DeciderService.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'postgresMetadataDAO' defined in class path resource [com/netflix/conductor/postgres/config/PostgresConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.netflix.conductor.postgres.dao.PostgresMetadataDAO]: Factory method 'postgresMetadataDAO' threw exception; nested exception is java.lang.NoClassDefFoundError: com/netflix/conductor/core/exception/ApplicationException
docker-conductor-server-1 | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at com.netflix.conductor.Conductor.main(Conductor.java:37) [classes!/:3.11.0-SNAPSHOT]
docker-conductor-server-1 | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
docker-conductor-server-1 | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
docker-conductor-server-1 | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
docker-conductor-server-1 | at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
docker-conductor-server-1 | at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) [conductor-server-3.11.0-SNAPSHOT-boot.jar:3.11.0-SNAPSHOT]
docker-conductor-server-1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) [conductor-server-3.11.0-SNAPSHOT-boot.jar:3.11.0-SNAPSHOT]
docker-conductor-server-1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) [conductor-server-3.11.0-SNAPSHOT-boot.jar:3.11.0-SNAPSHOT]
docker-conductor-server-1 | at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) [conductor-server-3.11.0-SNAPSHOT-boot.jar:3.11.0-SNAPSHOT]
docker-conductor-server-1 | Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowServiceImpl' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/service/WorkflowServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowExecutor' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/WorkflowExecutor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'deciderService' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/DeciderService.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'postgresMetadataDAO' defined in class path resource [com/netflix/conductor/postgres/config/PostgresConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.netflix.conductor.postgres.dao.PostgresMetadataDAO]: Factory method 'postgresMetadataDAO' threw exception; nested exception is java.lang.NoClassDefFoundError: com/netflix/conductor/core/exception/ApplicationException
docker-conductor-server-1 | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.19.jar!/:5.3.19]

Additional context

I can see that tables are created in the postgres schema but conductor is erroring out after that because of this error.

Conductor server deployment is failing with elasticsearch 7

Describe the bug
Conductor server deployment is failing with elasticsearch 7.

Details
Conductor version: 3.13.8
Persistence implementation: Postgres
Lock: Redis.
Indexing: Elasticsearch 7

Expected behavior
Conducter server should run with elasticsearch oss 7

Screenshots
com.netflix.conductor.core.exception.TransientException: Invalid or missing build flavor [oss]
at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.searchWorkflowSummary(ElasticSearchRestDAOV7.java:780) ~[conductor-es7-persistence-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.core.dal.ExecutionDAOFacade.searchWorkflowSummary(ExecutionDAOFacade.java:676) ~[conductor-core-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.service.ExecutionService.search(ExecutionService.java:387) ~[conductor-core-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.service.WorkflowServiceImpl.searchWorkflows(WorkflowServiceImpl.java:329) ~[conductor-core-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.service.WorkflowServiceImpl$$FastClassBySpringCGLIB$$c01ac20d.invoke() ~[conductor-core-3.13.8.jar!/:3.13.8]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at com.netflix.conductor.service.WorkflowServiceImpl$$EnhancerBySpringCGLIB$$1e93ee82.searchWorkflows() ~[conductor-core-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.rest.controllers.WorkflowResource.search(WorkflowResource.java:222) ~[conductor-rest-3.13.8.jar!/:3.13.8]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) [spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) [spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) [spring-webmvc-5.3.19.jar!/:5.3.19]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) [tomcat-embed-core-9.0.62.jar!/:2.5]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.19.jar!/:5.3.19]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [tomcat-embed-core-9.0.62.jar!/:2.5]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.19.jar!/:5.3.19]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.19.jar!/:5.3.19]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) [spring-boot-actuator-2.6.7.jar!/:2.6.7]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.19.jar!/:5.3.19]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.19.jar!/:5.3.19]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:769) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.62.jar!/:?]
at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: org.elasticsearch.ElasticsearchException: Invalid or missing build flavor [oss]
at org.elasticsearch.client.RestHighLevelClient.performClientRequest(RestHighLevelClient.java:2084) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1732) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1702) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1672) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:1128) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.searchObjects(ElasticSearchRestDAOV7.java:1119) ~[conductor-es7-persistence-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.searchObjectsViaExpression(ElasticSearchRestDAOV7.java:795) ~[conductor-es7-persistence-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.searchWorkflowSummary(ElasticSearchRestDAOV7.java:770) ~[conductor-es7-persistence-3.13.8.jar!/:3.13.8]
... 69 more
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.fasterxml.jackson.module.afterburner.util.MyClassLoader (jar:file:/app/libs/conductor-community-server-3.13.8-boot.jar!/BOOT-INF/lib/jackson-module-afterburner-2.13.2.jar!/) to method java.lang.ClassLoader.findLoadedClass(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.fasterxml.jackson.module.afterburner.util.MyClassLoader
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2023-09-06 16:53:47.168 [http-nio-8443-exec-4] ERROR com.netflix.conductor.rest.controllers.ApplicationExceptionMapper [] - Error TransientException url: '/api/workflow/search'
com.netflix.conductor.core.exception.TransientException: Invalid or missing build flavor [oss]
at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.searchWorkflowSummary(ElasticSearchRestDAOV7.java:780) ~[conductor-es7-persistence-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.core.dal.ExecutionDAOFacade.searchWorkflowSummary(ExecutionDAOFacade.java:676) ~[conductor-core-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.service.ExecutionService.search(ExecutionService.java:387) ~[conductor-core-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.service.WorkflowServiceImpl.searchWorkflows(WorkflowServiceImpl.java:329) ~[conductor-core-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.service.WorkflowServiceImpl$$FastClassBySpringCGLIB$$c01ac20d.invoke() ~[conductor-core-3.13.8.jar!/:3.13.8]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[extensions-2.3.0-conductor-update-20230830064614.jar:3.13.8]
at com.netflix.conductor.service.WorkflowServiceImpl$$EnhancerBySpringCGLIB$$1e93ee82.searchWorkflows() ~[conductor-core-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.rest.controllers.WorkflowResource.search(WorkflowResource.java:222) ~[conductor-rest-3.13.8.jar!/:3.13.8]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) [spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) [spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.19.jar!/:5.3.19]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) [spring-webmvc-5.3.19.jar!/:5.3.19]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) [tomcat-embed-core-9.0.62.jar!/:2.5]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.19.jar!/:5.3.19]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [tomcat-embed-core-9.0.62.jar!/:2.5]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.19.jar!/:5.3.19]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.19.jar!/:5.3.19]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) [spring-boot-actuator-2.6.7.jar!/:2.6.7]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.19.jar!/:5.3.19]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.19.jar!/:5.3.19]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.19.jar!/:5.3.19]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:769) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.62.jar!/:?]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.62.jar!/:?]
at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: org.elasticsearch.ElasticsearchException: Invalid or missing build flavor [oss]
at org.elasticsearch.client.RestHighLevelClient.performClientRequest(RestHighLevelClient.java:2084) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1732) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1702) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1672) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:1128) ~[elasticsearch-rest-high-level-client-7.15.2.jar!/:7.15.2]
at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.searchObjects(ElasticSearchRestDAOV7.java:1119) ~[conductor-es7-persistence-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.searchObjectsViaExpression(ElasticSearchRestDAOV7.java:795) ~[conductor-es7-persistence-3.13.8.jar!/:3.13.8]
at com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7.searchWorkflowSummary(ElasticSearchRestDAOV7.java:770) ~[conductor-es7-persistence-3.13.8.jar!/:3.13.8]

Additional context
Add any other context about the problem here.

Postgres indexing problem

Describe the bug
I try to use postgres with indexing insted of elastic. And execute a simple test workflow but conductor can't update task_index and has an error:

docker-postgres-1  | 2023-07-26 18:00:56.578 UTC [2661] ERROR:  value too long for type character varying(32)
docker-postgres-1  | 2023-07-26 18:00:56.578 UTC [2661] STATEMENT:  INSERT INTO task_index (task_id, task_type, task_def_name, status, start_time, update_time, workflow_type, json_data)VALUES ($1, $2, $3, $4, $5, $6, $7, $8::JSONB) ON CONFLICT (task_id) DO UPDATE SET task_type = EXCLUDED.task_type, task_def_name = EXCLUDED.task_def_name, status = EXCLUDED.status, update_time = EXCLUDED.update_time, json_data = EXCLUDED.json_data
conductor-server   | 267641 [http-nio-8080-exec-20] ERROR com.netflix.conductor.core.dal.ExecutionDAOFacade [] - Error updating task: c979373e-f80a-4de9-a992-7ae712c0b079 in workflow: 09c197b2-d91a-4776-9aea-2766f622afb3
conductor-server   | com.netflix.conductor.core.exception.NonTransientException: ERROR: value too long for type character varying(32)
conductor-server   |    at com.netflix.conductor.postgres.dao.PostgresBaseDAO.getWithRetriedTransactions(PostgresBaseDAO.java:147) ~[conductor-postgres-persistence-3.13.8.jar!/:3.13.8]
conductor-server   |    at com.netflix.conductor.postgres.dao.PostgresBaseDAO.queryWithTransaction(PostgresBaseDAO.java:209) ~[conductor-postgres-persistence-3.13.8.jar!/:3.13.8]
conductor-server   |    at com.netflix.conductor.postgres.dao.PostgresIndexDAO.indexTask(PostgresIndexDAO.java:101) ~[conductor-postgres-persistence-3.13.8.jar!/:3.13.8]
conductor-server   |    at com.netflix.conductor.core.dal.ExecutionDAOFacade.updateTask(ExecutionDAOFacade.java:514) ~[conductor-core-3.14.0-SNAPSHOT.jar!/:3.14.0-SNAPSHOT]
conductor-server   |    at com.netflix.conductor.service.ExecutionService.poll(ExecutionService.java:172) ~[conductor-core-3.14.0-SNAPSHOT.jar!/:3.14.0-SNAPSHOT]

The main problem is that task_index table has field task_type which is type varchar(32) but conductor tries to insert there wrong value.
On the first screenshoot I see Task type = SIMPLE and Task name = TestWorkerDynamicSubWorkflowForkInput but on the second screenshoot on the postgres base I see Task type = TestTransferChannelWorker1 and Task name = TestTransferChannelWorker1. And here is a problem:

  • the filed type must be more then varchar(32)
    or
  • you must write right value to this field(task type). Not a task name or something like this.

Details
Conductor version: 3.13.8
Persistence implementation: Postgres
Queue implementation: Redis
Lock: Redis or Zookeeper?
Workflow definition:
Task definition:
Event handler definition:

To Reproduce
Steps to reproduce the behavior:

  1. Use postgres index insted of elastic
  2. Create workflow with task which has name more then 32 symbols;
  3. Run it
  4. See conductor server logs to catch the error.

Expected behavior
Update operation will be successful.

Screenshots
image
image

Unable to get CORE_CONDUCTOR_VERSION

Describe the bug
During CI build, existing command is unable to get CORE_CONDUCTOR_VERSION
Going by the line
| | +--- com.netflix.conductor:conductor-core:3.10.7 -> 3.13.8 (*)
Need to change command.

Details
Conductor version: 3.13.8
Persistence implementation: NA
Queue implementation: NA
Lock: Redis or Zookeeper? NA
Workflow definition: NA
Task definition: NA
Event handler definition: NA

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

conducto is failed to load after restarting docker compose with postgress (could not upload workflows)

I have manages to fixed this issue :
#91.

so now i have postgress working and elastic - but now after restarting the conductor refuse to work
and throw lot of exceptions :

To Reproduce
Steps to reproduce the behavior:
added runtimeOnly group: 'com.netflix.conductor', name: 'conductor-postgres-persistence', version: '3.9.1' under build.gradle

run docker-compoe -f docker-compose.yaml -f docker-compose-postgress.yaml

add workflow
run workflow
run docker-compose down
run docker-compose up

 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
docker-conductor-server-1  | 38862 [main] ERROR org.springframework.boot.SpringApplication [] - Application run failed
docker-conductor-server-1  | org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowResource' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-rest-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/rest/controllers/WorkflowResource.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowServiceImpl' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/service/WorkflowServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowExecutor' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/WorkflowExecutor.class]: Unsatisfied dependency expressed through constructor parameter 5; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'executionDAOFacade' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/core/dal/ExecutionDAOFacade.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'es6IndexRestDAO': Invocation of init method failed; nested exception is java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-0 [ACTIVE]
 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowServiceImpl' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/service/WorkflowServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowExecutor' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/WorkflowExecutor.class]: Unsatisfied dependency expressed through constructor parameter 5; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'executionDAOFacade' defined in URL [jar:file:/app/libs/conductor-server-3.10.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.10.0-SNAPSHOT.jar!/com/netflix/conductor/core/dal/ExecutionDAOFacade.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'es6IndexRestDAO': Invocation of init method failed; nested exception is java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-0 [ACTIVE]
docker-conductor-server-1  | 127302 [pool-2-thread-1] ERROR com.netflix.conductor.postgres.dao.PostgresMetadataDAO [] - refresh TaskDefs failed
docker-conductor-server-1  | com.netflix.conductor.core.exception.ApplicationException: BACKEND_ERROR - HikariDataSource HikariDataSource (HikariPool-1) has been closed.
docker-conductor-server-1  | 	at com.netflix.conductor.postgres.dao.PostgresBaseDAO.getWithTransaction(PostgresBaseDAO.java:136) ~[conductor-postgres-persistence-3.9.1.jar!/:3.9.1]
docker-conductor-server-1  | 	at com.netflix.conductor.postgres.dao.PostgresBaseDAO.lambda$getWithRetriedTransactions$3(PostgresBaseDAO.java:147) ~[conductor-postgres-persistence-3.9.1.jar!/:3.9.1]
docker-conductor-server-1  | 	at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:329) ~[spring-retry-1.3.3.jar!/:?]
docker-conductor-server-1  | 	at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:209) ~[spring-retry-1.3.3.jar!/:?]
docker-conductor-server-1  | 	at com.netflix.conductor.postgres.dao.PostgresBaseDAO.getWithRetriedTransactions(PostgresBaseDAO.java:147) ~[conductor-postgres-persistence-3.9.1.jar!/:3.9.1]
docker-conductor-server-1  | 	at com.netflix.conductor.postgres.dao.PostgresBaseDAO.withTransaction(PostgresBaseDAO.java:194) ~[conductor-postgres-persistence-3.9.1.jar!/:3.9.1]
docker-conductor-server-1  | 	at com.netflix.conductor.postgres.dao.PostgresMetadataDAO.refreshTaskDefs(PostgresMetadataDAO.java:472) ~[conductor-postgres-persistence-3.9.1.jar!/:3.9.1]
docker-conductor-server-1  | 	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
docker-conductor-server-1  | 	at java.util.concurrent.FutureTask.runAndReset(Unknown Source) [?:?]
docker-conductor-server-1  | 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
docker-conductor-server-1  | 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
docker-conductor-server-1  | 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
docker-conductor-server-1  | 	at java.lang.Thread.run(Unknown Source) [?:?]
docker-conductor-server-1  | Caused by: java.sql.SQLException: HikariDataSource HikariDataSource (HikariPool-1) has been closed.
docker-conductor-server-1  | 	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:96) ~[HikariCP-4.0.3.jar!/:?]
docker-conductor-server-1  | 	at com.netflix.conductor.postgres.dao.PostgresBaseDAO.getWithTransaction(PostgresBaseDAO.java:119) ~[conductor-postgres-persistence-3.9.1.jar!/:3.9.1]

[QUESTION]: Publishing messages to RabbitMQ using AMQP #3408

I am trying to publish messages to RabbitMQ using AMQP.
I activated the AMQP module in the Conductor community, I made the relevant configurations, but only queues are formed, and when a workflow is finished, nothing is pushed to the queues. How do I get the messages to be published?

conductor.workflow-status-listener.archival.ttlDuration is not used

Describe the bug
conductor.workflow-status-listener.archival.ttlDuration property is completely ignored. executionDAOFacade.removeWorkflow() (here and here) is called instead of executionDAOFacade.removeWorkflowWithExpiry() (as it was before here and here).

Details
Conductor version: latest

Expected behavior
conductor.workflow-status-listener.archival.ttlDuration property being used.

zookeeper lock znode not getting cleared after workflows are finalized

Describe the bug
As zookeeper takes lock for any operation, it creates znodes in below format
/conductor/conductor-lock/workflow-uuid/sequential-epephermal-uuid

Now these epephermal nodes get deleted but the the znode at workflow uuid is persistence once and is not getting deleted, and and we have more and more workflows getting processed, number of these persistence znodes increase inside the parent conductor-lock znode. Zookeeper suggests max size of znode to be 1 MB, this ever growing znode is a problem.

To Reproduce
Steps to reproduce the behavior:

  1. Go to conductor
  2. connect to zookeeper server
  3. run a workflow and check znodes getting created for workflow
  4. even after worklow execution has completed, workflow znode stays

Expected behavior
workflow znode should be deleted after workflow is finalized

Log4j configuration file cannot be used correctly

Describe the bug
Log4j configuration file cannot be used correctly. It is picking log4j2 from location=jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml

This is causing override to the log4j configuration specified in environment variable

Details
Conductor version:3.15.0
Persistence implementation: MySQL
Queue implementation: MySQL
Lock: Redis?
Workflow definition:
Task definition:
Event handler definition:

In Docker file, For conductor server environment config is as below for debug
conductor-server:
environment:
- CONFIG_PROP=config-mysql.properties
- JAVA_OPTS=-Dlog4j2.debug=true -Dlog4j2.configurationFile=/app/config/log4j-file-appender.properties

When we specify the logging configuration in the docker file. It is still picking the log file from below location

DEBUG StatusLogger LoggerContext[name=17a7cec2, org.apache.logging.log4j.core.LoggerContext@31b7dea0] started OK with configuration XmlConfiguration[location=jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml].

Complete Logs

DEBUG StatusLogger Using ShutdownCallbackRegistry class org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.netflix.conductor.Conductor
DEBUG StatusLogger Took 0.106096 seconds to load 228 plugins from org.springframework.boot.loader.LaunchedURLClassLoader@17a7cec2
DEBUG StatusLogger PluginManager 'Converter' found 48 plugins
DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false.false-1
DEBUG StatusLogger Initializing Thread Context Data Service Providers
DEBUG StatusLogger Starting LoggerContext[name=17a7cec2, org.apache.logging.log4j.core.LoggerContext@31b7dea0]...
DEBUG StatusLogger Reconfiguration started for context[name=17a7cec2] at URI null (org.apache.logging.log4j.core.LoggerContext@31b7dea0) with optional ClassLoader: null
DEBUG StatusLogger Thread Context Data Service Provider initialization complete
DEBUG StatusLogger PluginManager 'ConfigurationFactory' found 5 plugins
DEBUG StatusLogger Using configurationFactory org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@3ecf72fd
DEBUG StatusLogger Apache Log4j Core 2.17.1 initializing configuration org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@2aafb23c
DEBUG StatusLogger Installed 2 script engines
INFO StatusLogger Cannot initialize scripting support because this JRE does not support it.
java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "javax.script.ScriptEngine.get(String)" is null
at org.luaj.vm2.script.LuaScriptEngineFactory.getParameter(Unknown Source)
at org.apache.logging.log4j.core.script.ScriptManager.(ScriptManager.java:84)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:225)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:699)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:716)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:270)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:137)
at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:55)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:363)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)
at com.netflix.conductor.Conductor.(Conductor.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
DEBUG StatusLogger PluginManager 'Core' found 128 plugins
DEBUG StatusLogger PluginManager 'Level' found 0 plugins
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger Building Plugin[name=loggers, class=org.apache.logging.log4j.core.config.LoggersPlugin].
DEBUG StatusLogger createLoggers(={})
DEBUG StatusLogger Building Plugin[name=appenders, class=org.apache.logging.log4j.core.config.AppendersPlugin].
DEBUG StatusLogger createAppenders(={})
WARN StatusLogger No Root logger was configured, creating default ERROR-level Root logger with Console appender
DEBUG StatusLogger PluginManager 'Converter' found 48 plugins
DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.false.false-2
DEBUG StatusLogger Configuration org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@2aafb23c initialized
DEBUG StatusLogger Starting configuration org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@2aafb23c
DEBUG StatusLogger Started configuration org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@2aafb23c OK.
TRACE StatusLogger Stopping org.apache.logging.log4j.core.config.DefaultConfiguration@383534aa...
TRACE StatusLogger DefaultConfiguration notified 1 ReliabilityStrategies that config will be stopped.
TRACE StatusLogger DefaultConfiguration stopping root LoggerConfig.
TRACE StatusLogger DefaultConfiguration notifying ReliabilityStrategies that appenders will be stopped.
TRACE StatusLogger DefaultConfiguration stopping remaining Appenders.
DEBUG StatusLogger Shutting down OutputStreamManager SYSTEM_OUT.false.false-1
DEBUG StatusLogger OutputStream closed
DEBUG StatusLogger Shut down OutputStreamManager SYSTEM_OUT.false.false-1, all resources released: true
DEBUG StatusLogger Appender DefaultConsole-1 stopped with status true
TRACE StatusLogger DefaultConfiguration stopped 1 remaining Appenders.
TRACE StatusLogger DefaultConfiguration cleaning Appenders from 1 LoggerConfigs.
DEBUG StatusLogger Stopped org.apache.logging.log4j.core.config.DefaultConfiguration@383534aa OK
TRACE StatusLogger Reregistering MBeans after reconfigure. Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@2641e737
TRACE StatusLogger Reregistering context (1/1): '17a7cec2' org.apache.logging.log4j.core.LoggerContext@31b7dea0
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=StatusLogger'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=ContextSelector'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name='
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=Appenders,name=
'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=AsyncAppenders,name='
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=AsyncLoggerRingBuffer'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=
,subtype=RingBuffer'
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=StatusLogger
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=ContextSelector
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Appenders,name=DefaultConsole-2
TRACE StatusLogger Using default SystemClock for timestamps.
DEBUG StatusLogger org.apache.logging.log4j.core.util.SystemClock supports precise timestamps.
TRACE StatusLogger Using DummyNanoClock for nanosecond timestamps.
DEBUG StatusLogger Reconfiguration complete for context[name=17a7cec2] at URI /app/config/log4j-file-appender.properties (org.apache.logging.log4j.core.LoggerContext@31b7dea0) with optional ClassLoader: null
DEBUG StatusLogger Shutdown hook enabled. Registering a new one.
DEBUG StatusLogger LoggerContext[name=17a7cec2, org.apache.logging.log4j.core.LoggerContext@31b7dea0] started OK.
DEBUG StatusLogger Using configurationFactory org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@3ecf72fd
DEBUG StatusLogger Closing ZipInflaterInputStream org.springframework.boot.loader.jar.ZipInflaterInputStream@1bd4fdd
DEBUG StatusLogger Loaded configuration from jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml
DEBUG StatusLogger Starting LoggerContext[name=17a7cec2, org.apache.logging.log4j.core.LoggerContext@31b7dea0] with configuration XmlConfiguration[location=jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml]...
DEBUG StatusLogger Apache Log4j Core 2.17.1 initializing configuration XmlConfiguration[location=jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml]
DEBUG StatusLogger Installed 2 script engines
INFO StatusLogger Cannot initialize scripting support because this JRE does not support it.
java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "javax.script.ScriptEngine.get(String)" is null
at org.luaj.vm2.script.LuaScriptEngineFactory.getParameter(Unknown Source)
at org.apache.logging.log4j.core.script.ScriptManager.(ScriptManager.java:84)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:225)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:302)
at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.loadConfiguration(Log4J2LoggingSystem.java:227)
at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.loadDefaults(Log4J2LoggingSystem.java:179)
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:83)
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.initialize(Log4J2LoggingSystem.java:169)
at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:313)
at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:282)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:240)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)
at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:339)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:297)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
at com.netflix.conductor.Conductor.main(Conductor.java:36)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
DEBUG StatusLogger PluginManager 'Core' found 128 plugins
DEBUG StatusLogger PluginManager 'Level' found 0 plugins
DEBUG StatusLogger Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property].
TRACE StatusLogger TypeConverterRegistry initializing.
DEBUG StatusLogger PluginManager 'TypeConverter' found 26 plugins
DEBUG StatusLogger createProperty(name="LOG_EXCEPTION_CONVERSION_WORD", value="%xwEx")
DEBUG StatusLogger Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property].
DEBUG StatusLogger createProperty(name="LOG_LEVEL_PATTERN", value="%5p")
DEBUG StatusLogger Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property].
DEBUG StatusLogger createProperty(name="LOG_DATEFORMAT_PATTERN", value="yyyy-MM-dd HH:mm:ss.SSS")
DEBUG StatusLogger Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property].
DEBUG StatusLogger createProperty(name="CONSOLE_LOG_PATTERN", value="%clr{%d{${sys:LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${sys:LOG_LEVEL_PATTERN}} %clr{%pid}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}")
DEBUG StatusLogger Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property].
DEBUG StatusLogger createProperty(name="FILE_LOG_PATTERN", value="%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} %pid --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}")
DEBUG StatusLogger Building Plugin[name=properties, class=org.apache.logging.log4j.core.config.PropertiesPlugin].
DEBUG StatusLogger configureSubstitutor(={LOG_EXCEPTION_CONVERSION_WORD=%xwEx, LOG_LEVEL_PATTERN=%5p, LOG_DATEFORMAT_PATTERN=yyyy-MM-dd HH:mm:ss.SSS, CONSOLE_LOG_PATTERN=%clr{%d{${sys:LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${sys:LOG_LEVEL_PATTERN}} %clr{%pid}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}, FILE_LOG_PATTERN=%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} %pid --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml))
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout].
DEBUG StatusLogger PatternLayout$Builder(pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{%pid}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx", PatternSelector=null, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Replace=null, charset="UTF-8", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null")
DEBUG StatusLogger PluginManager 'Converter' found 48 plugins
DEBUG StatusLogger Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.ConsoleAppender].
DEBUG StatusLogger ConsoleAppender$Builder(target="SYSTEM_OUT", follow="true", direct="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout(%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{%pid}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx), name="Console", Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null, ={})
DEBUG StatusLogger Starting OutputStreamManager SYSTEM_OUT.true.false
DEBUG StatusLogger Building Plugin[name=appenders, class=org.apache.logging.log4j.core.config.AppendersPlugin].
DEBUG StatusLogger createAppenders(={Console})
DEBUG StatusLogger Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig].
DEBUG StatusLogger createLogger(additivity="true", level="ERROR", name="org.apache.catalina.startup.DigesterFactory", includeLocation="null", ={}, ={}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null)
DEBUG StatusLogger Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig].
DEBUG StatusLogger createLogger(additivity="true", level="ERROR", name="org.apache.catalina.util.LifecycleBase", includeLocation="null", ={}, ={}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null)
DEBUG StatusLogger Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig].
DEBUG StatusLogger createLogger(additivity="true", level="WARN", name="org.apache.coyote.http11.Http11NioProtocol", includeLocation="null", ={}, ={}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null)
DEBUG StatusLogger Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig].
DEBUG StatusLogger createLogger(additivity="true", level="WARN", name="org.apache.sshd.common.util.SecurityUtils", includeLocation="null", ={}, ={}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null)
DEBUG StatusLogger Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig].
DEBUG StatusLogger createLogger(additivity="true", level="WARN", name="org.apache.tomcat.util.net.NioSelectorPool", includeLocation="null", ={}, ={}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null)
DEBUG StatusLogger Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig].
DEBUG StatusLogger createLogger(additivity="true", level="ERROR", name="org.eclipse.jetty.util.component.AbstractLifeCycle", includeLocation="null", ={}, ={}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null)
DEBUG StatusLogger Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig].
DEBUG StatusLogger createLogger(additivity="true", level="WARN", name="org.hibernate.validator.internal.util.Version", includeLocation="null", ={}, ={}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null)
DEBUG StatusLogger Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig].
DEBUG StatusLogger createLogger(additivity="true", level="WARN", name="org.springframework.boot.actuate.endpoint.jmx", includeLocation="null", ={}, ={}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null)
DEBUG StatusLogger Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef].
DEBUG StatusLogger createAppenderRef(ref="Console", level="null", Filter=null)
DEBUG StatusLogger Building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger].
DEBUG StatusLogger createLogger(additivity="null", level="INFO", includeLocation="null", ={Console}, ={}, Configuration(jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml), Filter=null)
DEBUG StatusLogger Building Plugin[name=loggers, class=org.apache.logging.log4j.core.config.LoggersPlugin].
DEBUG StatusLogger createLoggers(={org.apache.catalina.startup.DigesterFactory, org.apache.catalina.util.LifecycleBase, org.apache.coyote.http11.Http11NioProtocol, org.apache.sshd.common.util.SecurityUtils, org.apache.tomcat.util.net.NioSelectorPool, org.eclipse.jetty.util.component.AbstractLifeCycle, org.hibernate.validator.internal.util.Version, org.springframework.boot.actuate.endpoint.jmx, root})
DEBUG StatusLogger Configuration XmlConfiguration[location=jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml] initialized
DEBUG StatusLogger Starting configuration XmlConfiguration[location=jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml]
DEBUG StatusLogger Started configuration XmlConfiguration[location=jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml] OK.
TRACE StatusLogger Stopping org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@2aafb23c...
TRACE StatusLogger PropertiesConfiguration notified 1 ReliabilityStrategies that config will be stopped.
TRACE StatusLogger PropertiesConfiguration stopping root LoggerConfig.
TRACE StatusLogger PropertiesConfiguration notifying ReliabilityStrategies that appenders will be stopped.
TRACE StatusLogger PropertiesConfiguration stopping remaining Appenders.
DEBUG StatusLogger Shutting down OutputStreamManager SYSTEM_OUT.false.false-2
DEBUG StatusLogger OutputStream closed
DEBUG StatusLogger Shut down OutputStreamManager SYSTEM_OUT.false.false-2, all resources released: true
DEBUG StatusLogger Appender DefaultConsole-2 stopped with status true
TRACE StatusLogger PropertiesConfiguration stopped 1 remaining Appenders.
TRACE StatusLogger PropertiesConfiguration cleaning Appenders from 1 LoggerConfigs.
DEBUG StatusLogger Stopped org.apache.logging.log4j.core.config.properties.PropertiesConfiguration@2aafb23c OK
TRACE StatusLogger Reregistering MBeans after reconfigure. Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@2641e737
TRACE StatusLogger Reregistering context (1/1): '17a7cec2' org.apache.logging.log4j.core.LoggerContext@31b7dea0
TRACE StatusLogger Unregistering 1 MBeans: [org.apache.logging.log4j2:type=17a7cec2]
TRACE StatusLogger Unregistering 1 MBeans: [org.apache.logging.log4j2:type=17a7cec2,component=StatusLogger]
TRACE StatusLogger Unregistering 1 MBeans: [org.apache.logging.log4j2:type=17a7cec2,component=ContextSelector]
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name='
TRACE StatusLogger Unregistering 1 MBeans: [org.apache.logging.log4j2:type=17a7cec2,component=Appenders,name=DefaultConsole-2]
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=AsyncAppenders,name=
'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=AsyncLoggerRingBuffer'
TRACE StatusLogger Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=*,subtype=RingBuffer'
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=StatusLogger
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=ContextSelector
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=org.apache.tomcat.util.net.NioSelectorPool
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=org.hibernate.validator.internal.util.Version
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=org.apache.coyote.http11.Http11NioProtocol
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=org.springframework.boot.actuate.endpoint.jmx
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=org.apache.catalina.startup.DigesterFactory
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=org.eclipse.jetty.util.component.AbstractLifeCycle
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=org.apache.catalina.util.LifecycleBase
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Loggers,name=org.apache.sshd.common.util.SecurityUtils
DEBUG StatusLogger Registering MBean org.apache.logging.log4j2:type=17a7cec2,component=Appenders,name=Console
TRACE StatusLogger Using DummyNanoClock for nanosecond timestamps.
DEBUG StatusLogger LoggerContext[name=17a7cec2, org.apache.logging.log4j.core.LoggerContext@31b7dea0] started OK with configuration XmlConfiguration[location=jar:file:/app/libs/conductor-server.jar!/BOOT-INF/lib/conductor-es7-persistence-3.15.0-SNAPSHOT.jar!/org/springframework/boot/logging/log4j2/log4j2.xml].

. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )_
_ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |
| .__|| ||| |_, | / / / /
=========|
|==============|/=////
:: Spring Boot :: (v3.15.0-SNAPSHOT)

When trying to run netflix conductor docker with postgres, getting this exception

docker-conductor-server-1 |
docker-conductor-server-1 | Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
docker-conductor-server-1 | 5328 [main] ERROR org.springframework.boot.SpringApplication [] - Application run failed
docker-conductor-server-1 | org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowResource' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-rest-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/rest/controllers/WorkflowResource.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowServiceImpl' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/service/WorkflowServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowExecutor' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/WorkflowExecutor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'deciderService' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/DeciderService.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'postgresMetadataDAO' defined in class path resource [com/netflix/conductor/postgres/config/PostgresConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.netflix.conductor.postgres.dao.PostgresMetadataDAO]: Factory method 'postgresMetadataDAO' threw exception; nested exception is java.lang.NoClassDefFoundError: com/netflix/conductor/core/exception/ApplicationException
docker-conductor-server-1 | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) [spring-boot-2.6.7.jar!/:2.6.7]
docker-conductor-server-1 | at com.netflix.conductor.Conductor.main(Conductor.java:37) [classes!/:3.11.0-SNAPSHOT]
docker-conductor-server-1 | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
docker-conductor-server-1 | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
docker-conductor-server-1 | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
docker-conductor-server-1 | at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
docker-conductor-server-1 | at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) [conductor-server-3.11.0-SNAPSHOT-boot.jar:3.11.0-SNAPSHOT]
docker-conductor-server-1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) [conductor-server-3.11.0-SNAPSHOT-boot.jar:3.11.0-SNAPSHOT]
docker-conductor-server-1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) [conductor-server-3.11.0-SNAPSHOT-boot.jar:3.11.0-SNAPSHOT]
docker-conductor-server-1 | at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) [conductor-server-3.11.0-SNAPSHOT-boot.jar:3.11.0-SNAPSHOT]
docker-conductor-server-1 | Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowServiceImpl' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/service/WorkflowServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'workflowExecutor' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/WorkflowExecutor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'deciderService' defined in URL [jar:file:/app/libs/conductor-server-3.11.0-SNAPSHOT-boot.jar!/BOOT-INF/lib/conductor-core-3.11.0-SNAPSHOT.jar!/com/netflix/conductor/core/execution/DeciderService.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'postgresMetadataDAO' defined in class path resource [com/netflix/conductor/postgres/config/PostgresConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.netflix.conductor.postgres.dao.PostgresMetadataDAO]: Factory method 'postgresMetadataDAO' threw exception; nested exception is java.lang.NoClassDefFoundError: com/netflix/conductor/core/exception/ApplicationException
docker-conductor-server-1 | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.19.jar!/:5.3.19]
docker-conductor-server-1 | at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.19.jar!/:5.3.19]

Elastic Search version 8

Describe the bug
After some investigation with working with different versions of elastic search I believe there is a compatibility problem with version 8. When using docker and spinning up a local elastic search container it was clear there were connectivity issues. I think rolled the elastic search image from 8.6.x to 6.8.23 and woohoo it worked.
Based on reading some of the error messages it appears to be related to a new attribute that is needed for the client.
It is related to this
https://stackoverflow.com/questions/42826735/nonodeavailableexception-none-of-the-configured-nodes-are-available
With the current version of ES and the java clients, you have to specify a cluster_name when using the java client.
I tried applying it to the URI such as elasticsearch://<elasticsearch_host>:9300?cluster.name=<cluster_name_value> but this failed.

There is definately a compatibility issue. I would debug it myself but lack a local java setup to work on this project. Hopefully this helps

NATS stream event handler retries infinite times

Describe the bug
In certain conditions NATS stream event handler is executed infinite number of times.
This behavior happens because NATSStreamObservableQueue.rePublishIfNoAck is true

Details
Conductor version: 3.8.0 (it affects version with NATS support)
Queue implementation: NATS

Workflow definition:

{
  "name": "EventingWorkflowTest",
  "description": "",
  "ownerApp": "ME",
  "ownerEmail": "[email protected]",
  "schemaVersion": 2,
  "version": 8,
  "tasks": [
		{
      "name": "test_event",
      "taskReferenceName": "test_event_1",
      "type": "HTTP",
      "asyncComplete": true,
      "inputParameters": {
        "http_request": {
          "connectionTimeOut": 120000,
          "readTimeOut": 125000,
          "method": "POST",
          "uri": "http://localhost:8888",
          "headers": {
						"ce-subject": "test_event_1_stream",
            "x-realm": "viax",
            "ce-specversion": 1.0,
            "ce-source": "workflow",
            "ce-type": "io.viax.conductor.eventing.natss",
            "ce-id": "${CPEWF_TASK_ID}"
          },
          "body": {
							"workflowId": "${workflow.workflowId}",
							"context": {
									"name": "hello world 222"
							}
					}
        }
      }
    }
  ]
}

Event handler definition, notice it is with a bug, instead of fail_task property it has complete_task:

{
  "name" : "test_event1_handler",
  "event": "nats_stream:test_event_1_stream",
  "condition": true,
  "actions": [
    {
      "action": "fail_task",
      "complete_task": {
        "workflowId": "${workflowId}",
        "taskRefName": "test_event_1",
        "output": {
          "response": "${context}"
        }
      },
      "expandInlineJSON": true
    }
  ],
  "active": true
}

To Reproduce
Steps to reproduce the behavior:

  1. Add workflow definition, see above
  2. Add event handler definition, see above
  3. Put message to fail task:
{
    "workflowId": "<WF_ID>",
    "context":
    {
        "name": "hello world"
    }
}
  1. See errors, 3 retries by RetryUtil, then message is put back to queue, because NATSStreamObservableQueue.rePublishIfNoAck is true

Expected behavior
Do we need infinite retry behavior? NATS streaming support manual ack, maybe it is better to use it to ack if there are not errors?

Dynamic fork join with subworkflow does not work properly in v3.13.8 with postgres indexing

Describe the bug
Running v3.13.8 with postgres indexing as show in the attached properties I start getting a task duplication error as show in the screenshot. The workflow termiates in error but in a completely non predictable way. Few task succed, few terminate with strange error condition, other are canceled.

Details
Conductor version: 3.13.8 (community edition)
Persistence implementation: Postgres
Queue implementation: Postgres
Workflow definition: As attached in workflows.zip
Task definition:
Event handler definition:

To Reproduce
Steps to reproduce the behavior:

  1. Run roo tworkflow in Workbench and set input to 30

Expected behavior
Should call 30 times the subworkflow and terminate correctly.

Screenshots
Screenshot from 2023-10-18 17-55-18

workflows.zip

Additional context

The property file

# Database persistence type.
conductor.db.type=postgres

spring.datasource.url=jdbc:postgresql://postgres:5432/conductor
spring.datasource.username=conductor
spring.datasource.password=conductor

# Hikari pool sizes are -1 by default and prevent startup
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=2

# Use Postgres for indexing
conductor.indexing.enabled=true
conductor.indexing.type=postgres
conductor.elasticsearch.version=postgres

#Enable Prometheus
conductor.metrics-prometheus.enabled=true
management.endpoints.web.exposure.include=prometheus,health,info,metrics

# GRPC disabled
conductor.grpc-server.enabled=false

# Load sample kitchen sink disabled 
loadSample=false

ElasticSearch7 create unlimited amount of indices

Describe the bug
After certain amount of time shards problem raised. We checked ES and found out around 2300 shards, we names like conductor_task_log_20221004.

Details
Conductor version: 3.12.2
Persistence implementation: Postgres
Queue implementation: Postgres
Lock: Redis

To Reproduce
Steps to reproduce the behavior:

  1. Just use elastic for a while

Expected behavior
Data is cleaned up periodically.

Updating the status of an IN PROGRESS task to IN PROGRESS returns it to SCHELUDED.

Describe the bug
Updating the status of an IN PROGRESS task to IN PROGRESS returns it to SCHELUDED.

Details
Conductor version: 3.13.6

To Reproduce
Make this call:
GET /api/tasks/poll/TASK_TYPE

And after this call:

POST /api/tasks

{
    "workflowInstanceId": "workflow-instance-id",
    "taskId": "task-id",
    "status": "IN_PROGRESS"
}

Expected behavior
When updating a task in IN PROGRESS status it remains in IN PROGRESS and thus serves as a heartbeat to check that it is still being done.

Build error with conductor and community server

Describe the bug
When going through the steps of building a docker image for the community-server with the latest version of the conductor build, I get the following error message

Details
Conductor version: Latest build
Community Server implementation

To Reproduce
Steps to reproduce the behavior:
git clone https://github.com/Netflix/conductor.git
git clone https://github.com/Netflix/conductor-community.git
cp -Rfv conductor-community/community-server/* conductor/server/
cd conductor/docker
docker build -t conductor:server -f server/Dockerfile ../
Error

Expected behavior
Build a proper docker image

Additional context
building on on a AWS Linux 2 instance
FAILURE: Build failed with an exception.

  • Where:
    Build file '/conductor/server/build.gradle' line: 8

  • What went wrong:
    A problem occurred evaluating project ':conductor-server'.

Could not get unknown property 'revConductor' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

  • Try:

Run with --info or --debug option to get more log output.

  • Exception is:
    org.gradle.api.GradleScriptException: A problem occurred evaluating project ':conductor-server'.
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.lambda$apply$0(DefaultScriptPluginFactory.java:133)
    at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:79)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:136)
    at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.configuration.BuildOperationScriptPlugin.lambda$apply$0(BuildOperationScriptPlugin.java:62)
    at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44)
    at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:62)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0(DefaultProjectStateRegistry.java:351)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:369)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:350)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:42)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:35)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.lambda$run$0(LifecycleProjectEvaluator.java:109)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0(DefaultProjectStateRegistry.java:351)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$fromMutableState$1(DefaultProjectStateRegistry.java:374)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withReplacedLocks(DefaultWorkerLeaseService.java:345)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:374)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:350)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:100)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:72)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:761)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:152)
    at org.gradle.api.internal.project.ProjectLifecycleController.lambda$ensureSelfConfigured$1(ProjectLifecycleController.java:63)
    at org.gradle.internal.model.StateTransitionController.lambda$doTransition$12(StateTransitionController.java:236)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:235)
    at org.gradle.internal.model.StateTransitionController.lambda$maybeTransitionIfNotCurrentlyTransitioning$9(StateTransitionController.java:196)
    at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:34)
    at org.gradle.internal.model.StateTransitionController.maybeTransitionIfNotCurrentlyTransitioning(StateTransitionController.java:192)
    at org.gradle.api.internal.project.ProjectLifecycleController.ensureSelfConfigured(ProjectLifecycleController.java:63)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.ensureConfigured(DefaultProjectStateRegistry.java:325)
    at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:33)
    at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:49)
    at org.gradle.configuration.DefaultProjectsPreparer.prepareProjects(DefaultProjectsPreparer.java:50)
    at org.gradle.configuration.BuildTreePreparingProjectsPreparer.prepareProjects(BuildTreePreparingProjectsPreparer.java:64)
    at org.gradle.configuration.BuildOperationFiringProjectsPreparer$ConfigureBuild.run(BuildOperationFiringProjectsPreparer.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.configuration.BuildOperationFiringProjectsPreparer.prepareProjects(BuildOperationFiringProjectsPreparer.java:40)
    at org.gradle.initialization.VintageBuildModelController.lambda$prepareProjects$3(VintageBuildModelController.java:89)
    at org.gradle.internal.model.StateTransitionController.lambda$doTransition$12(StateTransitionController.java:236)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:235)
    at org.gradle.internal.model.StateTransitionController.lambda$transitionIfNotPreviously$10(StateTransitionController.java:210)
    at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:34)
    at org.gradle.internal.model.StateTransitionController.transitionIfNotPreviously(StateTransitionController.java:206)
    at org.gradle.initialization.VintageBuildModelController.prepareProjects(VintageBuildModelController.java:89)
    at org.gradle.initialization.VintageBuildModelController.prepareToScheduleTasks(VintageBuildModelController.java:71)
    at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$prepareToScheduleTasks$2(DefaultBuildLifecycleController.java:127)
    at org.gradle.internal.model.StateTransitionController.lambda$doTransition$12(StateTransitionController.java:236)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:235)
    at org.gradle.internal.model.StateTransitionController.lambda$maybeTransition$8(StateTransitionController.java:187)
    at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:34)
    at org.gradle.internal.model.StateTransitionController.maybeTransition(StateTransitionController.java:183)
    at org.gradle.internal.build.DefaultBuildLifecycleController.prepareToScheduleTasks(DefaultBuildLifecycleController.java:125)
    at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.scheduleRequestedTasks(DefaultBuildTreeWorkPreparer.java:33)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$doScheduleAndRunTasks$2(DefaultBuildTreeLifecycleController.java:89)
    at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewWorkGraph(DefaultIncludedBuildTaskGraph.java:101)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.doScheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:88)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$4(DefaultBuildTreeLifecycleController.java:106)
    at org.gradle.internal.model.StateTransitionController.lambda$transition$5(StateTransitionController.java:166)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)
    at org.gradle.internal.model.StateTransitionController.lambda$transition$6(StateTransitionController.java:166)
    at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
    at org.gradle.internal.model.StateTransitionController.transition(StateTransitionController.java:166)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:103)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:69)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49)
    at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:65)
    at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:136)
    at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
    at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40)
    at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:122)
    at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40)
    at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
    at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:65)
    at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53)
    at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57)
    at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:36)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
    at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
    at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:36)
    at org.gradle.tooling.internal.provider.continuous.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:110)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
    at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:100)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:88)
    at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:62)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:41)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:52)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:40)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
    at org.gradle.util.internal.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    Caused by: groovy.lang.MissingPropertyException: Could not get unknown property 'revConductor' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
    at org.gradle.internal.metaobject.AbstractDynamicObject.getMissingProperty(AbstractDynamicObject.java:88)
    at org.gradle.internal.metaobject.ConfigureDelegate.getProperty(ConfigureDelegate.java:130)
    at build_bhwr5ysw4oaaw7gucx220rpgw$_run_closure1.doCall(/conductor/server/build.gradle:8)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.util.internal.ClosureBackedAction.execute(ClosureBackedAction.java:73)
    at org.gradle.util.internal.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
    at org.gradle.util.internal.ConfigureUtil.configure(ConfigureUtil.java:106)
    at org.gradle.api.internal.project.DefaultProject.dependencies(DefaultProject.java:1242)
    at jdk.internal.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:484)
    at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
    at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
    at org.gradle.internal.extensibility.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:34)
    at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:135)
    at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
    at org.gradle.groovy.scripts.BasicScript.invokeMethod(BasicScript.java:84)
    at build_bhwr5ysw4oaaw7gucx220rpgw.run(/conductor/server/build.gradle:5)
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
    ... 159 more

  • Get more help at https://help.gradle.org

BUILD FAILED in 43s

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.