Bash declare built-in regression loses array quotations

Matt D. matt@codespunk.com
Fri Jan 13 20:15:00 GMT 2017


While my simple test passed, I am now experiencing runtime assertions 
with Cygwin. These assertions occur on 2.6.1-1 and the alternatively 
available 2.6.0-1:

assertion "(s - envblock) <= tl" failed: file 
"/home/corinna/src/cygwin/cygwin-2.6.1/cygwin-2.6.1-1.i686/src/newlib-cygwin/winsup/cygwin/environ.cc", 
line 1242, function: char** build_env(const char* const*, WCHAR*&, int&, 
bool, HANDLE)
/c/data/workspaces/remote/plugins/shared/scripts/plugin.sh: line 64: 
8448 Aborted                 (core dumped) 
/usr/local/lib/codespunk/scra.exp --p "$p" "bin/$plugin.jar" 
"$user@$host:$path/other/plugins/$plugin.jar"
assertion "(s - envblock) <= tl" failed: file 
"/home/corinna/src/cygwin/cygwin-2.6.1/cygwin-2.6.1-1.i686/src/newlib-cygwin/winsup/cygwin/environ.cc", 
line 1242, function: char** build_env(const char* const*, WCHAR*&, int&, 
bool, HANDLE)
/c/data/workspaces/remote/plugins/shared/scripts/plugin.sh: line 64: 
13920 Aborted                 (core dumped) 
/usr/local/lib/codespunk/scrb.exp $h --u "$u" --p "$p" "chmod 660 
$path/other/plugins/$plugin.jar"


This bug is SEVERE and I can no longer perform any builds with these 
assertions. The Cygwin installer does not appear to provide a working 
version for me to roll back to.

Please advise. I cannot get any work done with in this state.

Matt D.



On 1/13/2017 3:00 PM, Matt D. wrote:
> I updated yesterday to the latest Cygwin x86 release which included an
> updated Bash 4.4.5(1). This release changes the default behavior of the
> built-in 'declare' command which is causing scripts which relied on this
> functionality to break.
>
> The following test will illustrate the change:
> declare -A list
> list[a]=1
> list[b]=2
> list[c]=3
> declare -p | grep list=
>
> On Bash 4.4.5(1) the output is:
> declare -A list=([a]="1" [b]="2" [c]="3" )
>
> Previously the result was:
> declare -A list='([a]="1" [b]="2" [c]="3" )'
>
> I can confirm that this has always been the expected output when running
> this command on Cygwin and Linux. I run CentOS which does not track the
> latest Bash release and I don't know the procedure to check whether this
> is an upstream regression or not.
>
> I have rolled back to Bash 4.3.48-8 which has restored the previous
> functionality.
>
> Please advise.
>
> Matt D.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list