Skip to content

MUPIP INTRPT (aka KILL -15) of rocto cancels a running query instead of creating a ZSHOW dump file

Final Release Note

Description

For a YottaDB process, mupip intrpt (https://docs.yottadb.com/AdminOpsGuide/dbmgmt.html#intrpt) currently triggers the $ZINTERRUPT mechanism (https://docs.yottadb.com/ProgrammersGuide/isv.html#zinterrupt). The default value of $ZINTERRUPT is to invoke the $ZJOBEXAM() function which does a ZSHOW "*" to capture the state of the process (M local variables etc.) for analysis by the user. This is useful functionality in case processes are hung or looping.

This functionality does not currently work for rocto. If one attempts a mupip intrpt on a rocto process, it ends up canceling the currently running query which is not what the user expects.

This is unfortunately the case because both MUPIP INTRPT and query cancellation logic in rocto use the same SIGUSR1 signal (i.e. KILL -15) for their implementation.

Since MUPIP INTRPT has been there for a while, it is best if rocto finds another signal to use for the query cancellation functionality. For example, it can use SIGUSR2 instead (currently unused by a rocto process). That way MUPIP INTRPT and query cancellation both will work in rocto.

Draft Release Note

Rocto processes now respond to a mupip intrpt command (or a kill -15) by dumping the output of ZSHOW "*" into a file for later analysis, like all other YottaDB processes already do. Previously, this caused the currently running query to be canceled (an unexpected/undesirable behavior). Note though that if the YottaDB release being used is r1.30, mupip intrpt will cancel the query. That is, one needs the YottaDB r1.31 (latest at this point) or higher release in order for mupip intrpt to work correctly in rocto.

Edited by Narayanan Iyer