[Bug] Temporal dev server does not seem to respect archival settings for namespaces
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 379
- Forks
- 103
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 23
Description
What are you really trying to do?
I am trying to play with archival settings on the dev server (formerly known as temporalite), to get a feel for it and figure if I need to develop a custom provider or not.
Describe the bug
The archival enablement settings from the command line do not seem to be respected by the temporal dev server:
- when passing the default setting values at the start
- when passing them during the creation of a namespace
- when updating an existing namespace
Minimal Reproduction
1- Passing default settings on the start command line:
# in one terminal
./temporal server start-dev --dynamic-config-value Config.HistoryArchivalState="true" --dynamic-config-value Config.VisibilityArchivalState="true" --db-filename temporal.dev.sqlite
# in the other terminal
./temporal operator namespace list
NamespaceInfo.Name temporal-system
../..
NamespaceInfo.Name default
NamespaceInfo.Id c86d0df8-3ff7-4715-b718-3f12f1c1516c
NamespaceInfo.Description
NamespaceInfo.OwnerEmail
NamespaceInfo.State Registered
Config.WorkflowExecutionRetentionTtl 24h0m0s
ReplicationConfig.ActiveClusterName active
ReplicationConfig.Clusters [&ClusterReplicationConfig{ClusterName:active,}]
Config.HistoryArchivalState Disabled
Config.VisibilityArchivalState Disabled
IsGlobalNamespace false
FailoverVersion 0
FailoverHistory []
2- Passing archival settings during the creation of a namespace
# create
./temporal operator namespace create --history-archival-state enabled --retention 15 --visibility-archival-state enabled tomato
Namespace tomato successfully registered.
# verify
./temporal operator namespace list
../..
NamespaceInfo.Name tomato
NamespaceInfo.Id f93d576d-e6f8-4ed3-b3c1-cf43cd3fdc6b
NamespaceInfo.Description
NamespaceInfo.OwnerEmail
NamespaceInfo.State Registered
Config.WorkflowExecutionRetentionTtl 360h0m0s
ReplicationConfig.ActiveClusterName active
ReplicationConfig.Clusters [&ClusterReplicationConfig{ClusterName:active,}]
Config.HistoryArchivalState Disabled
Config.VisibilityArchivalState Disabled
IsGlobalNamespace false
FailoverVersion 0
FailoverHistory []
3- Passing archival settings when updating an existing namespace
# run an update after case 2
./temporal operator namespace update --history-archival-state enabled --history-archival-state enabled --retention 10 tomato
Namespace tomato update succeeded.
# verify that the retention update worked, but the archival did not:
./temporal operator namespace list
../..
NamespaceInfo.Name tomato
NamespaceInfo.Id f93d576d-e6f8-4ed3-b3c1-cf43cd3fdc6b
NamespaceInfo.Description
NamespaceInfo.OwnerEmail
NamespaceInfo.State Registered
Config.WorkflowExecutionRetentionTtl 240h0m0s
ReplicationConfig.ActiveClusterName active
ReplicationConfig.Clusters [&ClusterReplicationConfig{ClusterName:active,}]
Config.HistoryArchivalState Disabled
Config.VisibilityArchivalState Disabled
IsGlobalNamespace false
FailoverVersion 0
FailoverHistory []
Environment/Versions
- OS and processor: M1 Mac
- Temporal Version: temporalite built from tip of live version: d128e0c04389219b9aa032bf63a0889c965ba535
- Are you using Docker or Kubernetes or building Temporal from source? built from source.
Additional context
When I trace the CLI in the debugger, I can see that the command line parameters for the namespace creation are properly passed into the namespace creation request. I was not sure how to set up tooling to decode the proto in the sqlite file to see what's in there. When I trace the data on the way out, the settings have not been respected.
When I try the same namespace creation against a docker compose version of temporal running locally, the archival settings are respected.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with temporal server start-dev and the temporal operator namespace create, update, and list commands, using the archival flags shown. Compare the dev server's namespace results with those from the local Docker Compose server. Done means archival settings passed at startup, creation, and update are persisted and reported as enabled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend, cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100