Describe the bug
Eventing controller and source-controller fall off main() on shutdown signal giving embedded controllers no chance to shut down cleanly
Expected behavior
On shutdown signal, eventing controller and source-controller shut down the embedded controllers and then return from main()
To Reproduce
Start either controller or source-controller, let initialize, ^C, watch logs.
Knative release version
HEAD
See sister bug knative/serving#3913
Additional context
source-controller log before the fix:
[syedriko@localhost eventing]$ SYSTEM_NAMESPACE=knative-eventing CONFIG_LOGGING_NAME=config-logging ./sources-controller -hardCodedLoggingConfig -master=https://192.168.39.137:8443 -kubeconfig=/home/syedriko/.kube/config
{"level":"warn","ts":1556295306.7938392,"logger":"fallback-logger","caller":"logging/config.go:65","msg":"Fetch GitHub commit ID from kodata failed: "KO_DATA_PATH" does not exist or is empty"}
{"level":"info","ts":1556295306.7955112,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:65","msg":"Starting the controller","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295306.7978847,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"cronjobsource/cronjobsource.go:94","msg":"Setting up event handlers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295306.7981622,"logger":"fallback-logger.controller.container-source-controller","caller":"containersource/containersource.go:85","msg":"Setting up event handlers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295306.8985906,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:110","msg":"Starting informers.","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295307.1995416,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:123","msg":"Starting controllers.","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295307.1999278,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:226","msg":"Starting controller and workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295307.200034,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:236","msg":"Started workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295307.2001164,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:226","msg":"Starting controller and workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295307.2001612,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:236","msg":"Started workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
source-controller log after the fix:
[syedriko@localhost eventing]$ SYSTEM_NAMESPACE=knative-eventing CONFIG_LOGGING_NAME=config-logging ./sources-controller -hardCodedLoggingConfig -master=https://192.168.39.137:8443 -kubeconfig=/home/syedriko/.kube/config
{"level":"warn","ts":1556295364.9111059,"logger":"fallback-logger","caller":"logging/config.go:65","msg":"Fetch GitHub commit ID from kodata failed: "KO_DATA_PATH" does not exist or is empty"}
{"level":"info","ts":1556295364.913477,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:65","msg":"Starting the controller","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295364.9174566,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"cronjobsource/cronjobsource.go:94","msg":"Setting up event handlers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295364.9177465,"logger":"fallback-logger.controller.container-source-controller","caller":"containersource/containersource.go:85","msg":"Setting up event handlers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295365.0181394,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:110","msg":"Starting informers.","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295365.3197339,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:123","msg":"Starting controllers.","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295365.319814,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:226","msg":"Starting controller and workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295365.3198311,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:236","msg":"Started workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295365.3198576,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:226","msg":"Starting controller and workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295365.319874,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:236","msg":"Started workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
^C{"level":"info","ts":1556295371.0204554,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:238","msg":"Shutting down workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295371.020501,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:238","msg":"Shutting down workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
Describe the bug
Eventing controller and source-controller fall off main() on shutdown signal giving embedded controllers no chance to shut down cleanly
Expected behavior
On shutdown signal, eventing controller and source-controller shut down the embedded controllers and then return from main()
To Reproduce
Start either controller or source-controller, let initialize, ^C, watch logs.
Knative release version
HEAD
See sister bug knative/serving#3913
Additional context
source-controller log before the fix:
[syedriko@localhost eventing]$ SYSTEM_NAMESPACE=knative-eventing CONFIG_LOGGING_NAME=config-logging ./sources-controller -hardCodedLoggingConfig -master=https://192.168.39.137:8443 -kubeconfig=/home/syedriko/.kube/config
{"level":"warn","ts":1556295306.7938392,"logger":"fallback-logger","caller":"logging/config.go:65","msg":"Fetch GitHub commit ID from kodata failed: "KO_DATA_PATH" does not exist or is empty"}
{"level":"info","ts":1556295306.7955112,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:65","msg":"Starting the controller","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295306.7978847,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"cronjobsource/cronjobsource.go:94","msg":"Setting up event handlers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295306.7981622,"logger":"fallback-logger.controller.container-source-controller","caller":"containersource/containersource.go:85","msg":"Setting up event handlers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295306.8985906,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:110","msg":"Starting informers.","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295307.1995416,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:123","msg":"Starting controllers.","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295307.1999278,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:226","msg":"Starting controller and workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295307.200034,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:236","msg":"Started workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295307.2001164,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:226","msg":"Starting controller and workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295307.2001612,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:236","msg":"Started workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
source-controller log after the fix:
[syedriko@localhost eventing]$ SYSTEM_NAMESPACE=knative-eventing CONFIG_LOGGING_NAME=config-logging ./sources-controller -hardCodedLoggingConfig -master=https://192.168.39.137:8443 -kubeconfig=/home/syedriko/.kube/config
{"level":"warn","ts":1556295364.9111059,"logger":"fallback-logger","caller":"logging/config.go:65","msg":"Fetch GitHub commit ID from kodata failed: "KO_DATA_PATH" does not exist or is empty"}
{"level":"info","ts":1556295364.913477,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:65","msg":"Starting the controller","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295364.9174566,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"cronjobsource/cronjobsource.go:94","msg":"Setting up event handlers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295364.9177465,"logger":"fallback-logger.controller.container-source-controller","caller":"containersource/containersource.go:85","msg":"Setting up event handlers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295365.0181394,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:110","msg":"Starting informers.","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295365.3197339,"logger":"fallback-logger.controller","caller":"sources-controller/main.go:123","msg":"Starting controllers.","knative.dev/controller":"sources-controller","controller/impl":"pkg"}
{"level":"info","ts":1556295365.319814,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:226","msg":"Starting controller and workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295365.3198311,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:236","msg":"Started workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}
{"level":"info","ts":1556295365.3198576,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:226","msg":"Starting controller and workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295365.319874,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:236","msg":"Started workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
^C{"level":"info","ts":1556295371.0204554,"logger":"fallback-logger.controller.cronjob-source-controller","caller":"controller/controller.go:238","msg":"Shutting down workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"cronjob-source-controller"}
{"level":"info","ts":1556295371.020501,"logger":"fallback-logger.controller.container-source-controller","caller":"controller/controller.go:238","msg":"Shutting down workers","knative.dev/controller":"sources-controller","controller/impl":"pkg","knative.dev/controller":"container-source-controller"}