temporalio / temporalio/temporal

If a temporal service fails to start due to a missing config key, log the missing key

Open
#455 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

difficulty: easy enhancement operations P2 up-for-grabs
Dominant language
Go
Stars
23.2k
Forks
1.9k
Avg merge
2d 8h
Merged PRs (30d)
228

Description

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
When creating a kubernetes deployment of temporal, a customer ran into what looks like a configuration problem, which manifested itself in the service simply exiting, with the following log:

2020-06-15T15:12:00.852003855Z + bash /start-temporal.sh E 
2020-06-15T15:12:00.854018920Z + dockerize -template /etc/temporal/config/config_template.yaml:/etc/temporal/config/docker.yaml E 
2020-06-15T15:12:00.857719185Z + exec temporal-server --root /etc/temporal --env docker start --services=frontend E 
2020-06-15T15:12:00.875540906Z 2020/06/15 15:12:00 Loading config; env=docker,zone=,configDir=/etc/temporal/config E 
2020-06-15T15:12:00.875686932Z 2020/06/15 15:12:00 Loading configFiles=[/etc/temporal/config/docker.yaml] E 
2020-06-15T15:12:00.876097429Z 2020/06/15 15:12:00 Config file corrupted.yaml: line 123: did not find expected key E

debugging the condition was tricky, and could be greatly simplified if only the log included the name of the missing key.

Describe the solution you'd like
A clear and concise description of what you want to happen.

When validating configs and encountering a missing key, please include the. name of the key in the log.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

The obvious (default) alternative is to do nothing. which is also fine, but makes problems harder to troubleshoot.

Additional context
Add any other context or screenshots about the feature request here.

This problem was brought to my attention by Ringo in Temporal slack chat: https://temporalio.slack.com/archives/CTTJCPZQE/p1592235043052000

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing configuration loading and validation from the temporal-server startup command, using the shown /etc/temporal/config/docker.yaml and config_template.yaml paths as context. Confirm where a missing key is detected and make the completed behavior include that key in the startup log, then verify the resulting diagnostic against the reported failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
backend, devops
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.