Harris CSD Software Development
Software Patch Report
Patch Name: ada7.1.1-001
Project: ADA
Product: ada
Date Issued: Mon Feb 13 17:23:06 1995
Release on Which Patch May Be Installed: 7.1.1
Release Which Corrects Problem: 8.1
Related Patches: None
Related Modification Numbers: None
Related SARs: HM11314, HM11139, HM11374
Enhancement Description:
1: The pragma DEBUG has been enhanced to allow a single-parameter format:
pragma DEBUG (debug_level) ;
This form of the pragma is allowed only immediately within the
outermost declarative context of a library-level compilation unit.
It applies to the library-level unit in which it is located, instead
of the unit name specified, as in the two-parameter format. In all
other respects, it is identical to the two-parameter format.
Problem Description:
1: The calendar.clock function would incorrectly raise time_error if
invoked enough times (29, 30, 31, or 32 times) after midnight from
an application that started before midnight.
2: HM11314: The result of a binary logical operator (or/and/xor) on an
array slice (array of boolean components) was being figured as the
same operator on the entire array, not just the slice. This caused
constraint_error to be raised when trying to assign the result to a
slice of the correct length. If the slices were static, the
compiler gave an error message about array sizes not being correct.
3: In the presence of pragma memory_pool for data in a package, the
calculations for the size of the memory pool were off by a factor of
eight. For small packages, this would be masked by rounding to the
size of a page. But for large packages, the data for the package
could be much larger than necessary.
4: The function task_attributes.get_task_priority could in some cases
ignore the task_id passed as an argument, using in its place the
current task.
5: If a compilation fails for some reason before creating an object
file, and that compilation used either share mode "shared" or
"both", then subsequent links requiring that library would fail
while attempting to update the shared object for that library.
6: The use of a type in the definition of a subprogram which is marked
with "pragma interface" and the subsequent application of a sizing
clause to that type caused an internal error in the compiler
whenever a call to that interfaced function was made.
7: The -v option to the a.depend and a.which tools caused extraneous
output to be generated along with the library search list, which is
the correct output for that option.
8: The warning "can not inline expand subprograms declared within
nested generics" was being incorrectly emitted and inlining was
being incorrectly disabled in complicated cases involving
instantiations and generics.
9: The a.db tool would fail on startup with an ASSERTION FAILURE
(file dbdwarf_attr.c, line 127) in certain rare circumstances.
10: HM11139: The compiler was erroneously allowing a generic package to
be renamed from another unit. Generic packages can only be renamed
from within themselves.
11: HM11374: Compilations of units which contain large numbers
(hundreds) of tiny instantiations nested directly within them were
compiling very slowly.
12: There were several internal bugs relating to the generation of DWARF
debug information.
Resolution Description:
1: The calendar.clock function has been corrected.
2: The binary logical operators now behave correctly even when their
arguments are array slices.
3: The size calculations for pragma memory_pool have been corrected.
4: The function task_attributes.get_task_priority has been corrected.
5: If an object file is unexpectedly missing, the a.ld tool will
produce the shared object for its library without that object.
6: The implementation of "pragma interface" has been corrected to avoid
the generation of internal errors in this case.
7: The -v option to the a.depend and a.which tools has been corrected.
8: The check for inlines of functions declared within nested generics
has been corrected.
9: The a.db tool has been corrected.
10: Generic packages can no longer be renamed, as required by the Ada
RM, except from within themselves.
11: Some work has been done to improve the speed of compilations of
units containing large numbers of tiny instantiations.
12: The bugs related to the generation of DWARF debug information have
been corrected.
Modified Source:
None.
Object Modules:
usr/hapse/88k_7.1.1/bin/ld
usr/hapse/88k_7.1.1/bin/a.depend
usr/hapse/88k_7.1.1/bin/a.ld
usr/hapse/88k_7.1.1/bin/a.make
usr/hapse/88k_7.1.1/bin/a.netdb
usr/hapse/88k_7.1.1/bin/a.which
usr/hapse/88k_7.1.1/bin/fe
usr/hapse/88k_7.1.1/bin/cg
usr/hapse/88k_7.1.1/bin/cg.88110
usr/hapse/88k_7.1.1/bin/a.db
usr/hapse/88k_7.1.1/bin/std
usr/hapse/88k_7.1.1/bindings/general/general.so
usr/hapse/88k_7.1.1/bindings/posix_1003.1/posix_1003.1.so
usr/hapse/88k_7.1.1/bindings/posix_1003.5/posix_1003.5.so
usr/hapse/88k_7.1.1/bindings/sockets/sockets.so
usr/hapse/88k_7.1.1/standard/calendar_s.a
usr/hapse/88k_7.1.1/standard/ada.lib
usr/hapse/88k_7.1.1/standard/.nets/calendar_s.a01
usr/hapse/88k_7.1.1/standard/.objects/calendar_s.a01
usr/hapse/88k_7.1.1/standard/.objects/calendar_s.a01.p
usr/hapse/88k_7.1.1/standard/.objects/STANDARD.a00
usr/hapse/88k_7.1.1/standard/.objects/STANDARD.a00.p
usr/hapse/88k_7.1.1/standard/standard.so
usr/hapse/88k_7.1.1/standard/gnrx.lib
usr/hapse/88k_7.1.1/standard/GVAS_table
usr/hapse/88k_7.1.1/lib/standard.so
usr/hapse/88k_7.1.1/lib/harrislib.so
usr/hapse/88k_7.1.1/lib/arms.so
usr/hapse/88k_7.1.1/lib/publiclib.so
usr/hapse/88k_7.1.1/lib/general.so
usr/hapse/88k_7.1.1/lib/posix_1003.1.so
usr/hapse/88k_7.1.1/lib/posix_1003.5.so
usr/hapse/88k_7.1.1/lib/sockets.so
usr/hapse/88k_7.1.1/lib/libio.f.a
usr/hapse/88k_7.1.1/lib/libio.t.a
usr/hapse/88k_7.1.1/lib/libiot.f.a
usr/hapse/88k_7.1.1/lib/libiot.t.a
usr/hapse/88k_7.1.1/lib/libarms.a
usr/hapse/88k_7.1.1/lib/libarms.so
usr/hapse/88k_7.1.1/lib/libarms.trace.a
usr/hapse/88k_7.1.1/lib/libarms.trace.so
usr/hapse/88k_7.1.1/lib/libarms.110.a
usr/hapse/88k_7.1.1/lib/libarms.110.so
usr/hapse/88k_7.1.1/lib/libarms.trace.110.a
usr/hapse/88k_7.1.1/lib/libarms.trace.110.so
usr/hapse/88k_7.1.1/arms/arms.so
usr/hapse/88k_7.1.1/arms/.nets/calendar_s.a01
usr/hapse/88k_7.1.1/arms/.objects/calendar_s.a01
usr/hapse/88k_7.1.1/arms/.objects/calendar_s.a01.p
usr/hapse/88k_7.1.1/arms/calendar_s.a
usr/hapse/88k_7.1.1/arms/ada.lib
usr/hapse/88k_7.1.1/arms/gnrx.lib
usr/hapse/88k_7.1.1/arms/GVAS_table
usr/hapse/88k_7.1.1/harrislib/harrislib.so
usr/hapse/88k_7.1.1/publiclib/publiclib.so
Conditions for Installation:
Any Series 4000 or 5000 System
32 Mb Physical Memory (minimum)
CX 7.1 (UX, RT, or SX) installed
Installation of ada_7.1.1
Possible Side Effects:
None
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: ada7.1.1-002
Project: ADA
Product: ada
Date Issued: Wed Jun 21 11:52:19 1995
Release on Which Patch May Be Installed: 7.1.1
Release Which Corrects Problem: 2.1
Related Patches: None
Related Modification Numbers: None
Related SARs: HM11484, HM11500, HM11540, HM11564
Problem Description:
1. HM11484 Compile time, link time, execution load time,
and size of executable files drastically increased
when moving from 88k_6.2 to 88k_7.1.1 if pragma
memory_pool was used on large arrays in packages.
The new implementation in 88k_7.1.1 effectively
forced the array into the .data segment.
2. HM11500 When an Ada ARMS application used a named semaphore
that was opened by the parent process and
then shared by several child processes,
the application hung in sem_wait, blocked on a client_block call.
3. HM11540 Bit_moves and unchecked_conversions on large objects
failed once the offset reached or exceeded 2**16.
4. NightView required linker support for debugging shared-object.
5. HM11564 Use of IPL_SERVER passive tasks had the effect of
incrementing the rescheduling lock of calling tasks. This
adversely affected process scheduling on the CPUs utilized
by the calling tasks.
Resolution Description:
1. HM11484 The old 88k_6.2 and the new 88k_7.1.1 techniques
were combined to correct the problem in cg, cg.88110, a.ld,
and the ARMS run-time libraries.
2. HM11500 The ARMS run-time uses the new fork_init and fork_init_list
external variables found in cx7.1-037 patch to eliminate the
blocked condition.
3. HM11540 Use the triadic register form of the AND instruction
in libada.a and libada.so
to get all 32 bits AND'd, rather than just the lower 16 bits.
4. The linker (ld) contains support for shared-object debugging.
5. HM11564 The ARMS run-time system was modified to prevent the
erroneous incrementing of the rescheduling lock of tasks calling
IPL_SERVER passive tasks.
Modified Source:
None.
Object Modules:
usr/hapse/88k_7.1.1/bin/ld
usr/hapse/88k_7.1.1/bin/a.ld
usr/hapse/88k_7.1.1/bin/cg
usr/hapse/88k_7.1.1/bin/cg.88110
usr/hapse/88k_7.1.1/lib/libada.a
usr/hapse/88k_7.1.1/lib/libada.so
usr/hapse/88k_7.1.1/lib/libarms.a
usr/hapse/88k_7.1.1/lib/libarms.so
usr/hapse/88k_7.1.1/lib/libarms.trace.a
usr/hapse/88k_7.1.1/lib/libarms.trace.so
usr/hapse/88k_7.1.1/lib/libarms.110.a
usr/hapse/88k_7.1.1/lib/libarms.110.so
usr/hapse/88k_7.1.1/lib/libarms.trace.110.a
usr/hapse/88k_7.1.1/lib/libarms.trace.110.so
usr/hapse/88k_7.1.1/lib/libada.110.a
usr/hapse/88k_7.1.1/lib/libada.110.so
Conditions for Installation:
Any Series 4000 or 5000 System
32 Mb Physical Memory (minimum)
CX 7.1 (UX, RT, or SX) installed, up through patch cx7.1-041
Installation of ada7.1.1, including patch ada7.1.1-001
Possible Side Effects:
None.
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: ada_rts7.1.1-001
Project: ADA
Product: ada_rts
Date Issued: Fri Feb 10 14:43:05 1995
This patch corresponds to changes made in patch ada7.1.1-001 for the product
ada. The contents of ada7.1.1-001 are listed here. Not all of these issues
directly pertain to changes in the ada_rts7.1.1-001 patch.
Release on Which Patch May Be Installed: 7.1.1
Release Which Corrects Problem: 8.1
Related Patches: None
Related Modification Numbers: None
Related SARs: HM11314, HM11139, HM11374
Enhancement Description:
1: The pragma DEBUG has been enhanced to allow a single-parameter format:
pragma DEBUG (debug_level) ;
This form of the pragma is allowed only immediately within the
outermost declarative context of a library-level compilation unit.
It applies to the library-level unit in which it is located, instead
of the unit name specified, as in the two-parameter format. In all
other respects, it is identical to the two-parameter format.
Problem Description:
1: The calendar.clock function would incorrectly raise time_error if
invoked enough times (29, 30, 31, or 32 times) after midnight from
an application that started before midnight.
2: HM11314: The result of a binary logical operator (or/and/xor) on an
array slice (array of boolean components) was being figured as the
same operator on the entire array, not just the slice. This caused
constraint_error to be raised when trying to assign the result to a
slice of the correct length. If the slices were static, the
compiler gave an error message about array sizes not being correct.
3: In the presence of pragma memory_pool for data in a package, the
calculations for the size of the memory pool were off by a factor of
eight. For small packages, this would be masked by rounding to the
size of a page. But for large packages, the data for the package
could be much larger than necessary.
4: The function task_attributes.get_task_priority could in some cases
ignore the task_id passed as an argument, using in its place the
current task.
5: If a compilation fails for some reason before creating an object
file, and that compilation used either share mode "shared" or
"both", then subsequent links requiring that library would fail
while attempting to update the shared object for that library.
6: The use of a type in the definition of a subprogram which is marked
with "pragma interface" and the subsequent application of a sizing
clause to that type caused an internal error in the compiler
whenever a call to that interfaced function was made.
7: The -v option to the a.depend and a.which tools caused extraneous
output to be generated along with the library search list, which is
the correct output for that option.
8: The warning "can not inline expand subprograms declared within
nested generics" was being incorrectly emitted and inlining was
being incorrectly disabled in complicated cases involving
instantiations and generics.
9: The a.db tool would fail on startup with an ASSERTION FAILURE
(file dbdwarf_attr.c, line 127) in certain rare circumstances.
10: HM11139: The compiler was erroneously allowing a generic package to
be renamed from another unit. Generic packages can only be renamed
from within themselves.
11: HM11374: Compilations of units which contain large numbers
(hundreds) of tiny instantiations nested directly within them were
compiling very slowly.
12: There were several internal bugs relating to the generation of DWARF
debug information.
Resolution Description:
1: The calendar.clock function has been corrected.
2: The binary logical operators now behave correctly even when their
arguments are array slices.
3: The size calculations for pragma memory_pool have been corrected.
4: The function task_attributes.get_task_priority has been corrected.
5: If an object file is unexpectedly missing, the a.ld tool will
produce the shared object for its library without that object.
6: The implementation of "pragma interface" has been corrected to avoid
the generation of internal errors in this case.
7: The -v option to the a.depend and a.which tools has been corrected.
8: The check for inlines of functions declared within nested generics
has been corrected.
9: The a.db tool has been corrected.
10: Generic packages can no longer be renamed, as required by the Ada
RM, except from within themselves.
11: Some work has been done to improve the speed of compilations of
units containing large numbers of tiny instantiations.
12: The bugs related to the generation of DWARF debug information have
been corrected.
Modified Source:
None.
Object Modules:
usr/hapse/88k_7.1.1/lib/standard.so
usr/hapse/88k_7.1.1/lib/harrislib.so
usr/hapse/88k_7.1.1/lib/arms.so
usr/hapse/88k_7.1.1/lib/publiclib.so
usr/hapse/88k_7.1.1/lib/general.so
usr/hapse/88k_7.1.1/lib/posix_1003.1.so
usr/hapse/88k_7.1.1/lib/posix_1003.5.so
usr/hapse/88k_7.1.1/lib/sockets.so
usr/hapse/88k_7.1.1/lib/libarms.so
usr/hapse/88k_7.1.1/lib/libarms.trace.so
usr/hapse/88k_7.1.1/lib/libarms.110.so
usr/hapse/88k_7.1.1/lib/libarms.trace.110.so
Conditions for Installation:
Any Series 4000 or 5000 System
32 Mb Physical Memory (minimum)
CX 7.1 (UX, RT, or SX) installed
Installation of ada_rts_7.1.1
Possible Side Effects:
None
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: ada_rts7.1.1-002
Project: ADA
Product: ada_rts
Date Issued: Fri Jul 7 14:06:59 1995
Release on Which Patch May Be Installed: 7.1.1
Release Which Corrects Problem: 2.1
Related Patches: None
Related Modification Numbers: None
Related SARs: HM11484, HM11500, HM11540, HM11564
Problem Description:
1. HM11484 Compile time, link time, execution load time,
and size of executable files drastically increased
when moving from 88k_6.2 to 88k_7.1.1 if pragma
memory_pool was used on large arrays in packages.
The new implementation in 88k_7.1.1 effectively
forced the array into the .data segment.
2. HM11500 When an Ada ARMS application used a named semaphore
that was opened by the parent process and
then shared by several child processes,
the application hung in sem_wait, blocked on a client_block call.
3. HM11540 Bit_moves and unchecked_conversions on large objects
failed once the offset reached or exceeded 2**16.
4. HM11564 Use of IPL_SERVER passive tasks had the effect of
incrementing the rescheduling lock of calling tasks. This
adversely affected process scheduling on the CPUs utilized
by the calling tasks.
Resolution Description:
1. HM11484 The old 88k_6.2 and the new 88k_7.1.1 techniques
were combined to correct the problem in cg, cg.88110, a.ld,
and the ARMS run-time libraries.
2. HM11500 The ARMS run-time uses the new fork_init and fork_init_list
external variables found in cx7.1-037 patch to eliminate the
blocked condition.
3. HM11540 Use the triadic register form of the AND instruction
in libada.a and libada.so
to get all 32 bits AND'd, rather than just the lower 16 bits.
4. HM11564 The ARMS run-time system was modified to prevent the
erroneous incrementing of the rescheduling lock of tasks calling
IPL_SERVER passive tasks.
Modified Source:
None.
Object Modules:
usr/hapse/88k_7.1.1/lib/libada.so
usr/hapse/88k_7.1.1/lib/libarms.so
usr/hapse/88k_7.1.1/lib/libarms.trace.so
usr/hapse/88k_7.1.1/lib/libarms.110.so
usr/hapse/88k_7.1.1/lib/libarms.trace.110.so
usr/hapse/88k_7.1.1/lib/libada.110.so
Conditions for Installation:
Any Series 4000 or 5000 System
32 Mb Physical Memory (minimum)
CX 7.1 (UX, RT, or SX) installed, up through patch cx7.1-041
Installation of ada_rts7.1.1, including patch ada_rts7.1.1-001
Possible Side Effects:
None.
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: cx_rt_develop7.1-008
Project: HCX
Product: cx_rt_develop
Date Issued: Thu Jun 13 14:32:35 1996
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches:
cx7.1-057
The following are the related patches for cx_rt_develop patches
001 through 007.
001 - cx7.1-007
trace7.1-001
005 - cx7.1-046
006 - cnd7.1-001
eg7.1-003
hps7.1-004
ise7.1-005
nfs7.1-003
pg7.1-003
tcp_ip7.1-004
Related Modification Numbers: none
Related SARs:
HM11830
The following are the related SARs for cx_rt_develop patches
001 through 007.
002 - HM10199, HM11266
004 - HM11501
Problem Description:
cx_rt_develop7.1-007 was built with an older /usr/include/sys/fbs.h
which meant all objects using struct fbsproc_ds are wrong.
Because cx_rt_develop patches are installed after cx patches, the
corresponding patch cx7.1-057 will not correct the header file problem
unless 7.1 cx_rt_develop patches 001 through 007 are removed.
The following are the problem descriptions for cx_rt_develop patches
001 through 007.
001 - The FBS needed to be instrumented with tracepoints.
002 - rt_datarec fails to map valid target addresses.
- fbsquery and pmqrylist functions leave unreferenced allocated
memory (HM11266).
- cannot specify null pointer or blank string for query functions
(HM10199).
- cannot obtain invocation parameter (HM10199).
003 - RIQ 1CR5045 requires that the major frame and minor cycle at
which an FBS resumes scheduling can be specified.
004 - CX/UX 7.1 obtains a completely new memory page mapping for each
usermap request; after several thousand requests it begins to
take a considerable amount of time to add a new mapping or
perhaps even to fault in a mapped page.
005 - Scheduling FBS (Frequency-Based Scheduled) processes from a
program being debugged under NightView would cause a
multiprocessor system to hang.
006 - Display of variables at an octal address for data recording does
not work properly.
- Variables greater than twelve in the data definition file are not
printed properly. The type is incorrect and the message
"VAR NOT FND" is displayed.
- The system does not allow a user to remove another user's FBS
without being root.
- fbsgetrtc does not work properly from a Fortran program. The man
page does not reflect the number of variables to be passed into
the function call. Calling the functions without the proper
number of variables will produce a memory fault.
- Scheduling FBS (Frequency Based Scheduled) processes from a
program being debugged under NightView, would cause a
multiprocessor system to hang.
- The FORTRAN function calls fbsquery(), sched_fbsquery(), and
pmqrylist(), when called multiple times from a monitoring process
will consume all available memory.
Resolution Description:
Rebuilt all fbs related objects with most current header
(from cx7.1-050).
Rebuilt all fbs related objects that 7.1 cx_rt_develop patches from 001
to 007 modified so that cx_rt_develop7.1-008 will replace all 7.1
cx_rt_develop patches to date and no longer distributing 7.1
cx_rt_develop patches 001 through 007.
The following are the resolution descriptions for cx_rt_develop patches
001 through 007.
001 - The FBS tracepoints have been inserted in the FBS source.
002 - rt_datarec was not testing usermap(2) return value appropriately;
as of release 7.1, only -1 indicates an error, not any negative
value.
- free allocated memory before returning from functions.
- correct name_ptr parameter verification in pgmquery and
pgmreschedule.
- return invocation parameter in fbsquery and pgmquery.
003 - The kernel routine fbsctl() was enhanced with a new function code
to permit arbitrarily changing the major frame and minor cycle of
a stopped FBS and then resuming the FBS. User libraries were
enhanced to offer this functionality to programs.
004 - Keep track of previously mapped pages and use them, if possible,
for subsequent usermap requests. This function is implemented by
a new usermap library function (in librt.a) that invokes the
system call only when a new memory page is really needed.
Applications that are linked with the -lrt option will invoke
this new wrapper function instead of using the usermap(2) system
call directly.
005 - Made necessary changes in the kernel to prevent hanging the
system.
006 - Modified code to handle octal address.
- Modified code to handle more than 12 variables.
- Added an access vector FBS_REMOVE to allow the removal of an FBS
without being root.
- Modified the man page to reflect the need for a fifth variable to
passed to the function.
- Made necessary changes in the kernel to prevent hanging the
system.
- Added in free() calls to release the memory used after each call.
Modified Source:
The following are the modified source for patches 001 through 007.
001 - usr/src/uts/machine/fbs/fbsintr.c
002 - usr/src/cmd/rt_datarec/map_address.c
usr/src/lib/librt/fbsquery.c
usr/src/lib/librt/pgmquery.c
usr/src/lib/librt/pgmreschedule.c
usr/src/lib/librt/pmqrylist.c
003 - usr/include/sys/fbs.h
004 - usr/src/lib/librt/librt.mk
usr/src/lib/librt/usermap.c
005 - usr/src/uts/machine/fbs/fbsop.c
006 - usr/man/p_man/man2/fbsctl.2
usr/man/p_man/man3/fbsgetrtc.3f
usr/src/lib/libF77rt/fbsquery_.c
usr/src/lib/libF77rt/pmqrylist_.c
usr/src/cmd/rtutil/dr_load.f
usr/src/cmd/rtutil/dr_parse.f
usr/src/uts/machine/fbs/fbsctl.c
usr/src/uts/machine/fbs/fbsintr.c
usr/src/uts/machine/fbs/fbsop.c
Object Modules:
/usr/src/uts/machine/M88K/lib_fbs
/usr/src/uts/machine/M88K-RT/lib_fbs
/usr/src/uts/machine/NH5000/lib_fbs
/usr/src/uts/machine/NH5000-RT/lib_fbs
/usr/lib/libF77rt.a
/usr/lib/librt.a
/usr/man/p_man/man2/fbsctl.2
/usr/catman/p_man/man2/fbsctl.2.z
/usr/man/p_man/man3/fbsgetrtc.3f
/usr/catman/p_man/man3/fbsgetrtc.3f.z
/usr/man/p_man/man3/fbsresume.3c
/usr/catman/p_man/man3/fbsresume.3c.z
/usr/man/p_man/man3/fbsresume.3f
/usr/catman/p_man/man3/fbsresume.3f.z
/usr/bin/rt_datarec
/usr/bin/rt_datarec1
/usr/bin/rt_datarec2
/usr/bin/rtutil
Conditions for Installation:
Patch cx7.1-057 must be installed for the installation of this patch to
be complete.
004 - Systems that configure the DATAREC kernel option may install this
software if any application calls the usermap(2) system call for
a large number of variable locations and the time used to make
the series of usermap calls is significant.
Possible Side Effects:
004 - This patch alters the order in which usermap requests are made.
Applications that make all usermap calls together in a
preparatory stage of the program should see no difference.
However, applications that scatter usermap calls throughout the
execution of the program can be fooled if the target's address
space layout is modified.
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: cx_rt_develop7.1-009
Project: HCX
Product: cx_rt_develop
Date Issued: Mon Aug 19 08:57:01 1996
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: none
Related Modification Numbers: none
Related SARs: none
Problem Description:
Customers that already installed patches cx_rt_develop7.1-001 through
cx_rt_develop7.1-007 would still have the wrong fbs.h installed unless
they removed those previously installed patches.
The rtutil released in cx_rt_develop7.1-008 was built incorrectly.
Resolution Description:
Release fbs.h in cx_rt_develop product.
Release working rtutil.
Modified Source: none
Object Modules:
/usr/include/sys/fbs.h
/usr/bin/rtutil
Conditions for Installation: none
Possible Side Effects: none
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: gdb7.1-001
Project: HCX
Product: gdb
Date Issued: Fri Jun 24 14:00:21 1994
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: hc7.1-001
Related Modification Numbers: none
Related SARs: none
Problem Description:
gdb had many problems dealing with ELF/DWARF files
Resolution Description:
gdb was upgraded to version 4.11 and many bug fixes to the DWARF
reader were added.
Modified Source:
usr/src/cmd/gdb/gdb.mk
usr/src/cmd/gdb/gdb_script
usr/src/cmd/gdb/gdb-4.9 directory tree replaced with
usr/src/cmd/gdb/gdb-4.11.
Object Modules:
/usr/bin/gdb
/usr/bin/gdb4.11
/usr/bin/gdb4.9 (replaced by /usr/bin/gdb4.11)
Conditions for Installation:
Install along with hc7.1-001 on all 7.1 systems
Possible Side Effects: none
Comments:
Note that the gdb-4.9 source tree is archived using '/bin/tar' and
compressed using '/usr/ucb/compress' for storage in the 'old'
directory of the patch.
The documentation for gdb 4.9 does not need to be updated for
this patch.
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: nfs7.1-001
Project: HCX
Product: nfs
Date Issued: Tue Sep 26 13:12:20 1995
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: None.
Related Modification Numbers: None.
Related SARs: None.
Problem Description:
1. A race condition between syncs and unmounts on nfs filesystems
can cause the system to panic. Improper rnode locking in
the nfs_putpage() routine will cause a sync operation to
use a null pointer from a vnode structure field that has
been cleared by a nfs_unmount() operation.
2. During the boot process, rpc.lockd implements a grace period during
which lockdaemon peers can re-acquire locks they held prior to the
reboot. During this period, kernel messages are acknowledged and kept
in a cache, but no action is taken on their behalf. At the end of
the grace period, rpc.lockd discards all kernel messages from its
message cache. rpc.lockd then gets confused and uses a stale pointer
to send a reply back to the last kernel message it received. This
produces a message from rpc.lockd
on the system console (or the debug trace file):
rpc.lockd: unknown klm_reply proc(0)
A truncated reply is then sent to the kernel. The kernel then
complains on the system console with the following message:
lock-manager: RPC error: RPC: Can't decode result
Resolution Description:
1. Move the rnode locking in the nfs_putpage() routine up
sooner in the routine in order to properly serialize sync
operations in this routine with unmount operations.
2. Modify the code in rpc.lockd that discards messages from the cache
so the last kernel message pointer is cleared when that message is
discarded.
Modified Source:
usr/src/uts/machine/nfs/nfs_vnodeops.c
usr/src/cmd/rpc.lockd/prot_msg.c
Object Modules:
lib_nfs nfs_vnodeops.o
/usr/etc/rpc.lockd
Conditions for Installation:
All CX/UX 7.1 systems.
Possible Side Effects:
None.
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: nfs7.1-002
Project: HCX
Product: nfs
Date Issued: Tue Nov 28 10:47:00 1995
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: none
Related Modification Numbers: none
Related SARs: none
Problem Description:
When file sharing is used, rpc.lockd uses a hash function to index a
table of shared records. This function can sometimes yield negative
values, causing rpc.lockd to coredump. This is the same problem that
patch nfs6.2-001 fixes (see problem 1 in the Problem Description for
this patch); however a different part of the code caused the negative
value in the hash function. This was seen from accessing a file from
a PowerUX filesystem via NFS.
Resolution Description:
Modified hash function so hash value is always non-negative.
Modified Source:
usr/src/cmd/rpc.lockd/udp.c
Object Modules:
usr/etc/rpc.lockd
Conditions for Installation: none
Possible Side Effects: none
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: nfs7.1-003
Project: HCX
Product: nfs
Date Issued: Wed Jan 17 16:29:09 1996
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: N/A
Related Patches: cnd7.1-001
eg7.1-003
pg7.1-003
tcp_ip7.1-004
hps7.1-004
ise7.1-005
cx_rt_develop7.1-006
cx7.1-050
Related Modification Numbers: None
Related SARs: None
Problem Description:
1. xtimer getting confused
Resolution Description:
1. Fix for dequeued messages causing xtimer to get
confused
Modified Source:
usr/src/cmd/rpc.lockd/prot_msg.c
Object Modules:
usr/etc/rpc.lockd
Conditions for Installation: None
Possible Side Effects: None
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: nfs7.1-004
Project: HCX
Product: nfs
Date Issued: Mon Apr 15 07:59:01 1996
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: None.
Related Modification Numbers: None.
Related SARs: HM11708
Problem Description:
When using touch on a PowerUX system to update the access and modify
times of a file residing on a NFS-mounted CX/UX system disk, the file's modify
time gets set to Dec 31, 1969. This occurs only if no time is specified on the
touch command.
Resolution Description:
Changed rfs_setattr() to fill in the current time if it sees a request
with the tv_usec field set to 1000000. PowerUX systems create requests this
way but CX/UX systems do not, apparently because of a discrepancy in NFS
protocol versions with the CX/UX system having the older version of the two.
Modified Source:
usr/src/uts/machine/nfs/nfs_server.c
Object Modules:
lib_nfs nfs_server.o
Conditions for Installation: None.
Possible Side Effects: None.
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: nfs7.1-005
Project: HCX
Product: nfs
Date Issued: Fri Jun 28 14:43:47 1996
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: NONE
Related Modification Numbers: NONE
Related SARs: HM11843
Problem Description:
NFS automount was not properly deallocating memory and grew in size
during operation.
Resolution Description:
Problem was due to a missing `free(fs)' at the end of procedure
free_filsys. Source code "usr/src/cmd/automount/auto_node.c" was
modified to fix the problem.
Modified Source:
usr/src/cmd/automount/auto_node.c
Object Modules:
usr/etc/automount
Conditions for Installation: NONE
Possible Side Effects: NONE
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: nfs7.1-006
Project: HCX
Product: nfs
Date Issued: Mon Aug 19 08:24:47 1996
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: cx7.1-062
Related Modification Numbers: NONE
Related SARs: HM11453
Problem Description:
For some rpc problems, massive error messages can be dumped to the
system console before the problems got fixed, this will overwhelm
other useful messages.
Resolution Description:
A tunable variable "lock_rpc_error_quiet" is added to "space.c".
Now the rpc error messages to console can be turned on/off by changing
the value of "lock_rpc_error_quiet". The default value is to turn on
the message.
Modified Source:
usr/src/uts/machine/krpc/klm_lockmgr.c
Object Modules:
lib_krpc klm_lockmgr.o
Conditions for Installation:
Need to insatll patch cx7.1-062 first.
Possible Side Effects: NONE
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: nfs7.1-007
Project: HCX
Product: nfs
Date Issued: Thu Nov 21 13:25:37 1996
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: None
Related Modification Numbers: None
Related SARs: 11919
Problem Description:
When SATAN was run against a CX/UX system, it would cause
all sorts of problems, including a possible panic. It was
determined that this was occurring when a short packet was
sent to a port being serviced via RPC.
Resolution Description:
The problem was in the code which processes incoming
RPC service requests (which includes NFS requests).
All incoming requests are delivered to this routine in the
form of mbufs.
It is possible for a request to span multiple mbufs (ie: an mbuf
chain where part of the request is in the first mbuf, continues
into the second mbuf, and so on).
As illustrated below, this routine was checking if the current
mbuf had at least 4*sizeof(u_long) (or 16) bytes, and, if it
didn't, it would call m_pullup().
The purpose of m_pullup() is to traverse an mbuf chain and
"pull up" at least n (in this case 16) bytes from the front
of the chain into a new mbuf (it will then recreate the rest
of the mbuf chain as hanging off of that one, and free the old
first mbuf).
Here is the problem that the original coder missed:
When m_pullup() doesn't find at least n bytes,
it will call m_freem(m) (and return an error code).
Here is the code:
----------------------------------------------------------
if ((m->m_len < 4*sizeof(u_long)) &&
(m_pullup(m,4*sizeof(u_long)) == 0)) {
rsstat.rsbadlen++;
goto bad;
}
...
bad:
m_freem(m);
...
----------------------------------------------------------
We are properly checking the error code, but then we
were jumping down to "bad". "bad" would then call
m_freem() on m (whose value never changed to this
calling routine).
The end result was that when we couldn't pull up at least
16 bytes in the incoming request, we would wind up calling
m_freem() on the same chain twice. The first time would put
the chain on the free list. The second time was attempting
to put the chain that's already on the free list on to the
free list.
The end result was that somehow multiple references
to the same mbuf could be acquired, and 'funky' stats
(such as "-574958294/220 mbufs in use") would be
reported.
The fix was as simple as adding one line (see below).
if ((m->m_len < 4*sizeof(u_long)) &&
(m_pullup(m,4*sizeof(u_long)) == 0)) {
rsstat.rsbadlen++;
Insert m=0; /*Don't free -- m_pullup() does that*/
goto bad;
}
...
bad:
m_freem(m);
...
By setting 'm' to NULL when m_pullup() fails, the second m_freem()
(in bad) will not try to (nor will it be able to) free it again.
Modified Source:
usr/src/uts/machine/rpc/svc_kudp.c
Object Modules:
lib_rpc svc_kudp.o
Conditions for Installation: None
Possible Side Effects: None
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: nfs7.1-008
Project: HCX
Product: nfs
Date Issued: Mon Jul 13 14:16:22 1998
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: NONE
Related Modification Numbers: NONE
Related SARs:
HM12152, HM12222, HM12348
Problem Description:
(1) Running makes across NFS causes defunct processes to accumulate
until the system is out of process table space and the system hangs.
(2) When using the automounter with a large map the automounter dies
and causes user shells in auto-mounted directories to freeze. The
problem has been traced to a pointer not getting reset in a loop
and eventually overwriting the stack for the process.
(3) Init process may hang doing an nfs sync. As a result, the operations
that init does such as spawning new terminal processes or removal of
orphaned zombie processes is not done.
Resolution Description:
(1) Added a timeout mechanism to the loop where RPC calls wait for a
semaphore before sending data across the wire. This prevents nfs
processes from spinning forever while holding resources needed by
init.
(2) Added code to reset pointer in the loop.
(3) The hang was caused by a previous nfs operation. If the file was
truncated during the operation, it could leave pages locked forever.
Fix is to always release page locks even if a file is truncated.
Modified Source:
usr/src/uts/machine/rpc/clnt_kudp.c
usr/src/cmd/automount/auto_look.c
usr/src/uts/machine/nfs/nfs_vnodeops.c
Object Modules:
lib_rpc clnt_kudp.o
usr/etc/automount
lib_nfs nfs_vnodeops.o
Conditions for Installation: NONE
Possible Side Effects: NONE
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: trace7.1-001
Project: HCX
Product: trace
Date Issued: Wed Mar 30 13:52:01 1994
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: cx7.1-007 and cx_rt_develop7.1-001
Related Modification Numbers: none
Related SARs: none
Problem Description:
The trace tool needed an option to support the FBS tracepoints added in
patch cx7.1-007.
The ntfilter tool lost the second and third arguments of non-standard
kernel tracepoints (for example, the FBS tracepoints).
The ntfilter tool did not handle nested system calls, which can occur
during the execution of user-level interrupt routines.
Resolution Description:
The -F option has been added to the trace tool to enable the FBS
tracepoints.
The ntfilter tool has been changed to keep all the arguments logged with
non-standard tracepoints.
The ntfilter tool has been changed to produce the proper sequence of
tracepoints for a nested system call.
Modified Source:
usr/src/cmd/trace/ntfilter.c
usr/src/cmd/trace/trace.c
usr/src/cmd/trace/trace_def.h
Object Modules:
usr/bin/trace
usr/bin/ntfilter
Conditions for Installation:
Patch cx7.1-007 must be installed for the installation of this patch to
be complete.
Possible Side Effects: none
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: vdisk7.1-001
Project: HCX
Product: vdisk
Date Issued: Wed Jul 20 13:13:14 1994
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: cx7.1-017
Related Modification Numbers: None
Related SARs: None
Problem Description:
RIQ# 4FR1310 (Ref# 4700) requires support for file systems
larger than 4 gigabytes.
System may panic when using virtual disks.
Resolution Description:
Provide support for disk concatenation (also known as spanning)
and for new interface necessary for file system maintenance
tools to access devices larger than 4 gigabytes.
Notify physical disk device driver that request is NOT async
I/O request, so the device driver will not try to access the
wrong structure.
Modified Source:
usr/man/a_man/man1/vdisk.1m
usr/man/p_man/man4/vdisk.conf.4
usr/src/cmd/vdisk.c
usr/src/uts/machine/sys/vdisk.h
usr/src/uts/machine/io/vdisk.c
Object Modules:
sbin/vdisk
usr/catman/a_man/man1/vdisk.1m.z
usr/catman/p_man/man4/vdisk.conf.4.z
usr/include/sys/vdisk.h
usr/man/a_man/man1/vdisk.1m
usr/man/p_man/man4/vdisk.conf.4
usr/src/uts/machine/sys/vdisk.h
lib_vdisk vdisk.o
Conditions for Installation:
Patch cx7.1-017 must be installed.
Possible Side Effects: None
return to index
================================================================================
Harris CSD Software Development
Software Patch Report
Patch Name: vsx_tests7.1-001
Project: HCX
Product: vsx_tests
Date Issued: Fri Apr 8 14:16:50 1994
Release on Which Patch May Be Installed: 7.1
Release Which Corrects Problem: TBD
Related Patches: None
Related Modification Numbers: None
Related SARs: None
Problem Description:
CX/UX 7.1 requires new files to support portions of the
VSX Test Suite Version 4.3.2.
Resolution Description:
Add new files in support of VSX Test Suite Version 4.3.2.
Modified Source:
None
Object Modules:
usr/src/PRODUCTS/vsx_tests_7.1_lpr
usr/src/PRODUCTS/vsx_tests_7.1_rel
usr/src/VSX/LANG/README
usr/src/VSX/LANG/VSX4L0.coll
usr/src/VSX/LANG/VSX4L0.ctype
usr/src/VSX/LANG/VSX4L0.info
usr/src/VSX/LANG/VSX4L0.mon
usr/src/VSX/LANG/VSX4L0.time
usr/src/VSX/LANG/VSX4L1.coll
usr/src/VSX/LANG/VSX4L1.ctype
usr/src/VSX/LANG/VSX4L1.info
usr/src/VSX/LANG/VSX4L1.mon
usr/src/VSX/LANG/VSX4L1.time
usr/src/VSX/LANG/VSX4L1.time-a
usr/src/VSX/LANG/VSX4L1.xlate
usr/src/VSX/LANG/VSX4L2.coll
usr/src/VSX/LANG/VSX4L2.ctype
usr/src/VSX/LANG/VSX4L2.info
usr/src/VSX/LANG/VSX4L2.mon
usr/src/VSX/LANG/VSX4L2.time
usr/src/VSX/LANG/VSX4L2.time-a
usr/src/VSX/LANG/VSX4L2.xlate
usr/src/VSX/LANG/VSX4L3.coll
usr/src/VSX/LANG/VSX4L3.ctype
usr/src/VSX/LANG/VSX4L3.info
usr/src/VSX/LANG/VSX4L3.mon
usr/src/VSX/LANG/VSX4L3.time
usr/src/VSX/LANG/VSX4L3@dict.coll
usr/src/VSX/LANG/VSX4L3@dict.ctype
usr/src/VSX/LANG/VSX4L3@dict.info
usr/src/VSX/LANG/VSX4L3@dict.mon
usr/src/VSX/LANG/VSX4L3@dict.time
usr/src/VSX/LANG/makefile
Conditions for Installation:
Install on CX/UX Release 7.1 for XPG3 verification using VSX 4.3.2 only.
Possible Side Effects:
None
return to index
================================================================================