*Synopsis*: [ku1]Can't append to nodes of an array of compound vars if
addressing them via nameref
CR 6805797 changed on Oct 28 2009 by <User 1-5HNZ8F>
=== Field ============ === New Value ============= === Old Value =============
Commit to Fix in Build snv_128 snv_127
Fixed in Build snv_128
Status 8-Fix Available 7-Fix in Progress
====================== =========================== ===========================
*Change Request ID*: 6805797
*Synopsis*: [ku1]Can't append to nodes of an array of compound vars if
addressing them via nameref
Product: solaris
Category: shell
Subcategory: korn93
Type: Defect
Subtype:
Status: 8-Fix Available
Substatus:
Priority: 3-Medium
Introduced In Release: solaris_nevada
Introduced In Build: snv_72
Responsible Engineer: <User 1-7MTUEB>
Keywords: opensolaris, oss-request, oss-sponsor
=== *Description* ============================================================
Category
shell
Sub-Category
korn
Description
(bug title should be "Can't append to nodes of an array of compound
variables when addressing them via nameref ..." but bugs.opensolaris.org
doesn't allow longer bug titles)
While searching for the problem with the filetree demo I found another
bug:
When I try to append compound variable data to an element of an associative
array of compound variables where the element is referenced via a nameref the
content doesn't get added... ;-(
See further details in the testcase.
Frequency
Always
Regression
No
Steps to Reproduce
Run testcase.
Expected Result
Testcase should work.
Actual Result
Test case prints an error.
Error Message(s)
None.
Test Case
----- snip -----
typeset -C -A foo1
typeset -C -A foo2
function add_one
{
nameref left_op=$1
typeset -C info
info.hello="world"
nameref x=info
left_op+=x
return 0
}
foo1[1234]=( abc="alphabet" )
foo2[1234]=( abc="alphabet" )
# tree one gets additional content via nameref'ed name
nameref node1="foo1[1234]"
add_one "node1"
# tree two gets additional content using it's direct indexed name
add_one "foo2[1234]"
[[ "${foo1[1234]}" == "${foo2[1234]}" ]] || print -u2 "test failed\n$(diff -u
<(print -r -- "${foo1[1234]}") <(print -r -- "${foo2[1234]}"))."
exit 0
----- snip -----
Workaround
None known.
Additional configuration information
Solaris 11/B106
*** (#1 of 1): 2009-02-16 03:20:28 GMT+00:00 <User 1-F4SZV>
=== *Public Comments* ========================================================
=== *Workaround* =============================================================
=== *Additional Details* =====================================================
Targeted Release: solaris_nevada
Commit To Fix In Build: snv_128
Fixed In Build: snv_128
Integrated In Build:
Verified In Build:
See Also: 6437624, 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-02-16 03:20:28 GMT+00:00
Submitted By: <User 1-F4SZV>
Status Changed Date Updated Updated By
3-Accepted 2009-02-24 14:01:38 GMT+00:00 <User 1-1SURPB>
6-Fix Understood 2009-06-16 15:35:25 GMT+00:00 <User 1-1SURPB>
7-Fix in Progress 2009-10-23 18:13:11 GMT+00:00 <User 1-7MTUEB>
8-Fix Available 2009-10-28 18:23:34 GMT+00:00 <User 1-5HNZ8F>
=== *Service Request* ========================================================
Impact: Significant
Functionality: Secondary
Severity: 3
Product Name: solaris
Product Release: solaris_nevada
Product Build: snv_106
Operating System: solaris_nevada
Hardware: generic
Submitted Date: 2009-02-16 03:20:29 GMT+00:00
=== *Multiple Release (MR) Cluster* - 0 ======================================