apache / openwhisk

Apache OpenWhisk is an open source serverless cloud platform
https://openwhisk.apache.org/
Apache License 2.0
6.48k stars 1.16k forks source link

Standalone Openwhisk error: Key not found 'etcd' #5475

Open pprabh2007 opened 5 months ago

pprabh2007 commented 5 months ago

Environment details:

Ubuntu: 22.04

Steps to reproduce the issue:

  1. sudo apt update / sudo apt-get update
  2. Install Docker: curl -fsSL https://get.docker.com | bash
  3. Install nodejs: sudo apt install nodejs
  4. Install OpenJDK8: sudo apt-get install openjdk-8-jdk -y
  5. Clone apache/openwhisk.
  6. Run ./gradlew core:standalone:bootRun (I had to run it with sudo)

Provide the expected results and outputs:

image (2)

Additional information you deem important:

None, consistently get the same error

style95 commented 5 months ago

The standalone mode is not supported with the new scheduler that became a default scheduler. So you need to disable the scheduler for the standalone mode.

https://github.com/apache/openwhisk/blob/master/ansible/group_vars/all#L501

Tarik-Kada commented 5 months ago

I have edited https://github.com/apache/openwhisk/blob/master/ansible/group_vars/all#L501 to default to false, but the problem still persists. Are there any follow-up steps before the standalone should work?

paulzhn commented 5 months ago

I had the same issue.

@style95 I don't think the standalone mode uses the Ansible config. The config file for standalone is core/standalone/build/resources/main/standalone.conf, but after I modified it, the problem still exists.

Tarik-Kada commented 5 months ago

I run into the same problem when trying to deploy with Kubernetes in Docker.

When I try to deploy a local build to some of the pods, they keep crashing and will not initialize. Here is an example using the controller component:

[2024-04-09T14:12:48.516Z] [INFO] [#tid_sid_controller] [Controller] starting controller instance 0 [marker:controller_startup0_counter:604]
[2024-04-09T14:12:48.816Z] [INFO] [#tid_sid_dispatcher] [MessageFeed] handler capacity = 128, pipeline fill at = 128, pipeline depth = 256
Exception in thread "main" pureconfig.error.ConfigReaderException: Cannot convert configuration to a org.apache.openwhisk.core.etcd.EtcdConfig. Failures are:
  at 'whisk':
    - Key not found: 'etcd'.

        at pureconfig.package$.getResultOrThrow(package.scala:139)
        at pureconfig.package$.loadConfigOrThrow(package.scala:161)
        at org.apache.openwhisk.core.loadBalancer.FPCPoolBalancer$.instance(FPCPoolBalancer.scala:721)
        at org.apache.openwhisk.core.controller.Controller.<init>(Controller.scala:119)
        at org.apache.openwhisk.core.controller.Controller$.start(Controller.scala:338)
        at org.apache.openwhisk.core.controller.Controller$.main(Controller.scala:291)
        at org.apache.openwhisk.core.controller.Controller.main(Controller.scala)

However, when I deploy openWhisk through: helm install owdev openwhisk/openwhisk -n openwhisk --create-namespace, Everything initializes nicely and I can create and invoke functions.

I want to use OpenWhisk for my research project, but this is making it hard to start developing.

style95 commented 5 months ago

@paulzhn @pprabh2007 @Tarik-Kada

This is because of the updated spi configurations. https://github.com/apache/openwhisk/blob/master/common/scala/src/main/resources/reference.conf#L20

I would ponder over how to handle this part. In the meantime, you guys can configure SPIs like below.

whisk.spi {
  ArtifactStoreProvider = org.apache.openwhisk.core.database.CouchDbStoreProvider
  ActivationStoreProvider = org.apache.openwhisk.core.database.ArtifactActivationStoreProvider
  MessagingProvider = org.apache.openwhisk.connector.kafka.KafkaMessagingProvider
  ContainerFactoryProvider = org.apache.openwhisk.core.containerpool.docker.DockerContainerFactoryProvider
  LogStoreProvider = org.apache.openwhisk.core.containerpool.logging.DockerToActivationLogStoreProvider
  LoadBalancerProvider = "org.apache.openwhisk.core.loadBalancer.LeanBalancer"
  EntitlementSpiProvider = org.apache.openwhisk.core.entitlement.LocalEntitlementProvider
  AuthenticationDirectiveProvider = org.apache.openwhisk.core.controller.BasicAuthenticationDirective
  InvokerProvider = org.apache.openwhisk.core.invoker.InvokerReactive
  InvokerServerProvider = org.apache.openwhisk.core.invoker.DefaultInvokerServer
  DurationCheckerProvider = org.apache.openwhisk.core.scheduler.queue.NoopDurationCheckerProvider
}

I confirmed it's working with this.

image
Tarik-Kada commented 5 months ago

Thanks for your reply!

I have tried the proposed fix, but it still does not work. I updated the SPI like you said, and this is the result of both ./gradlew core:standalone:bootRun and ./gradlew core:standalone:build:

Build using Scala 2.12
Scala sub-project 'gatling_tests' doesn't have Scoverage applied and will be ignored in parent project aggregation

> Task :core:scheduler:compileScala
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:26: object common is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:27: object ConfigKeys is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:28: object http is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:29: object http is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:30: object http is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:45: not found: type BasicRasService
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:46: not found: type RespondWithServerCorsHeaders
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:44: not found: type Logging
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:48: not found: type TransactionId
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:49: value routes is not a member of AnyRef
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:49: not found: value sendCorsHeaders
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:50: not found: value options
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:51: not found: value complete
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:52: not found: value extractCredentials
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:33: object common is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:34: object WhiskConfig is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:36: object connector is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:38: object entity is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:253: not found: type SchedulerInstanceId
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:257: not found: type StatusData
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:55: not found: value path
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:55: not found: value get
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:56: not found: value complete
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:63: not found: value path
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:63: not found: value post
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:66: not found: value complete
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:67: not found: value pathPrefix
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:67: not found: value get
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:68: not found: value pathEndOrSingleSlash
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:69: not found: value complete
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:70: not found: value path
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:70: not found: value get
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:71: not found: value complete
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:73: not found: value path
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:73: value / is not a member of String
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:73: not found: value get
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:74: not found: value pathEndOrSingleSlash
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:75: not found: value complete
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:80: value sum is not a member of Nothing
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:86: not found: value terminate
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:94: not found: value ConfigKeys
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:95: not found: value ConfigKeys
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:100: not found: type BasicRasService
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:100: not found: type Logging
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:21: Unused import
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:26: Unused import
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:26: Unused import
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:27: Unused import
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:28: Unused import
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:29: Unused import
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:30: Unused import
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/FPCSchedulerServer.scala:32: Unused import
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:32: object common is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:35: object ack is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:37: object database is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:39: object etcd is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:40: object etcd is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:41: object etcd is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:45: object service is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:46: object ConfigKeys is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:48: object http is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:49: object spi is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:50: object utils is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:61: not found: type SchedulerInstanceId
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:61: not found: type WhiskConfig
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:63: not found: type Logging
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:66: not found: value WhiskAuthStore
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:68: not found: value SpiLoader
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:68: not found: type MessagingProvider
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:71: not found: value ConfigKeys
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:72: not found: value EtcdClient
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:72: not found: type EtcdConfig
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:72: not found: value ConfigKeys
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:73: not found: value WatcherService
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:75: not found: value LeaseKeepAliveService
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:77: not found: value ConfigKeys
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:79: not found: value WhiskEntityStore
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:81: not found: value SpiLoader
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:81: not found: type ActivationStoreProvider
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:84: not found: value UserEvents
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:84: not found: type UserEventSender
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:85: not found: type MessagingActiveAck
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:89: not found: type TransactionId
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:89: not found: type WhiskActivation
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:89: not found: type UserContext
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:90: not found: type TransactionId
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:96: not found: value SpiLoader
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:99: not found: type SchedulerInstanceId
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala:227: not found: value TransactionId
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:26: object common is not a member of package org.apache.openwhisk
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:30: object connector is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:33: object entity is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:37: object service is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:32: object database is not a member of package org.apache.openwhisk.core
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:676: not found: type ArtifactStore
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:677: not found: type ArtifactStore
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:678: not found: type DocId
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:679: not found: type DocRevision
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:681: not found: type WhiskActionMetaData
[Error] /home/tarik/Desktop/scriptie/openwhisk/openwhisk/core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/QueueManager.scala:35: object etcd is not a member of package org.apache.openwhisk.core
200 errors found

> Task :core:scheduler:compileScala FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':core:scheduler:compileScala'.
> Compilation failed

It still doesn't boot properly, as you can see. Is there anything I need to do in between editing the code and trying to build/run?

In the end, I hope to be able to use openWhisk to develop on, whether this would be using the standalone version or a version that runs in Kubernetes in Docker doesn't matter.

style95 commented 5 months ago

I believe this is not related to the standalone mode as you can't even compile the code because of not-found errors. It could be because of wrong classpaths or an incomplete previous build. Have you tried it after cleaning up(./gradlew clean)?

You may want to try ./gradlew distDocker as well to see if you can compile codes.

matt-8319 commented 5 months ago

I have been stuggling for the last two days to try and get a working environment up and running. Using the devtools quick-start to spin up an environment using Docker Compose. First issue I encountered was the Kafka container failing:

[2024-04-18 08:35:15,092] FATAL (kafka.Kafka$) java.lang.IllegalArgumentException: Error creating broker listeners from 'PLAINTEXT://kafka:': Unable to parse PLAINTEXT://kafka: to a broker endpoint at kafka.utils.CoreUtils$.listenerListToEndPoints(CoreUtils.scala:274) at kafka.server.KafkaConfig.getAdvertisedListeners(KafkaConfig.scala:1115) at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:1075) at kafka.server.KafkaConfig$.fromProps(KafkaConfig.scala:867) at kafka.server.KafkaConfig$.fromProps(KafkaConfig.scala:864) at kafka.server.KafkaServerStartable$.fromProps(KafkaServerStartable.scala:28) at kafka.Kafka$.main(Kafka.scala:58) at kafka.Kafka.main(Kafka.scala) Caused by: kafka.common.KafkaException: Unable to parse PLAINTEXT://kafka: to a broker endpoint at kafka.cluster.EndPoint$.createEndPoint(EndPoint.scala:57) at kafka.utils.CoreUtils$.$anonfun$listenerListToEndPoints$6(CoreUtils.scala:271) at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234) at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32) at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29) at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38) at scala.collection.TraversableLike.map(TraversableLike.scala:234) at scala.collection.TraversableLike.map$(TraversableLike.scala:227) at scala.collection.AbstractTraversable.map(Traversable.scala:104) at kafka.utils.CoreUtils$.listenerListToEndPoints(CoreUtils.scala:271) ... 7 more Error response from daemon: {"message":"client version 1.23 is too old. Minimum supported API version is 1.24, please upgrade your client to a newer version"}

This appears to be resolved by using the latest image (wurstmeister/kafka:latest).

Other containers start and stay running. The only exceptions are the Controller and Invoker containers. They are both failing with:

'Exception in thread "main" pureconfig.error.ConfigReaderException: Cannot convert configuration to a org.apache.openwhisk.core.etcd.EtcdConfig. Failures are: at 'whisk':

We are currently evaluating OpenWhisk and it has been quite challenging so far with the current documentation. Could you please point me in the direction as to how I might adjust the SPI's for this deployment configuration? Thanks!

style95 commented 5 months ago

@matt-8319 IIRC, the devtools is not maintained well. I think the native standalone mode would be easier to try.

matt-8319 commented 5 months ago

@matt-8319 IIRC, the devtools is not maintained well. I think the native standalone mode would be easier to try.

Thanks @style95. Do you know if it is possible to use the admin tools with standalone mode?

style95 commented 5 months ago

@matt-8319 If you are mentioning this tool, I think it would not work as it communicates with the database while the standalone mode is using MemoryArtifactStore.

Peperud commented 2 months ago

Getting this as well when trying to up a standalone.

Exception in thread "main" pureconfig.error.ConfigReaderException: Cannot convert configuration to a org.apache.openwhisk.core.etcd.EtcdConfig. Failures are:
  at 'whisk':
    - Key not found: 'etcd'.

        at pureconfig.package$.getResultOrThrow(package.scala:139)
        at pureconfig.package$.loadConfigOrThrow(package.scala:161)
        at org.apache.openwhisk.core.invoker.FPCInvokerReactive.<init>(FPCInvokerReactive.scala:85)
        at org.apache.openwhisk.core.invoker.FPCInvokerReactive$.instance(FPCInvokerReactive.scala:66)
        at org.apache.openwhisk.core.loadBalancer.LeanBalancer.makeALocalThreadedInvoker(LeanBalancer.scala:72)
        at org.apache.openwhisk.core.loadBalancer.LeanBalancer.<init>(LeanBalancer.scala:75)
        at org.apache.openwhisk.core.loadBalancer.LeanBalancer$.instance(LeanBalancer.scala:93)
        at org.apache.openwhisk.core.controller.Controller.<init>(Controller.scala:119)
        at org.apache.openwhisk.core.controller.Controller$.start(Controller.scala:338)
        at org.apache.openwhisk.standalone.StandaloneOpenWhisk$.startController(StandaloneOpenWhisk.scala:337)
        at org.apache.openwhisk.standalone.StandaloneOpenWhisk$.startServer(StandaloneOpenWhisk.scala:282)
        at org.apache.openwhisk.standalone.StandaloneOpenWhisk$.main(StandaloneOpenWhisk.scala:254)
        at org.apache.openwhisk.standalone.StandaloneOpenWhisk.main(StandaloneOpenWhisk.scala)