All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org
Bash: a bad test that made a system corrupted
simple, funny but terrible
»
Votes:
2/2
What's wrong in this portion of code?
1 if /bin/false; then
2 echo "Yes it's false"
3 else
4 $command 2> $logfile \
5 | $compress_bin -f -q -9 \
6 > $file_to_create.$ext 2> $logfile
7 file_to_create="$file_to_create.$ext"
8 fi
9
10 if [[ $? -gt 0 ]]; then
11 warning "Unable to exec \$command; check \$logfile"
12 rm -f $file_to_create
13 else
14 rm -f $logfile
15 fi
Update 2012 July 23rd: This portion of code comes from the favorite tool Backup Manager . (I couldn't access to this page to report the problem.) The biggest trouble is that the script always returns successfully even if the backup command failed: As you can see, the 10th line checks if there is any error in the last execution. Ufortunately, (in Bash) the last execution is an assigment file_to_create="$file_to_create.$ext"
, which will always return 0 (no error found.) Any errors in the 4th - 6th are simply ignored by this assigment.
In a system of my customer, using this buggy code really caused a problem: Backup Manager was used to back up database system. For some reasons, backup manager couldn't connect to the mysql server, but as it didn't there is a error, it still generated an empty backup file. Damn it. In a nice day, system shut down permanently, and then the sysadmin found that hey hadn't any backup left. (FYI, the customer used a stable version of Backup Manager on Ubuntu 10.04 LTS Server edition)
After this issue, we completey forget Backup Manager. A backup tool shouldn't be so buggy.
Comments