*Synopsis*: ksh93 busybox alias must not look for builtin in path Due to a change requested by <User 1-7MTUEB>, <User 1-7MTUEB> is now the responsible engineer for:
CR 6899868 changed on Nov 20 2009 by <User 1-7MTUEB> === Field ============ === New Value ============= === Old Value ============= Commit to Fix in Build snv_129 Evaluation New Note Hook 5 <email address omitted> Introduced in Build snv_128 Introduced in Release solaris_nevada Keyword oss-request Keyword oss-sponsor Responsible Engineer <User 1-7MTUEB> Root Cause Insufficient Testing Status 7-Fix in Progress 1-Dispatched Targeted Release solaris_nevada Type Defect RFE ====================== =========================== =========================== *Change Request ID*: 6899868 *Synopsis*: ksh93 busybox alias must not look for builtin in path Product: solaris Category: shell Subcategory: korn93 Type: Defect Subtype: Status: 7-Fix in Progress Substatus: Priority: 3-Medium Introduced In Release: solaris_nevada Introduced In Build: snv_128 Responsible Engineer: <User 1-7MTUEB> Keywords: opensolaris, oss-request, oss-sponsor === *Description* ============================================================ Category solaris/shell (Solaris Utilities/Commands) Sub-Category korn93 Description ksh93 busybox alias has a fast and a slow code path. The slow path uses an embedded script to execute the command. If the command is a plain built in command it will load it with the builtin command. But: ksh93 will look for the command builtin in path first before it uses the built in builtin command. $ truss /usr/bin/rev <(echo foo) 2>&1 >/dev/null| tail -40 close(10) = 0 stat("/opt/onbld/bin", 0xFFFFFFFF7FFFBE20) = 0 open("/opt/onbld/bin/.paths", O_RDONLY) Err#2 ENOENT stat("/opt/onbld/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT stat("/opt/SUNWspro/bin", 0xFFFFFFFF7FFFBE20) = 0 open("/opt/SUNWspro/bin/.paths", O_RDONLY) Err#2 ENOENT stat("/opt/SUNWspro/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT stat("/usr/ccs/bin", 0xFFFFFFFF7FFFBE20) = 0 open("/usr/ccs/bin/.paths", O_RDONLY) Err#2 ENOENT stat("/usr/ccs/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT stat("/usr/dt/bin", 0xFFFFFFFF7FFFBE20) = 0 open("/usr/dt/bin/.paths", O_RDONLY) Err#2 ENOENT stat("/usr/dt/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT stat("/usr/openwin/bin", 0xFFFFFFFF7FFFBE20) = 0 open("/usr/openwin/bin/.paths", O_RDONLY) Err#2 ENOENT stat("/usr/openwin/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT stat("/usr/sfw/bin", 0xFFFFFFFF7FFFBE20) = 0 open("/usr/sfw/bin/.paths", O_RDONLY) Err#2 ENOENT stat("/usr/sfw/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT stat("/usr/local/bin", 0xFFFFFFFF7FFFBE20) Err#2 ENOENT stat("/usr/sbin", 0xFFFFFFFF7FFFBE20) = 0 open("/usr/sbin/.paths", O_RDONLY) Err#2 ENOENT stat("/usr/sbin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT stat("/usr/bin", 0xFFFFFFFF7FFFBE20) = 0 open("/usr/bin/.paths", O_RDONLY) Err#2 ENOENT stat("/usr/bin/builtin", 0xFFFFFFFF7FFFBED0) Err#2 ENOENT open("/dev/fd/4", O_RDONLY) = 3 fstat(3, 0xFFFFFFFF7FFFABD0) = 0 ioctl(3, TCGETS, 0xFFFFFFFF7FFFAA0C) Err#22 EINVAL lseek(3, 0, SEEK_CUR) Err#29 ESPIPE fstat(3, 0xFFFFFFFF7FFFAAE8) = 0 fstat(3, 0xFFFFFFFF7FFFAAF0) = 0 fstat(3, 0xFFFFFFFF7FFFAA30) = 0 read(3, " f o o\n", 8192) = 4 read(3, 0x10012A150, 8192) = 0 fcntl(3, F_GETFL) = 2 close(3) = 0 fstat(1, 0xFFFFFFFF7FFFF750) = 0 fstat(2, 0xFFFFFFFF7FFFF750) = 0 _exit(0) This is bad for performance and bad if an entry in path is a nfs mount which hangs. Frequency Always Regression No Steps to Reproduce - Expected Result - Actual Result - Error Message(s) - Test Case - Workaround - Additional configuration information - *** (#1 of 1): 2009-11-10 19:06:15 GMT+00:00 <User 1-F4SZV> === *Public Comments* ======================================================== === *Workaround* ============================================================= === *Additional Details* ===================================================== Targeted Release: solaris_nevada Commit To Fix In Build: snv_129 Fixed In Build: Integrated In Build: Verified In Build: See Also: 6793763 Duplicate of: Hooks: Hook1: Hook2: Hook3: Hook4: Hook5: <email address omitted> Hook6: <email address omitted> Program Management: Root Cause: Insufficient Testing Fix Affects Documentation: No Fix Affects Localization: No === *History* ================================================================ Date Submitted: 2009-11-10 19:06:15 GMT+00:00 Submitted By: <User 1-F4SZV> Status Changed Date Updated Updated By 7-Fix in Progress 2009-11-20 22:00:10 GMT+00:00 <User 1-7MTUEB> === *Service Request* ======================================================== Impact: Limited Functionality: Nonessential Severity: 5 Product Name: solaris Product Release: solaris_nevada Product Build: snv_01 Operating System: solaris_nevada Hardware: generic Submitted Date: 2009-11-10 19:06:16 GMT+00:00 === *Multiple Release (MR) Cluster* - 0 ======================================