IBM Support

SI47043 - OSP-PERFM QP0LFLOP API hangs when NFS servers are unavailabl

PTF Cover Letter


PTF ( Program Temporary Fixes ) Cover letter


Order this fix

Abstract

OSP-PERFM QP0LFLOP API hangs when NFS servers are unavailabl


Pre/Co-Requisite PTF / Fix List

REQ  LICENSED      PTF/FIX  LEVEL

TYPE PROGRAM  REL  NUMBER   MIN/MAX  OPTION
---- -------- ---  -------  -------  ------
PRE  5770999  710  MF49028   00/00    0000



NOTICE:
-------
Application of this PTF may disable or render ineffective programs that
use system memory addresses not generated by the IBM translator,
including programs that circumvent control technology designed to limit
interactive capacity to purchased levels.  This PTF may be a prerequisite
for future PTFs.  By applying this PTF you authorize and agree to the
foregoing.

This PTF is subject to the terms of the license agreement which
accompanied, or was contained in, the Program for which you are obtaining
the PTF.  You are not authorized to install or use the PTF except as part
of a Program for which you have a valid Proof of Entitlement.

SUBJECT TO ANY WARRANTIES WHICH CAN NOT BE EXCLUDED OR EXCEPT AS EXPLICITLY
AGREED TO IN THE APPLICABLE LICENSE AGREEMENT OR AN APPLICABLE SUPPORT
AGREEMENT, IBM MAKES NO WARRANTIES OR CONDITIONS EITHER EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON INFRINGEMENT,
REGARDING THE PTF.

The applicable license agreement may have been provided to you in printed
form and/or may be viewed using the Work with Software Agreements (WRKSFWAGR)
CL command.





APAR Error Description / Circumvention

-----------------------------------------------
The "Perform File System Operation (QP0LFLOP)" API was used to
perform the QP0L_RETRIEVE_MOUNTED_FILE_SYSTEMS operation.
Network File System (NFS) mounts had previously been performed
and one of the remote NFS servers was not available when
QP0LFLOP was called. The API hung while it was waiting for the
remote server to become available.

CORRECTION FOR APAR SE52242 :
-----------------------------
The QP0LFLOP API must make requests to the remote NFS server to
determine whether the NFS mount is accessible (visible) through
the parent file system's namespace. However, many callers do not
require this information. A new special value will be provided
to indicate that the API should not attempt to determine whether
a mount is visible. See the special instructions for more
information.

CIRCUMVENTION FOR APAR SE52242 :
--------------------------------
None.


Activation Instructions


None.




Special Instructions


If the PTF is applied as an immediate PTF, active jobs must
be ended and restarted to activate the fix in those jobs. If
the PTF is applied as a delayed PTF, no further action is
necessary.

When the PTF is active, a new special value may be specified in
the "Only visible mounts" field of the FLOP0400 Input Structure
as described in "Perform File System Operation (QP0LFLOP)" API
documentation. This special value is hexadecimal FFFFFFFF.
When this special value is specified, the API will not attempt
to determine whether a file system is visible. The "Mount
visibility" field in the FLOP0400 Output Structure will contain
this same special value of hexadecimal FFFFFFFF in every
returned mounted file system entry.

********************************************************************
THE FOLLOWING ARE SUPERSEDED SPECIAL INSTRUCTIONS. IF THE SUPERSEDED
PTF HAS ALREADY BEEN APPLIED AND ITS SPECIAL INSTRUCTION FOLLOWED,
IT IS NOT NECESSARY TO FOLLOW THAT SPECIAL INSTRUCTION AGAIN.
********************************************************************

SPECIAL INSTRUCTIONS FOR SUPERSEDED PTF SI38397 :
=================================================

This PTF provides a new file system operation for the "Perform
File System Operation (QP0LFLOP)" API. The new operation can be
used as a substitute for the "QlgLstat64()--Get File or Link
Information (large file enabled and using NLS-enabled path name)"
API, except that only pathnames in the root (/), QOpenSys, or
user-defined file systems can be specified. If the specified
path is in any other file system, the caller will receive message
ID CPFA0D4 (File system error occurred) with error number 3440
(ENOTSUP). Most other error conditions will return message ID
CPFA0D4 with different error numbers. The error number returned by
QP0LFLOP for a specific circumstance may be different than the
error number returned by the QlgLstat64() API in that same
circumstance. Refer to the API documentation in the i5/OS
Information Center for more details concerning the QP0LFLOP and
QlgLstat64() APIs.

The new function attempts to retrieve link information for the
specified object without accessing the object's storage, which
would cause a non-database page fault. It accomplishes this
by retrieving the attributes from the object's parent
directory where possible. This can provide much better
respsonse time than the existing QlgLstat64() or related APIs.
This benefit is nullified if the new API is called repeatedly for
the same object or set of objects or if the objects are
immediately accessed through some other interface. For example,
an application that always calls QlgOpen64() after calling
QlgLstat64() or only works with a small set of objects would
see no benefit from switching to use the new QP0LFLOP function,
and may actually see a performance degradation. However, an
application that used QlgLstat64() to examine information for
many objects and only further accessed a small percentage of
those objects would likely benefit from using the new interface.

The authority required to use the new operation is the same as if
QlgLstat64() was used. The caller must have *X data authority to
each directory in the pathname preceding the object, but does not
require any authority to the object itself.

The required parameters for the new QP0LFLOP function are:

File system operation - Input; Binary(4), Unsigned - the caller
must pass an integer value of five (5) for the new function. In a
future release, a macro will be defined in the <qp0lflop.h>
header file for this function: QP0L_GET_LINK_INFO

Input buffer - Input; Char(*) - the caller must pass a pointer to
a properly-formed Qlg_Path_Name_T structure, exactly as would be
specified for the QlgLstat64() function.

Length of input buffer - Input; Binary(4), Unsigned - the caller
must pass an integer value that is at least as large as the size
of a Qlg_Path_Name_T structure.

Output buffer - Output; Char(*) - the caller must pass a pointer to
an output stat64 structure.

Length of output buffer - Input; Binary(4), Unsigned - the caller
must pass an integer value that is at least as large as the size
of a stat64 structure.

Error code - I/O; Char(*) - the caller must pass a pointer to
a structure in which to return error information.


Default Instructions

THIS PTF CAN BE APPLIED IMMEDIATE OR DELAYED.



Supersedes

PTF/FIX NO(S).  APAR TITLE LINE
--------------  ------------------------------------------------------------
   SI40760      OSP-INCORROUT QP0LFLOP get link information
   SI39431      OSP Internal extensions
   SI38397      OSP-PERFM QlgLstat64() produces too many page faults

Summary Information

System..............................i
Models..............................
Release.............................V7R1M0
Licensed Program...............5770SS1
APAR Fixed..........................View details for APAR SE52242
Superseded by:......................View fix details for PTF SI49903
Recompile...........................N
Library.............................QSYS
MRI Feature ........................NONE
Cum Level...........................C2279710


System i Support

IBM disclaims all warranties, whether express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. By furnishing this document, IBM grants no licenses to any related patents or copyrights. Copyright © 1996,1997,1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 IBM Corporation. Any trademarks and product or brand names referenced in this document are the property of their respective owners. Consult the Terms of use link for trademark information.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG15V","label":"PTF Cover Letters - OS\/400 General"},"Component":"","ARM Category":[],"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"V7R1M0","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG16D","label":"PTF Cover Letters - IBM i 7.1 environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"V7R1M0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
12 July 2012