﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
298	copy_deadproc and copy_liveproc incorrectly captures UID for segments in the saved pdir	Gary Dixon	Gary Dixon	"The copy_deadproc and copy_liveproc commands attempt to copy a process' pdir (process directory) contents to >dumps>saved_pdirs subdirectory so that ""dead process"" or hung ""live process"" can be examined using analyze_multics address translation capabilities.  

Both commands use the copy_dir_ subroutine to copy process directory contents, and to annotate that contents with a pdir_info segment that captures UID for each copied segment (so azm can figure out from copied kst and dseg which segnames were initiated by which segment number in the liveproc or deadproc).  

This translation of segnames to seg numbers is needed to translate pointers between/within segments in the copied pdirs (so stacks can be traced, referenced segments can be identified, etc.).

But with passing of time, UIDs (based on a portion of the Multics calendar clock reading) have grown large enough to populate all 36 bits of the UID variable.

Unfortunately, code in copy_dir_ was attempting to convert the 36 bit UID to a fixed bin(35) value which could then be converted to octal characters for inclusion in the pdir_info annotation segment (added by copy_pdir_ to the copied process directory).  This conversion works incorrectly with a full 36-bit UID.

Instead, the conversion should be handled in one step using the ioa_ control string: 
{{{
^12.3b
}}}
to directly convert the UID to 12 octal digits.

This ticket requests change to copy_dir_ for this correction."	defect	closed	major	MR12.8	Tools	MR12.7	fixed		
