[EMAIL PROTECTED] wrote:

All file systems on one of my backup clients failed over the weekend. The dump summary thinks the system was offline, but it wasn't, and the amadad debug log had this in it:

amandad: time 0.016: amandahosts security check passed
amandad: time 0.016: running service "/usr/lib/amanda/sendsize"
sendsize: error [spawn /usr/lib/amanda/runtar: dup2 in: Bad file descriptor]
...
After digging through all this, I tried seeing what amcheck revealed (which I should have done first It stated:

 ERROR: jpt: [can not read/write /dev/null: Permission denied]

Evidently, from what I can tell, /dev/null's permissions were changed sometime on Friday (16:42 to be precise) after my cron-driven amcheck runs.

Is there any way to have amanda mention in the summary report that the reason a backup failed was because /dev/null was not writeable?

Besides the fact that a LOT of programs will fail mysteriously when /dev/null has been tampered with, here is a patch for sendsize.c .

ps. Ever replaced /dev/null with a plain file by accident?  :-)

PPS. patch not tested to verify it it really detects the problem  :-)

--
Paul Bijnens, Xplanation                            Tel  +32 16 397.511
Technologielaan 21 bus 2, B-3001 Leuven, BELGIUM    Fax  +32 16 397.512
http://www.xplanation.com/          email:  [EMAIL PROTECTED]
***********************************************************************
* I think I've got the hang of it now:  exit, ^D, ^C, ^\, ^Z, ^Q, F6, *
* quit,  ZZ, :q, :q!,  M-Z, ^X^C,  logoff, logout, close, bye,  /bye, *
* stop, end, F3, ~., ^]c, +++ ATH, disconnect, halt,  abort,  hangup, *
* PF4, F20, ^X^X, :D::D, KJOB, F14-f-e, F8-e,  kill -1 $$,  shutdown, *
* kill -9 1,  Alt-F4,  Ctrl-Alt-Del,  AltGr-NumLock,  Stop-A,  ...    *
* ...  "Are you sure?"  ...   YES   ...   Phew ...   I'm out          *
***********************************************************************

--- sendsize.c_ORIG     2004-06-07 16:08:12.000000000 +0200
+++ sendsize.c  2004-06-07 16:07:04.000000000 +0200
@@ -797,6 +797,9 @@
     rundump_cmd = stralloc(cmd);
 
     stdoutfd = nullfd = open("/dev/null", O_RDWR);
+    if (nullfd < 0) {
+       error("%s: open /dev/null returned: %s", cmd, strerror(errno));
+    }
     pipefd[0] = pipefd[1] = killctl[0] = killctl[1] = -1;
     pipe(pipefd);
 

Reply via email to