Opened 9 years ago

Last modified 7 days ago

#101 new defect

When reloading a volume with the same name as a mounted volume rldr_check_pvol_ and rldr_input_ report inappropriate messages

Reported by: Eric Swenson Owned by: Eric Swenson
Priority: minor Milestone:
Component: Hardcore Version: MR12.6f
Keywords: Cc:

Description

If you boot a system with a d451 RPV, and reload an rpv to a 3381 io drive, you see the following messages:

1512.9  RCP: Mounted copy of Storage System volume rpv on dska_00a for user I/O.
1512.9  RCP: Mounted IO volume  on dska_00b for user I/O.
1512.9  RCP: Mounted IO volume  on dska_00c for user I/O.
rldr_check_pvol_: Reload may overflow volume
rldr_check_pvol_: Disk label requires 27006 records; Volog label requires 29950 records on pv rpv
rldr_check_pvol_: Reload may overflow vtoc
rldr_check_pvol_: Disk label requires 13505 vtoce; Volog label requires 14974 vtoce on pv rpv

reload_volume: Initialized physical volume rpv does not match online logical image. Do you wish to proceed   M-> [auto-input] yes

These are not really appropriate messages. Of course the rpv-to-be-reloaded does not (necessarily) match the rpv that is mounted. But we shouldn't be comparing these two.

The reload works perfectly fine, but the messages are wrong. Also, a little later in the reload, you see:

rldr_input_: Please get the following input volumes
:  V01
reload_volume: Begin reload of volume rpv  at 1512.9
Mounting tape V01 for reading
1512.9  RCP: Attached tapa_01 for Initializer.SysDaemon.z
1512.9  RCP: Note (tapa_01) - V01,sys
1512.9  RCP: Using Reel V01 on tapa_01 for Initializer.SysDaemon.z
Mounted Multics volume "V01" (recorded at 800 BPI), on device tapa_01
rldr_input_: Warning - new disk type for rpv
1513.2  RCP: Detached tapa_01 from Initializer.SysDaemon.z
rldr_input_: reloaded from input volume V01 112 records of 28 directories and 3323 records of 251 segments on pv rpv
reload_volume: End reload of volume rpv at 1513.2
reload_volume: Reloaded on volume rpv 112 records of 28 directories and  3323 records of 251 segments and 0 null vtoces

The message: "rldr_input_: Warning - new disk type for rpv" is also not correct. We don't really care that the foreign system rpv is not of the same disk type as the system on which we're performing the reload.

These messages should be suppressed when the reload is done to volumes that were init_vol'ed with "-copy". Not sure if that information is around by the time the reload happens though.

Change History (1)

comment:1 by Eric Swenson, 7 days ago

Two of the three messages are accurate but badly worded; the third makes the wrong comparison.
Fixing them is simple, but it should be tested with a real reload_volume of an RPV, so no code has been
changed.

The scenario: on a system booted from a D451 RPV, reload_volume reloads a
volume named rpv from dump tapes onto a 3381 drive initialized with
init_vol -copy.

  1. rldr_check_pvol_: Reload may overflow volume / ... vtoc

These come from rldr_check_pvol_ (bound_volume_reloader_):

`
if backup_volume_log.n_rec > vol_map.n_rec then ... "Reload may overflow volume"
if backup_volume_log.n_vtoce > vtoc_header.n_vtoce then ... "Reload may overflow vtoc"
`

  • What is compared. These do not compare against the mounted RPV.
    • backup_volume_log is the volume log of the volume being reloaded. It records the size of the original volume as it was dumped, here a D451 with 29950 records and 14974 VTOCEs.
    • vol_map and vtoc_header are the target disk's, here a 3381 with 27006 records and 13505 VTOCEs.
  • The warning is accurate. The target is smaller than the original, so the reload can overflow it if the original was nearly full. "May" is the right word; the volume log records the volume's size, not how much of it was in use.
  • Suggestion: improve the wording, for example "Output volume is smaller than the dumped volume; the reload may not fit." The volume log knows only the size, so the check cannot be made exact.
  1. reload_volume: Initialized physical volume rpv does not match online logical image. Do you wish to proceed
  • Where it comes from: reloader.pl1 asks this whenever rldr_check_pvol_ returns a non-fatal code, that is, for either warning above.
  • The wording misleads. "Online logical image" suggests a comparison with the mounted system. Something like "Physical volume rpv may not hold the dumped volume (see above). Do you wish to proceed" would describe what was actually checked.
  1. rldr_input_: Warning - new disk type for rpv

rldr_input_.pl1:

`
if rldr_data_.rpv then do;

if (rldr_data_.rpv_disk_type = backup_info.rpv_disk_type) & warning_printed then

... "Warning - new disk type for rpv"

`

  • What it compares:
    • backup_info.rpv_disk_type is the disk type of the RPV of the system that was dumped.
    • rldr_data_.rpv_disk_type comes from mdc_$pvname_info ("rpv", ...) in reloader.pl1, so it is the disk type of the mounted RPV of the system doing the reload.
  • That is the wrong comparison. The warning says nothing about the drive being reloaded onto (rldr_data_.disk_type (pvindex)), which is what the operator would care about. It fires in exactly the reporter's case, where the reloading system's RPV differs from the dumped one, which is irrelevant.
  • Suggestion: compare backup_info.rpv_disk_type with the disk type of the output volume, and word the message as "Reloading rpv onto a disk of a different type (NNNN) than it was dumped from (NNNN)", or drop the warning, since check 1 already covers the case that matters (a smaller disk).
  • Caveat: for version 1 volume logs, reloader.pl1 sets disk_type (1) = rpv_disk_type (the mounted RPV's type). The change must take the output drive's type from the volume label or from RCP, and has to be checked against both volume-log versions.

About the ticket's suggestion

The ticket suggests suppressing these messages for volumes initialized with
init_vol -copy. The label carries no such flag (fs_vol_label.incl.pl1),
and the size warning is valid regardless, so I would not suppress on that
basis.

Files involved

system_library_1/source/bound_volume_reloader_.s.archive:
rldr_check_pvol_.pl1, reloader.pl1, rldr_input_.pl1. Changing the
message texts also means updating the message documentation at the end of
each program. These run in the Initializer at BCE/ring-1 reload time, so the
change needs an MCR and testing with a real volume reload.

Note: See TracTickets for help on using tickets.