On Wed, Apr 10, 2013 at 1:32 PM, Roland Mainz <[email protected]> wrote: > [CC:'ing Werner since this is i18n related and was only observed on > SuSE 12.3 Linux for now...] > > Attached (as "astksh20130409_suse123_32bit_builtin_iconv_hang1.txt.gz") > is a (compressed) text file which causes the AST "iconv" builtin > utility from ast-ksh.2013-04-09 to "hang" in an endless loop in 32bit > i386 builds (AMD64 64bit builds are OK... *ONLY* the 32bit builds loop > forever...). > > Example: > -- snip -- > $ gunzip astksh20130409_suse123_32bit_builtin_iconv_hang1.txt.gz > $ LC_ALL=en_US.UTF-8 ../build_i386_32bit_debug/arch/linux.i386/bin/ksh > -c 'builtin iconv ; iconv -f UTF-8 > /tmp/astksh20130409_suse123_32bit_builtin_iconv_hang1.txt >/tmp/zzz2 ; > true' > <hangs forever> > -- snip -- > > Neither 32bit or 64bit builds trigger any valgrind hits and the gdb > stacktrace is no very usefull either: > -- snip -- > $ LC_ALL=en_US.UTF-8 gdb --args > ../build_i386_32bit_debug/arch/linux.i386/bin/ksh -c 'builtin iconv ; > iconv -f UTF-8 /tmp/astksh20130409_suse123_32bit_builtin_iconv_hang1.txt >>/tmp/zzz2 ; true' > GNU gdb (GDB) SUSE (7.5.1-2.1.1) > Copyright (C) 2012 Free Software Foundation, Inc. > [snip] > Reading symbols from > /home/test001/work/ast_ksh_20130409/build_i386_32bit_debug/arch/linux.i386/bin/ksh...done. > (gdb) run > Starting program: > /home/test001/work/ast_ksh_20130409/build_i386_32bit_debug/arch/linux.i386/bin/ksh > -c builtin\ iconv\ \;\ iconv\ -f\ UTF-8\ > /tmp/astksh20130409_suse123_32bit_builtin_iconv_hang1.txt\ > \>/tmp/zzz2\ \;\ true > Missing separate debuginfo for /lib/ld-linux.so.2 > [snip] > ^C > Program received signal SIGINT, Interrupt. > 0xf7dd2447 in __gconv_transform_utf8_internal () from /lib/libc.so.6 > (gdb) where > #0 0xf7dd2447 in __gconv_transform_utf8_internal () from /lib/libc.so.6 > #1 0xf7dcd00a in __gconv () from /lib/libc.so.6 > #2 0xf7dcc5b2 in iconv () from /lib/libc.so.6 > #3 0x00000001 in ?? () > #4 0x0821b400 in ?? () > Backtrace stopped: previous frame inner to this frame (corrupt stack?) > -- snip -- > (I don't know how to "fix" the "previous frame inner to this frame" > issue... ;-( )
More data: if I force the ksh93 builtin "iconv" to read from a pipe I get a warning about an incomplete multibyte sequence... -- snip -- $ LC_ALL=en_US.UTF-8 ../build_i386_32bit_debug/arch/linux.i386/bin/ksh -c 'builtin iconv ; cat /tmp/astksh20130409_suse123_32bit_builtin_iconv_hang1.txt | iconv -f UTF-8 >/tmp/zzz2 ; true' iconv: incomplete multibyte sequence at offset 32767 [Invalid argument] -- snip -- ... it seems the issue is somehow related to the difference that "iconv" reading a plain file uses |mmap()| ... triggering a different codepath than reading from a pipe. Question is now... who is correct ? GNU "iconv" doesn't seem to print any warnings/errors for the input file while AST "iconv" prints a warning when reading from a pipe and hangs when reading via |mmap()| ... ... another issue is... why does this only happen for 32bit builds ? ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) [email protected] \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;) _______________________________________________ ast-developers mailing list [email protected] http://lists.research.att.com/mailman/listinfo/ast-developers
