Patch Name: PHNE_11876 Patch Description: s700 10.01 OTS/9000 C.05.02 cumulative mega patch Creation Date: 98/08/19 Post Date: 98/08/21 Hardware Platforms - OS Releases: s700: 10.01 Products: OTS/9000 C.05.02 Filesets: OTS9000.OTS-KRN,C.05.02 OTS9000.OTS-RUN,C.05.02 OTS9000.OTS-MAN,C.05.02 OTS9000.APLI-PRG,C.05.02 OTS9000.CLNI-PRG,C.05.02 OTS9000.ROSE-PRG,C.05.02 OTS9000.OTS-SES-PRG,C.05.02 OTS9000.XAP-PRG,C.05.02 Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_11876: PANIC MEMORY_LEAK HANG CORRUPTION PHNE_8826: PANIC MEMORY_LEAK PHNE_7780: PANIC PHNE_7404: PANIC PHNE_6723: PANIC Path Name: /hp-ux_patches/s700/10.X/PHNE_11876 Symptoms: PHNE_11876: 1. Starting empty TCP/IP connections on Socket 102 hangs RFC1006/OTS. No further incoming connections are accepted. 2. OTS panics when an indefinite length presentation PDU is sent. 3. APLI memory leak with OVDM 4.21. When running mp_assoc_requests to a non-existent NSAP in an infinite loop, the OTS layer leaks memory till the system eventually runs out of it. 4. Osiformat dumps core when formatting certain traces. 5. ED/EA-TPDU is not sent in extended format though extended format is negotiated. 6. Data corruption and occasional system panic while operating in MSDSG mode. 7. osipdufmt/osiformat should also suppress ISH packets. 8. osipdufmt does not format CLNS/X.25 PDUs properly. 9. osipdufmt does not interpret X.25 nettl traces properly. 10. i) The attribute AP_PCDL is not settable in the AP_UNBOUND state. ii) When you try to ap_bind() using an invalid NSAP, the program dumps core. 11. OTS binds to the wrong PID with 1980 X.25 and no ISO8878. 12. APLI applications fail when an AP_CNTX_NAME of 13 or 14 characters is used. 13. Hang in otsshowes command. 14. ap_rcv() returns wrong data when receiving a large ROSE PDU resulting in a corrupted PDU. 15. otsshowes does not display NSAPs whose lengths equal 17 or 18 octets. 16. Panic in prctr42() when receiving a badly encoded echo request PDU. 17. Incorrect reason code for T-DISCONNECT-Ind. 18. Error sending ESH after LAN switchover. 19. Error freeing multi-RCI entries. 20. Problems with otslogd. 21. Panic in Osxrlsrv() due to NULL q_ptr. 22. osiadmin is unable to configure RFC1006 using the IP address assigned to a X.25 card. On a system that has no LAN net, RFC1006 cannot be configured at all. 23. When no_of_connections is exceeded, ses_connect_id() loops. 24. osi_get_prim()/osi_get_event() does not return proper registration id or connection id when called with regid and conid parameters set to 0. (regid parameter applicable only for osi_get_event() call). The session application could dump core if subsequent session calls are made after this since the conid or regid would not be valid. 25. OTS needs to support 100BaseT cards. 26. osiping (1M) man page is incomplete. PHNE_8826: 1. Shell scripts rely on transition links in 10.X releases of OTS. 2. osiadmin coredumps (not a panic) when you exit to a shell and return. 3. OTS - osiconf does not allow rfc1006 to be configured on some interfaces. 4. osipdufmt -r does not put any timestamps into the formatted output, and it only formats RFC1006 PDUs. It is desirable to have other PDUs formatted as well. 5. OTS ESH packets are not sent out according to snet_esh_ctimer. If snet_esh_ctimer < 10, then ESHs are sent every 10 seconds, and it seems to round it off to a suitable multiple of 10. 6. OTS APLI problem with encoding of CPR-PPDU - invalid PCDRL. 7. OTS could not make connection to a remote node through X.25 when the X.25 subnet was configured to use 1980 standards with a NULL subaddress and snet_bind_by_pid was set to one. 8. When OTS is configured over RK6, the IP address supplied by the application in osi_rgr_rq() is not transmitted to the peer. 9. An invalid TPDU sequence number is generated when the tpcons_propose_ext_fmt parameter is set to 1. 10. OTS returns OPI_ERR(0x8422) instead of ESPABID(0x1407) when an invalid NSAP address is used. 11. SESSION API, osi_rgr_rq() with no_of_connections parameter set to a value greater than 1024 returns osierrno : OSIEBADRNG. 12. Memory leak occurs when an application registers and deregisters using Session API's by calling osi_rgr_rq() and osi_drg_rq() in a loop continuously. 13. The date field in osidiag when the tracing is enabled depends on the assumption of the date field being less than the year 2000. This assumption is no longer valid as one hits the century mark. 14. On receiving NULL data packets, the system panics. 15. PHNE_8828 prevents incoming Streams X.25 OTS calls. 16. If 'otsamd' dies, then at the first attempt to send out an RFC 1006 PDU, the system crashes. 17. ap_rcv() causes APRI application to core dump when APRI tracing is enabled. PHNE_7780: 1. Debug messages such as the following were being logged in syslog vmunix: sapsuf=0 for sapnum 89, returning -61 vmunix: sapsuf=0 for sapnum 70, returning -61 2. User calls ses_uabort_rq in the Session layer API. The call returns successfully, but no user-abort packet is sent out by OTS stack. 3. The retransmission timer doesn't work as expected. 4. MSDSG doesn't work. 5. ots_get_layer_stats does not return 0 when successful. 6. System panicked when it was idling. Panic message: Data page fault 7. System panicked when a FTAM connection is being established. Panic message: INTERNAL ERROR: Illegal RCI operation 8. a) osipdufmt doesn't handle -l option correctly. b) osipdufmt doesn't handle pdus across multiple X.25 packets c) odipdufmt doesn't format RFC1006 traces. 9. a) With multiple X.25 cards configured, no LAN; all cards in both CLNS and CONS subnets and any card's, other than the first's, X.121 address in the ots_dests file, a loopback(transport) test after doing an x25init of all cards will cause a system panic. b) With a single X.25 card configured in a CLNS subnet and no LAN subnet configured, the CLNS X.25 subnet will not work. One will not be able to make connections or transfer data. A simple loopback(transport) test will fail. PHNE_7404: 1. The files OTSconfigSAP and OTSconfigSBN in /var/opt/ots are created by otsstart with global write permission. 2. The commands otsaddis, otsaddroute, and otsdelroute return the k-shell error ksh: syntax error: `else' unexpected 3. If Dart 28 version of X.25 is installed with OTS on an MP system then panics will occur. 4. On MP systems using RFC1006 data may be sent out of order, which manifests itself as data corruption or mysteriously dropping connections. PHNE_6723: 1. User application making a call to ap_snd() will hang. If APRI tracing is turned on, user will find that ai_putmsg() is looping. 2. In an MSDSG configuration NODE(A) <----> NODE(B) <---> NODE(C) Where: NODE(A) is configured as LAN only NODE(B) is configured as an MSDSG relay node and is configured both for X.25 CONS and LAN. NODE(C) is configured for X.25 CONS. When NODE(A) initiates a connection with NODE(C) via MSDSG on NODE(B), sometimes NODE(B) will panic when the connection disconnects. Apparently this problem is limited to situations where NODE(B) is running High Perf X.25. It doesn't seem to happen with Classic X.25. 3. User sees files with names of the form Saannnnn accumulate in /usr/spool/sockets/osi. Where: aa is a string of two alphabetic characters which may be either upper or lower case. nnnnn is a process id number. These files are created by FTAM. 4. OTS osipdufmt does not interpret X.25 nettl traces, no output is generated. 5. A kernel panic happens when no OTS subnets are configured and the user runs otsaddnsap. 6. OTS osidiag "WAN X.25 Tests" display inappropriate NSAP information. When "Connect" is selected, the test displays "x25_calling_nsap" and "x25_called_nsap" values which were choosen by osidiag, but are unlikely to be used in the test. The NSAPs should be set by the user when a "ISO 8878 Encoding" test is run. 7. A ROSE application which calls ap_rcv could go into an infinite loop. 8. Session connection rejects occur if remote vendors protocol supplies a TSDU Max Size other then NULL in the connection accept packet. 9. A ROSE application which sends data larger than 65500 bytes will get truncated packets on the receiving side. 10. In osidiag, "Status" test fails under FTAM tests. 11. A ROSE application will core-dump if a NULL ubuf pointer is used on a ROSE API call. 12. The system may hang for 30+ seconds, when using the FTAM responder accessing OTS via the XTI t_bind call with qlen greater than 8196. 13. OTS panics when FTAM attempts to open a connection. The panic occurs only when one or more CONS/X.25 subnets are configured, no LAN or CLNS/X.25 subnets are configured, the remote ftam responder is configured in remote_app, and the remote NSAP is not configured in ots_dests. The panic occurs in ERcMultiFail as a "Data page fault". 14. Current users of CLNI (an interface only supported for limited customers) would like the interface to also return IS routing information, in addition to the ES routing information that it is currently providing. PHNE_6388: 1. The defect report described it as "OSIADMIN reports error: get_x25_dev_status: ioctl failed." If you are using the high-performance X.25 (Streams X.25) link with 2 or more X.25 cards, you may get the following error when you select "Start X.25", "Stop X.25", "Test Connectivity", or "View Configuration" in the osiadmin X.25 menu. "get_x25_dev_status: ioctl failed. errno=223". Also, if you are using the high-performance X.25 link with 1 or more X.25 cards, you may get the following error when you start OTS from osiadmin: "Making sure links are running... check_links: Status of /dev/x25_0 - not up after 30 sec Couldn't start all links, starting OTS anyway!" 2. In osidiag, under "WAN X.25 Tests ->", if you select "Status ...", the test may fail with the following error: test status: FAILED osidiag: Can't execute x25stat. (BT561) The file "/opt/x25/bin/x25stat" cannot be executed by this process. Verify current userid and permisssions on this file. ENOENT: No such file or directory 3. System Panic with the following markers in the dump: e2xsiger+0x2c e2xdis+0x150 prctr42+0x64 4. APLI initiator sends out multiple association requests to a responder. The responder sometimes sends back negative responses and closes the endpoints. The initiator receives user abort requests instead of the negative responses. 5. When executing otsshowroute or otsaddes a k-shell error is reported complaining an unexpected "else" in the script. 6. Osidiag transport loopback test fails on a TRANSPAC network when a NULL packet address is used. The X.25 subaddress corrupts the NSAP. 7. Osidiag connect and loopback tests cause a system panic when it tries to connect to invalid NSAPs. The query subnet flag was turned on and there was an IS on the subnet. 8. OTS panics the system when the CLNP NULL subset is configured. Any incoming PDU will cause the panic. 9. OTS panics the system when the CLNP NULL subset is configured and an osiping command is executed. 10. The man page for otsshownsaps appears to be missing. 11. OTS does not automatically boot because /opt is not mounted. 12. A user application using the ROSE API core-dumps if a NULL ubuf->buf pointer is used on a reject reply. 13. Session api demo program will not run over lan. It only shows up what rfc1006 is not configured. When you run the client demo program you will see errors osi_get_event: receives unexpected message 1407 Client: abnormal termination, exit code = -999 Defect Description: PHNE_11876: 1. When the TCP/IP connections were closed, the cleanup of the allocated contexts being done was inadequate. This caused subsequent incoming connections on port 102 to hang. 2. The decoding of the indefinite length presentation PDU was erroneous. This led to improper indexing into the buffers, resulting in a system panic. 3. When connecting to a non-existent RFC1006 NSAP, an error is detected, but the interaction buffers were not being released. This led to the memory leak and the subsequent hang. 4. This was due to the improper indexing into the buffer used for decoding the PDU. 5. In class 2, for ED/EA TPDUs, no check was being done to find whether extended format has been negotiated.This caused these TPDUs to be encoded in the normal format even though extended format is negotiated. 6. A missing call to create a trace header in the module tr4sub.c is resulting in memory corruption of OTS data structures. This only happens when the MSDSG relay function is operating and is associated only with disconnect processing. 7. This is an enhancement for osipdufmt/osiformat to suppress ISH packets as well as ESH packets when it is invoked with the -e option. 8. The CLNS/X.25 traces contain the CLNP header, and so the formatting must start from the Network layer. Hence the "-t" option to osiformat in format_x25_trace function in osipdufmt script has been removed. 9. This was due to changes made in the X.25 nettl trace format between 9.0 and 10.0. The awk script which converts X.25 nettl traces into the format expected by osiformat has been fixed. 10. i) The sap number which was to be passed as a parameter to one of the functions invoked while setting the attribute AP_PCDL was unavailable in the AP_UNBOUND state. However, in this particular function the sap number is not being used for any processing other than printing the value of the sap number. Hence, this variable has been made settable. ii) One of the parameters to the function ai_reg_paddr() called by ap_bind() was missing. This resulted in the core dump. 11. The problem was due to not explicitly checking for the non-availability of ISO8878 when binding to X.25 PIDs. This led OTS to bind to the wrong PID even though ISO8878 was not in use. 12. Due to a wrong check used for the objid length within APLI library, the wrong buffer was being used, leading to a badly encoded objid. This caused applications to fail. 13. The output from otsop was such that the record spilled over to a new line. The awk script failed to process this properly and went into an infinite loop causing the hang. 14. The offset into APLI's private buffer was not getting updated properly. This resulted in APLI using the wrong offset to copy data to the user buffer and thus, corrupting the PDU. The problem is seen only when using ROSE operations with indefinite length encoding for the encoded PDU. 15. The problem was again due to the awk script being unable to process records split across multiple lines. The fix for SR #1653228213 has fixed this problem also. 16. The panic was caused due to the dereferencing of a null buffer pointer. 17. Reason code of 0xF9 (protocol error) was being reported when the timer for connect confirmation pops. This is fixed to return 0xF3 (invalid address/permanent transport error). 18. In the event of a LAN card switchover, OTS searches for the interface on which the ESH has to be broadcast. A bug in the search algorithm results in either no ESH being broadcast or multiple ESHs going out on the same interface. 19. A bug in the procedure ERcMultiResolve() (used to remove a multi-RCI entry) leaves the routing cache structures in an inconsistent state. 20. Calling otslogd with incorrect options resulted in unpredictable behaviour. 21. The lower mux read service procedure of OTS was invoked by STREAMS when the mux was in the process of being unlinked. The q_ptr was freed during the processing of the UNLINK ioctl by OTS. The panic was due to the dereferencing of this NULL q_ptr on invocation of the service procedure during UNLINK. 22. osiadmin was using only lanscan to discover the configured nets. Some non-LAN interfaces like X.25 and ppl do not appear in the output of lanscan command. osiadmin needed to be modified so that it uses the output of netstat -i command, instead of lanscan. 23. The problem was due to an ESCONID being sent up from the kernel, but the session library being unable to handle the same due to lack of resources. The problem was fixed by having the library handle this situation and not allow the ESCONID to go up to the user application. 24. The problem was due to the registration id and connection id not being updated with the proper values before returning to the user. 25. This is an enhancement. Patch 'postinstall' script has been modified to support installation of OTS over all the 100BaseT interfaces. 26. The man page for osiping had not been updated to document the steps required to be followed in order to use osiping. This has now been done. PHNE_8826: 1. The OTS product for ALL 10.X versions shipped shell scripts with either "/bin/sh" or "/bin/ksh". These will only work for systems with transition links. It is an option when installing a system to NOT have transition links. To be fully compatible with all the systems these references must be changed to "/usr/bin/sh". 2. The JAM osiadmin main menu return pointer (ui_init_ptr) was not initialized as a result of which osiadmin coredumps. 3. The method used by osiconf to check the IP address was not sufficient to locate all IP addresses on all lan cards. 4. The AWK script which preprocesses the output from 'nettl' was not including timestamp information. The -r option was designed to ignore all but RFC1006 trace entries. 5. The current timer value in e2ittim() is decremented by 10 at each call and then the timer value is checked for expiration. The timer granularity was 10 sec, and same timer was used for ESH and RIB. 6. On receiving a Connect Presentation(CP) PPDU with invalid Calling-Presentation-selector from connection initiator, OTS responder encodes the Connect Presentation Reject(CPR) PPDU with a wrongly encoded PCDRL and provider-reason. 7. OTS did not bind correctly to the 1980 X.25 PID even though the configuration was set to the 1980 standard. 8. The default IP address of the card (which is configured with ifconfig) was being sent to the remote application. RK6 was not doing an explicit bind of the local address. So the default was being picked up. 9. When the tpcons_propose_ext_fmt parameter is set to 1, the sequence numbering in the Transport PDU is incorrect, that is, it is 0, 2, 4 etc. instead of 0, 1, 2.. and the receiver closes the connection. 10. When OTS is configured with only an RFC1006 subnet and an attempt is made to access a non-RFC1006 NSAP, OTS returns OPI_ERR(0x8422) instead of ESPABID(0x1407). OPI_ERR is not a known event as far as X.400 is concerned and so its state machine gets into an indeterminate state from which it is unable to recover. 11. The maximum number of connections supported at the session level is supposed to be 4096 for both OTS C.05.02 through C.07.00. But the maximum number of connections in transport over CLNS is 1024. The no_of_connections parameter was being checked against 1024 instead of 4096. 12. An application wishing to register itself calls osi_rgr_rq() which allocates memory. When deregistering, osi_drg_rq() is called which should deallocate the resources, but doesn't do it. This was causing memory leak. 13. The onset of the year 2000 would result in major problems with the date field and other date related impacts. If tracing is turned on when osidiag is invoked, the year field of the FORMATTER FILTER i.e. time_from