Patch Name: PHNE_19502 Patch Description: s700_800 11.00 FTAM9000 E.06.00 cumulative patch Creation Date: 99/08/10 Post Date: 99/09/13 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: FTAM9000 E.06.00 Filesets: FTAM9000.FTAM,fr=E.06.00,fa=HP-UX_B.11.00_32/64,v=HP FTAM9000.FTAM-MAN,fr=E.06.00,fa=HP-UX_B.11.00_32/64,v=HP Automatic Reboot?: No Status: General Release Critical: Yes PHNE_19502: HANG CORRUPTION FTAM transfer hangs, when ft_connect() API runs with parameter number_of_retry > 0. ftam_init hangs the system, by running at real time priority. Memory corruption in calling fr_rireceive() API. PHNE_16589: OTHER FTAM transfer hangs for FTAM-1, FTAM-2 and INTAP-1 documents. Category Tags: defect_repair enhancement general_release critical halts_system corruption Path Name: /hp-ux_patches/s700_800/11.X/PHNE_19502 Symptoms: PHNE_19502: 1. JAGaa32723 (SR 1653275875): Data lost at ACSE layer using FTAM-3 files with maximum record length of 32767 bytes. 2. JAGab17979 (SR 1653305920): ft_connect() hangs if a DR-TPDU is received in answer to a CN-SPDU . 3. JAGab46342 (SR 1653309096): fcp option -N doesn't exist in HPUX 11.0. 4. JAGab12535 (SR 1653301200): FTAM CPU usage is very high depending on X25 parameters and TPDU size . 5. JAGab39184 : vspy() application is dumping core . 6. JAGab71376 : System hangs with ftam_init running at priority 0. PHNE_18161: 1. SR 1653251959: ft_sdata is not working with data unit that is larger than 7K. 2. SR 1653255919: ft_rdata hangs when maximum record length received is equal to 32767 bytes . 3. SR 1653234286: Enhancement to have a maximum record length up to 32K for FTAM-3 files. 4. SR 1653296194: fr_ireceive() causes 12 bytes memory leak. 5. SR 1653302547: F_CREATE_req is refused due to future-filesize field. 6. SR 1653284604: em_wait() waits for lost event forever. 7. SR 1653300228: For FTAM-1 files with fixed record length ,space characters are truncated. 8. SR 1653292391: The transfer for FTAM-1 file-type files with fixed length string significance , aborts while communicating to DEC and SUN FTAM. PHNE_16589: 1. SR 1653274027: FTAM dumps core when multiple local applications are defined in local_app. 2. SR 1653263673: Low layer FTAM APIs hang when receiving a F-P-ABORT PDU. 3. SR 1653237685: The count for the connect request retry mechanism to be made configurable. 4. SR 1653261453: FTAM does not send F-P-Abort when functional units are missing in F-INITIALIZE response. 5. SR 1653261461: FTAM does not send F-P-Abort when no grouping functional unit is present in F-INITIALIZE response. 6. SR 1653261487: F-U-Abort is incorrectly sent instead of F-P-Abort. 7. SR 1653261479: F-P-Abort is not sent when QOS is not present in F-INITIALIZE response. 8. SR 5003439562: ANSI C compiler returns invalid prototype error in mapftam.h file. 9. SR 1653257238: ft_egroup() hangs when "illegal grouping sequence" error is received. 10. SR 1653267682: FTAM_INIT does not handle ABORT PDU properly under some situations. 11. SR 4701400010 FTAM takes null password when there is no entry in .ftamrc file. 12. SR 1653263665 Enhancement to include prototypes for FTAM API functions for C++ support. 13. SR 1653256594: Enhancement for fcp to not prompt for password when there is no password. 14. SR 5003414391: FTAM - NSAP rollover code is not working. 15. SR 4701393975: FTAM API trace log file is incomplete if application is interrupted by a Control-C. 16. SR 1653279026: FTAM demo program vspy is not working. 17. SR 4701405936: FTAM transfer hangs for FTAM-1, FTAM-2 and INTAP-1 document types. 18. SR 1653274084: FTAM/9000 release notes for 11.00 doesn't mention changes to be made while linking an application using FTAM APIs. 19. SR 4701383489: Fix for improper reading of directory data when encoded as indefinite length PDUs has problems(refer SR1653240754). 20. SR 1653240754: FTAM does not read directory data properly when encoded as indefinite length PDUs. 21. SR 4701406983: FTAM Responder hangs under certain conditions, when ap_snd returns AP_AGAIN. Defect Description: PHNE_19502: 1. JAGaa32723 (SR 1653275875): When the PDU size is large(~32767) FTAM splits the data and calls ap_snd() twice. When ap_snd() sends the first part of the data and returns AP_AGAIN, FTAM queues the data and does not send the second part of data, resulting in data loss. Resolution: When ap_snd() returns AP_AGAIN, ap_snd() is invoked again with the same parameters, till it is successful,therefore no data loss occurs now . 2. JAGab17979 (SR 1653305920): There was a bug in the way the Provider Abort indication was handled for the case where retry parameters(retry on transient errors)for ft_connect() was set greater than 0. Resolution: The data structure which stores the retry parameters for Abort indication, is now being used for ft_connect() with retry parameter set to greater than zero also . 3. JAGab46342 (SR 1653309096): To add an option to fcp to suppress read attributes on the source file.This is required when fcp has to be used with systems which do not permit reading the attributes of the files present on them. Resolution : The option -N with fcp facilitates the copying of a file, without reading the attributes of the source file. This option is useful when the ftam_init is not allowed to read the attributes of the source file. 4. JAGab12535 (SR 1653301200): ap_rcv() is retried as long as the ap_rcv() returns with ap_errno set to AP_AGAIN . This looping and invoking of ap_rcv() was causing the SPP to consume CPU whereas no productive work was being achieved . Resolution: ap_rcv() is retried after a delay of one second, if AP_AGAIN is returned more than twice. 5. JAGab39184: A global array was used to copy memory address in API call fr_rireceive(), which was freed upon Termination or Abort indication .When applications were connecting to vspy app. and doing multiple file transfers ,unallocated memory was being used to store the memory addresses, causing core dump. Resolution: The 12 bytes allocation which is done on the invocation of fr_ireceive() API , is being freed after the completion of the event, in the event-handler. 6 JAGab71376: If the file to be accessed is already locked exclusively by someone else, the ftam_init tries to clean up the lock entries if owned by dead processes .The implementation of this was done using rtprio() system call which was wrong. This was causing ftam_init to become a real-time process and cause system hang. Resolution: The implementation was changed to make use of another appropriate system call. PHNE_18161: 1. SR 1653251959: There was a limitation on the size of sockets used for communication between the user process and ftam_init. Resolution: The size of the sockets used have been increased. 2. SR 1653255919: There was a bug in the code which determines the number of data elements to be sent to the user process. Resolution: Now, since the PDU size can go upto 32767, the max. no. of data elements is determined dynamically by actually calculating the number of bytes received. 3. SR 1653234286: FTAM has been enhanced to handle Maximum Record Lengths of upto 32767 for FTAM-3 files. The user can set the Maximum Record Length for FTAM-3 files using fchdoc (as before).The user can also set the Maximum record length using the ftam configuration file(refer SR1653212027). The allowed range for the FTAM data PDU size that can be set in the configuration has been increased from 7168/12288 to 7168/32767(refer SR4701369835). Resolution: The implementation has been done for all modes of FTAM: Interactive, Commandline and Application Programmatic Interface. 4. SR 1653296194: Memory was not being freed up allocated by the routine ftai_q_rireceive_req(). Resolution: In the routine fr_shut_rcid(), where other resources held by the particular connection are being released, now the allocated memory as well is released. 5. SR 1653302547: There was a mistake while setting the F_CREATE_req mask flag. Resolution: Now instead of setting the flag ASE_FT_AN_FUTURE_FILESIZE, the correct flag ASE_FT_AN_FILE_AVAILABILITY is being set for the F_CREATE_req mask. 6. SR 1653284604: em_wait() waits forever for a lost event . Resolution: The variable con_id was not being initialized to zero and it used to have a random value. That is why it was hanging sometimes and not consistently. 7. SR 1653300228: While receiving the data of document type FTAM1 and fixed string significance (fixed string length), by default the space characters are removed because padding characters also happen to be space characters. Resolution: A flag (FTAM1_PADDING_FLAG) has been provided in the ftam_conf file, which has to be set to the value 1 in order to suppress the default behaviour so that the space characters will not be removed. 8. SR 1653292391: There was a bug due to which parsing of the attributes of the file was returning invalid value and hence the transfer was aborting. Resolution: While reading the string length of the file we were using the routine getunsignedlong and the string length was being interpreted as negative value. Now we are using the routine getlonglong and it is working fine. PHNE_16589: 1. SR 1653274027: Insufficient size of an array used to read the contents of the local_app file, was causing a segmentation violation. 2. SR 1653263673: Uninitialized contexts were resulting in incorrect decoding of an ABORT PDU. 3. SR 1653237685: The count for the connect request retry mechanism has been made configurable. The default value is still 10. 4. SR 1653261453: FTAM Protocol Abort was not being sent when the F-INITIALIZE response contained invalid mandatory parameters. 5. SR 1653261461: FTAM Protocol Abort was not being sent when the F-INITIALIZE response contained invalid mandatory parameters. 6. SR 1653261487: FTAM Protocol Abort was not being sent when the F-INITIALIZE response contained invalid mandatory parameters. 7. SR 1653261479: FTAM Protocol Abort was not being sent when the F-INITIALIZE response contained invalid mandatory parameters. 8. SR 5003439562: Invalid prototypes for FTAM API functions in mapftam.h was causing compilation errors with ANSIC compilers. 9. SR 1653257238: Uninitialized contexts were resulting in incorrect decoding of an ABORT PDU. 10. SR 1653267682: Uninitialized contexts were resulting in incorrect decoding of an ABORT PDU. 11. SR 4701400010 Incorrect value for a variable was making FTAM not prompt for a password when the .ftamrc file was not being used. 12. SR 1653263665 Enhancement to include prototypes for FTAM API functions for C++ support. 13. SR 1653256594: Enhancement for fcp to not prompt for password when there is no password. When there's no password field in the ftamrc file, fcp will not prompt for a password. 14. SR 5003414391: The NSAP rollover code was not part of the abort processing code. 15. SR 4701393975: The FTAM API trace log file was not getting flushed. This has been rectified now. 16. SR 1653279026: The problem was happening due to a bug introduced in the em_hp_select call while thread safing the FTAM APIs. 17. SR 4701405936: FTAM loops while reading data because of an uninitialized variable. 18. SR 1653274084: The required changes have been mentioned in the FTAM demos README file. 19. SR 4701383489: Fix for improper reading of directory data when encoded as indefinite length PDUs has problems(refer SR1653240754). 20. SR 1653240754: There was a bug in the code that was handling directory data when encoded as indefinite length PDUs. This has been rectified. 21. SR 4701406983: FTAM responder was calling ap_snd in a loop when ap_snd returns AP_AGAIN, which leads to a hang under certain conditions. SR: 1653275875 1653305920 1653309096 1653301200 1653251959 1653255919 1653234286 1653296194 1653302547 1653284604 1653300228 1653292391 1653274027 1653263673 1653237685 1653261453 1653261461 1653261487 1653261479 5003439562 1653257238 1653267682 4701400010 1653263665 1653256594 5003414391 4701393975 1653279026 4701405936 1653274084 4701383489 1653240754 4701406983 Patch Files: FTAM9000.FTAM,fr=E.06.00,fa=HP-UX_B.11.00_32/64,v=HP: /opt/ftam/lbin/ftam_init /opt/ftam/lbin/ftam_resp /opt/ftam/lib/libmapftam.a /opt/ftam/shlib/libmapftam.1 /opt/ftam/shlib/libmapftam.3 /etc/opt/ftam/conf/ftam_conf /etc/opt/ftam/conf/ftam_pw /opt/ftam/shlib/libmap.1 /opt/ftam/shlib/libmap.3 /opt/ftam/lib/libmap.a /opt/ftam/bin/ftam /opt/ftam/bin/fchdoc /opt/ftam/include/mapftam.h /opt/ftam/include/map.h /opt/ftam/include/f_error.h /opt/ftam/demos/Makefile /opt/ftam/demos/ftm_parm.c /opt/ftam/demos/ftm_llcopy.c /opt/ftam/demos/ftm_util.c /opt/ftam/demos/ftm_dirnam.c /opt/ftam/demos/cnvrt_addr.c /opt/ftam/demos/ftm_hlra_aet.c /opt/ftam/demos/ftm_globs.h /opt/ftam/demos/README FTAM9000.FTAM-MAN,fr=E.06.00,fa=HP-UX_B.11.00_32/64,v=HP: /opt/ftam/man/man4.Z/ftamrc.4 /opt/ftam/man/man1.Z/fchdoc.1 /opt/ftam/man/man1.Z/fcp.1 what(1) Output: FTAM9000.FTAM,fr=E.06.00,fa=HP-UX_B.11.00_32/64,v=HP: /opt/ftam/lbin/ftam_init: FTAM: E.06.00 PHNE_19502 99/09/09 s800 ftam_init /opt/ftam/lbin/ftam_resp: FTAM: E.06.00 PHNE_19502 99/09/09 s800 ftam_resp /opt/ftam/lib/libmapftam.a: FTAM: E.06.00 PHNE_19502 99/09/09 s800 libmapftam.a /opt/ftam/shlib/libmapftam.1: FTAM: E.04.01 PHNE_16637 98/10/27 s800 libmapftam.sl $Header: aif_util.c,v 9.2 96/12/03 10:30:00 $ /opt/ftam/shlib/libmapftam.3: FTAM: E.06.00 PHNE_19502 99/09/09 s800 libmapftam.sl /etc/opt/ftam/conf/ftam_conf: FTAM Configuration file /etc/opt/ftam/conf/ftam_pw: FTAM Passwd Config file /opt/ftam/shlib/libmap.1: FTAM: E.04.01 PHNE_16637 98/10/27 s800 libmap.sl /opt/ftam/shlib/libmap.3: FTAM: E.06.00 PHNE_19502 99/09/09 s800 libmap.sl /opt/ftam/lib/libmap.a: FTAM: E.06.00 PHNE_19502 99/09/09 s800 libmap.a /opt/ftam/bin/ftam: FTAM: E.06.00 PHNE_19502 99/09/09 s800 ftam FTAM: E.06.00 PHNE_19502 99/09/09 s800 libmapftam.a /opt/ftam/bin/fchdoc: FTAM: E.06.00 PHNE_19502 99/09/09 s800 fchdoc /opt/ftam/include/mapftam.h: $Header: mapftam.h,v 8.3 94/07/27 17:37:47 lau Exp $ /opt/ftam/include/map.h: None /opt/ftam/include/f_error.h: $Source: /nfs/hpindgr/osi1/rcs/gosip/osirel/ftam/fta m_util/RCS/f_error.h,v $ $Revision: 9.1 $ /opt/ftam/demos/Makefile: FTAM: Demo Makefile $Revision: 9.2 $ $Date: 94/12/15 13:21:11 $ /opt/ftam/demos/ftm_parm.c: FTAM: ftm_parm.c $Revision: 9.3 $ $Date: 94/11/18 11 :24:37 $ /opt/ftam/demos/ftm_llcopy.c: FTAM: ftm_llcopy.c $Revision: 9.1 $ $Date: 94/11/18 11:23:26 $ /opt/ftam/demos/ftm_util.c: FTAM: ftm_util.c $Revision: 9.1 $ $Date: 94/11/18 11 :26:02 $ /opt/ftam/demos/ftm_dirnam.c: FTAM: ftm_dirnam.c $Revision: 9.1 $ $Date: 94/11/18 11:20:41 $ /opt/ftam/demos/cnvrt_addr.c: FTAM cnvrt_addr.c: $Revision: 1.2 $ $Date: 94/11/18 11:09:59 $ /opt/ftam/demos/ftm_hlra_aet.c: FTAM: ftm_hlra_aet.c $Revision: 9.1 $ $Date: 96/11/0 3 11:21:53 $ /opt/ftam/demos/ftm_globs.h: FTAM: ftm_globs.h $Revision: 9.0 $ $Date: 92/09/02 1 1:15:25 $ /opt/ftam/demos/README: OSI_FTAM: $Revision: 9.0 $ FTAM9000.FTAM-MAN,fr=E.06.00,fa=HP-UX_B.11.00_32/64,v=HP: /opt/ftam/man/man4.Z/ftamrc.4: None /opt/ftam/man/man1.Z/fchdoc.1: None /opt/ftam/man/man1.Z/fcp.1: None cksum(1) Output: FTAM9000.FTAM,fr=E.06.00,fa=HP-UX_B.11.00_32/64,v=HP: 3501083732 1212416 /opt/ftam/lbin/ftam_init 2950478142 1097728 /opt/ftam/lbin/ftam_resp 1581837198 608924 /opt/ftam/lib/libmapftam.a 3169886101 667648 /opt/ftam/shlib/libmapftam.1 1874806517 786432 /opt/ftam/shlib/libmapftam.3 4140893247 4628 /etc/opt/ftam/conf/ftam_conf 803747064 2141 /etc/opt/ftam/conf/ftam_pw 3647578869 483328 /opt/ftam/shlib/libmap.1 238873414 487424 /opt/ftam/shlib/libmap.3 2375706963 314620 /opt/ftam/lib/libmap.a 4158740017 692224 /opt/ftam/bin/ftam 388171872 61440 /opt/ftam/bin/fchdoc 3464864660 75720 /opt/ftam/include/mapftam.h 1272679008 19848 /opt/ftam/include/map.h 3101821789 7613 /opt/ftam/include/f_error.h 573365863 4055 /opt/ftam/demos/Makefile 3454568986 49822 /opt/ftam/demos/ftm_parm.c 506352300 27081 /opt/ftam/demos/ftm_llcopy.c 4083446571 3150 /opt/ftam/demos/ftm_util.c 3126627108 3844 /opt/ftam/demos/ftm_dirnam.c 2060973717 13020 /opt/ftam/demos/cnvrt_addr.c 3855933779 11822 /opt/ftam/demos/ftm_hlra_aet.c 3082320825 6901 /opt/ftam/demos/ftm_globs.h 614094300 5020 /opt/ftam/demos/README FTAM9000.FTAM-MAN,fr=E.06.00,fa=HP-UX_B.11.00_32/64,v=HP: 2312707677 4094 /opt/ftam/man/man4.Z/ftamrc.4 3220030108 3881 /opt/ftam/man/man1.Z/fchdoc.1 1994658770 3614 /opt/ftam/man/man1.Z/fcp.1 Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_16589 PHNE_18161 Equivalent Patches: None Patch Package Size: 6570 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHNE_19502 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_19502.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_19502. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHNE_19502.depot WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHNE_19502.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_19502.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_19502.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: 1.This patch will install /etc/opt/ftam/conf/ftam_conf file. If this file already exists, then the existing one will be saved as /etc/opt/ftam/conf/ftam_conf.old. 2.This patch will install /etc/opt/ftam/conf/ftam_pw file.If this file already exists, then the existing one will be saved as /etc/opt/ftam/conf/ftam_pw.old.