On Sun, Nov 10, 2013 at 12:34 AM, Roland Mainz <[email protected]> wrote:
> On Sun, Nov 10, 2013 at 12:27 AM, Roland Mainz <[email protected]> 
> wrote:
>> On Fri, Nov 8, 2013 at 6:20 PM, Joshuah Hurst <[email protected]> wrote:
>>> On Fri, Nov 8, 2013 at 3:46 PM, David Korn <[email protected]> wrote:
>>>> On Fri, Nov 8, 2013 at 7:39 AM, Joshuah Hurst <[email protected]> wrote:
>>>>>
>>>>> LC_ALL=C shcomp crashes but my Debian system has no debugger. Can
>>>>> anyone investigate, please?
>>>>
>>>> shcomp on why file crashes?
>>>
>>> printf 'print hello' | LC_ALL=C /usr/bin/shcomp | /usr/bin/ksh
>>> dumps core
>>
>> I can reproduce the issue on Illumos with "shcomp" from a
>> ast-ksh.2013-10-10/AMD64/64bit build:
>> -- snip --
>> $ printf 'print hello' | LC_ALL=C ~/bin/shcomp | ~/bin/ksh
>> $ dbx - core
>> Corefile specified executable: "/home/test001/bin/shcomp"
>> For information about new features see `help changes'
>> To remove this message, put `dbxenv suppress_startup_message 7.6' in your 
>> .dbxrc
>> Reading shcomp
>> core file header read successfully
>> Reading ld.so.1
>> Reading libm.so.2
>> Reading libdl.so.1
>> Reading libsocket.so.1
>> Reading libnsl.so.1
>> Reading libmd.so.1
>> Reading libsecdb.so.1
>> Reading libc.so.1
>> program terminated by signal SEGV (no mapping at the fault address)
>> Current function is dtuserdata
>>    45                   return asogetptr(&dt->data->user.data);
>> (dbx) where
>> =>[1] dtuserdata(dt = (nil), data = (nil), set = 0), line 45 in "dtuser.c"
>>   [2] nv_open(name = 0xfffffd7fff039bd0 "_AST_FEATURES=CONFORMANCE -
>> ast", root = (nil), flags = 2105984), line 1412 in "name.c"
>>   [3] sh_setenviron(name = 0xfffffd7fff039bd0
>> "_AST_FEATURES=CONFORMANCE - ast"), line 3295 in "name.c"
>>   [4] _ast_setenviron(name = 0xfffffd7fff039bd0
>> "_AST_FEATURES=CONFORMANCE - ast"), line 3308 in "name.c"
>>   [5] synthesize(fp = 0x6d3908, path = 0x6b1f50 "-", value = 0x6b2278
>> "ast"), line 481 in "astconf.c"
>>   [6] initialize(fp = 0x6d3908, path = 0x6d3b70 "/", command = (nil),
>> succeed = 0x6b1fa0 "standard", fail = 0x6b2278 "ast"), line 620 in
>> "astconf.c"
>>   [7] format(fp = 0x6d3908, path = 0x6d3b70 "/", value = (nil), flags
>> = 0, conferror = (nil)), line 686 in "astconf.c"
>>   [8] feature(fp = 0x6d3908, name = 0x6b2f70 "CONFORMANCE", path =
>> 0x6d3b70 "/", value = (nil), flags = 0, conferror = (nil)), line 864
>> in "astconf.c"
>>   [9] astgetconf(name = 0x6b2f70 "CONFORMANCE", path = 0x6d3b70 "/",
>> value = (nil), flags = 0, conferror = (nil)), line 1547 in "astconf.c"
>>   [10] astconf(name = 0x6b2f70 "CONFORMANCE", path = (nil), value =
>> (nil)), line 1569 in "astconf.c"
>>   [11] initconformance(), line 53 in "conformance.c"
>>   [12] conformance(s = (nil), n = 0), line 125 in "conformance.c"
>>   [13] _ast_codeset(op = 0), line 55 in "codeset.c"
>>   [14] set_ctype(cp = 0x6d0d48), line 2386 in "setlocale.c"
>>   [15] single(category = 2, lc = 0x6d1030, flags = 0), line 2625 in
>> "setlocale.c"
>>   [16] _ast_setlocale(category = 0, locale = 0x6ad748 ""), line 2902
>> in "setlocale.c"
>>   [17] init(s = 0x654ed4 "[-?\n@(#)$Id: shcomp (AT&T Research)
>> 2003-03-02 $\n][-author?David Korn
>> <[email protected]>][-copyright?Copyright (c) 1982-2013 AT&T
>> Intellectual 
>> Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?libshell][+NAME?shcomp
>> - compile a shell script][+DESCRIPTION?Unless ^H-D^H is specified,
>> ^Hshcomp^H takes a shell script, ^Ginfile^G, and creates a binary
>> format file, ^Goutfile^G, that ^Hksh^H can read and execute with the
>> same effect as the original script.][+?Since aliases are processed as
>> " ..., p = 0x6e63e8), line 994 in "optget.c"
>>   [18] _ast_optget(argv = 0xfffffd7fffdffc58, oopts = 0x654ed4
>> "[-?\n@(#)$Id: shcomp (AT&T Research) 2003-03-02 $\n][-author?David
>> Korn <[email protected]>][-copyright?Copyright (c) 1982-2013 AT&T
>> Intellectual 
>> Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?libshell][+NAME?shcomp
>> - compile a shell script][+DESCRIPTION?Unless ^H-D^H is specified,
>> ^Hshcomp^H takes a shell script, ^Ginfile^G, and creates a binary
>> format file, ^Goutfile^G, that ^Hksh^H can read and execute with the
>> same effect as the original script.][+?Since aliases are processed as
>> " ...), line 4388 in "optget.c"
>>   [19] main(argc = 1, argv = 0xfffffd7fffdffc58), line 79 in "shcomp.c"
>> -- snip --
>>
>> The important part seems to be the $ env - ... # to clear the
>> environment and then explicitly set LC_ALL=C ... note that |nv_open()|
>> is called with a |NULL| |root| argument...
>
> 1. Fixing Glenn's email address
> 2. Question to Glenn: Wouldn't it be better to make calling
> |_ast_setlocale()| mandatory (by throwing an assert) for each single
> application instead of doing it implicitly in |_ast_optget()| ? Aside
> from the performance gain it would prevent trouble like this one...
>
> ----
>
> Bye,
> Roland
>
> --
>   __ .  . __
>  (o.\ \/ /.o) [email protected]
>   \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
>   /O /==\ O\  TEL +49 641 3992797
>  (;O/ \/ \O;)

David, can you reproduce the crash now?

Josh
_______________________________________________
ast-developers mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-developers

Reply via email to