Hitting Ctrl+C while in etc-update to break out of the program will auto-update all remaining config files in the list. This is the same behavior as selecting "-5" while interactively in the program. Reproducible: Always Steps to Reproduce: 1. Update some packages that include updates to config files. 2. Run etc-update. 3. Hit Ctrl+C while in etc-update Actual Results: Remaining config file updates get merged without warning, then programs exits. If there were pending updates for key configuration files, this could cause them to get overwritten by package defaults, which may lead to system breakage. In my case, sshd_config got overwritten, but I was able to recover from a backup. Expected Results: Program should simply exit.
The signal handlers look like this: trap "die terminated 1" SIGTERM trap "die interrupted 1" SIGINT And the die function looks like this: die() { trap SIGTERM trap SIGINT if [ "$2" -eq 0 ]; then echo "Exiting: ${1}" scan > /dev/null [ ${count} -gt 0 ] && echo "NOTE: ${count} updates remaining" else echo "ERROR: ${1}" fi rm -rf "${TMP}" exit ${2} } So, it seems like it should simply say "ERROR: interrupted", remove temp files, and exit. What am I missing?
i certainly hit CTRL+C in the middle of an etc-update from time to time and have yet to his this behavior ...
Okay, I've tried reproducing this several different ways on one of my MIPS machines, but it exits normally. The amd64 box, which is where I saw this happen, hasn't updated any packages yet to require running etc-update again. I believe it couldn't have been me typing '-5' and then forgetting, because sshd_config was one of the last files that wanted to be updated (after webapp-config's vhost setup). But I only looked at the merge differences for /etc/rc.conf (the first config file that wanted an update), merged that, then thought I'd messed something up. So I was sitting back at the etc-update prompt when I hit Ctrl+C, looked at /etc/rc.conf, then exited nano. Since I was in a screen session, I scrolled up (Ctrl+A up/down), and saw that all the remaining config files had been replaced. I assumed it was the Ctrl+C keypress that did that. Commented it (somewhat snarkily) in #gentoo-dev, and robbat2 mentioned he'd run into the same issue a few times, randomly, and suggested I open a bug. Could it be possible that there's some random issue that makes it difficult to reproduce? I'll keep trying Ctrl+C at etc-update prompts to see if it re-occurs.
Still can't reproduce. Assuming this is a heisenbug, or I had a minor temporal accident and fat fingered it somehow.