Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

order processor workflow failed in kubernete environment #806

Closed
gongxh13 opened this issue Mar 9, 2023 · 4 comments
Closed

order processor workflow failed in kubernete environment #806

gongxh13 opened this issue Mar 9, 2023 · 4 comments
Assignees
Milestone

Comments

@gongxh13
Copy link

gongxh13 commented Mar 9, 2023

Ask your question here

Why order processor workflow failed in kubernete environment?
I follow this https://github.com/dapr/quickstarts/tree/master/workflows/csharp/sdk quickstart, package this code to docker image, and then deploy it in k8s environment, but I failed to start workflow.
I has deploy redis component and install redis, demo can see here https://github.com/gongxh13/openfunction-demo/tree/main/dapr/net/workflow
Below is daprd error log

time="2023-03-09T12:02:33.822053378Z" level=warning msg="unable to establish work item stream at this time: failed to auto-start the workflow engine: failed to register workflow actor dapr.internal.wfengine.workflow: unable to register internal actor 'dapr.internal.wfengine.workflow': actor state store does not exist, or does not support transactions which are required to save state - please see https://docs.dapr.io/operations/components/setup-state-store/supported-state-stores/" app_id=workflow-order-processor instance=workflow-order-processor-6f78dfd57-g7md7 scope=dapr.runtime.wfengine type=log ver=1.10.2

And below is workllow log

info: Microsoft.DurableTask[1]
      Durable Task worker is connecting to sidecar at localhost:50001.
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /app
Starting workflow 3e243c17 purchasing 10 Cars
info: Microsoft.DurableTask.Client.Grpc.GrpcDurableTaskClient[40]
      Scheduling new OrderProcessingWorkflow orchestration with instance ID '3e243c17' and 47 bytes of input data.
info: Microsoft.DurableTask[4]
      Sidecar work-item streaming connection established.
info: Microsoft.DurableTask[3]
      The sidecar at address localhost:50001 is unavailable. Will continue retrying.
info: Microsoft.DurableTask[4]
      Sidecar work-item streaming connection established.
info: Microsoft.DurableTask[3]
      The sidecar at address localhost:50001 is unavailable. Will continue retrying.
Unhandled exception. Grpc.Core.RpcException: Status(StatusCode="Unknown", Detail="error finding address for actor type dapr.internal.wfengine.workflow with id 3e243c17")
   at Microsoft.DurableTask.Client.Grpc.GrpcDurableTaskClient.ScheduleNewOrchestrationInstanceAsync(TaskName orchestratorName, Object input, StartOrchestrationOptions options, CancellationToken cancellation)
   at Program.<Main>$(String[] args) in /src/Program.cs:line 53
   at Program.<Main>(String[] args)
@gongxh13
Copy link
Author

When I add the follow text in redis.yaml component, it work well on my linux k8s

  - name: actorStateStore  # Optional. default: false
    value : true

my final redis.yaml is


apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: statestore
spec:
  type: state.redis
  version: v1
  metadata:
  # These settings will work out of the box if you use `helm install
  # bitnami/redis`.  If you have your own setup, replace
  # `redis-master:6379` with your own Redis master address, and the
  # Redis password with your own Secret's name. For more information,
  # see https://docs.dapr.io/operations/components/component-secrets .
  - name: redisHost
    value: redis-master:6379
  - name: redisPassword
    secretKeyRef:
      name: redis
      key: redis-password
  - name: actorStateStore  # Optional. default: false
    value : true
auth:
  secretStore: kubernetes

But on my mac minikube, it has another error as

Unhandled exception. System.IO.IOException: Function not implemented
   at System.IO.FileSystemWatcher.StartRaisingEvents()
   at System.IO.FileSystemWatcher.StartRaisingEventsIfNotDisposed()
   at System.IO.FileSystemWatcher.set_EnableRaisingEvents(Boolean value)
   at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.TryEnableFileSystemWatcher()
   at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.CreateFileChangeToken(String filter)
   at Microsoft.Extensions.FileProviders.PhysicalFileProvider.Watch(String filter)
   at Microsoft.Extensions.Configuration.FileConfigurationProvider.<.ctor>b__1_0()
   at Microsoft.Extensions.Primitives.ChangeToken.OnChange(Func`1 changeTokenProducer, Action changeTokenConsumer)
   at Microsoft.Extensions.Configuration.FileConfigurationProvider..ctor(FileConfigurationSource source)
   at Microsoft.Extensions.Configuration.Json.JsonConfigurationSource.Build(IConfigurationBuilder builder)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at Microsoft.Extensions.Hosting.HostBuilder.BuildAppConfiguration()
   at Microsoft.Extensions.Hosting.HostBuilder.Build()
   at Program.<Main>$(String[] args) in /src/Program.cs:line 30
   at Program.<Main>(String[] args)

@rabollin
Copy link
Contributor

rabollin commented Sep 6, 2023

/assign

@joebowbeer
Copy link
Contributor

mac minikube missing FileSystemWatcher issue is the following?

Azure/azure-functions-host#8666

@paulyuk
Copy link
Contributor

paulyuk commented Jul 29, 2024

Hi - this quickstart was not optimized for k8s ever. However I think your approach to apply redis is a good one. See @joebowbeer's suggetion for minikube.

@paulyuk paulyuk closed this as completed Jul 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants