[183] in Athena_Backup_System

home help back first fref pref prev next nref lref last post

Canceling Slave Jobs

daemon@ATHENA.MIT.EDU (Diane Delgado)
Wed Jan 24 14:21:46 1996

To: athena-backup@MIT.EDU
Date: Wed, 24 Jan 1996 14:21:13 EST
From: Diane Delgado <delgado@MIT.EDU>



I have been thinking about how we can cancel a job on a Slave
without threads or having to mutilate the rpc or the slave
with some really horrible and unmaintainable signal/select stuff.

Proposal:

There are several calls which the Slave makes to the master:

   job_status - sends its job report about what it is doing
   validate_media - ask if it's okay to use a particular medium
   job_attention - ask for things like media mount or replacement


We could use the return codes values for each of these interfaces
to communicate a cancel request to the slave.  The slave will
check the error code from each of these calls, and if it gets
an ABS_JOB_CANCELED, it will stop its processing at the next
convenient point in time.

The ui would provide a command to cancel a particular job,
which would cause the master to set the job's state to "canceled".
When it recieves one of the 3 aforelisted requests from the slave,
it will check the job's state, and if it is "canceled" it will
return the ABS_JOB_CANCELED error to the slave; otherwise it
will fullfill the slave's request as usual.


The caveat here is that the job won't always be canceled immediately,
but it's better than not having any support for cancellation or having
unmaintainable and dangerous cancellation.  There is probably some
rare and convoluted case where the cancel may not reach the slave at all.

Please think hard about this and provide some comments.


Thanks,

dmd

home help back first fref pref prev next nref lref last post