On Fri, 25 Aug 2017 18:56:37 -0700, alex.jakime...@gmail.com wrote:
> The input file for this problem is ≈15 MB so please bear with external
> link:
> https://files.progarm.org/golfed.gz (1.6 MB compressed)
> 
> Command:
> perl6 -ne 'say $++' golfed
> # or
> perl6 -ne 'say $++' < golfed
> 
> Result:
> 0
> 1
> 2
> … … …
> 257568
> 257569
> 257570
> Malformed UTF-8
>   in block <unit> at -e line 1
> 
> 
> There's no malformed UTF-8 in the file. And if you don't believe me,
> try this:
> 
> cat golfed | perl6 -ne 'say $++'
> 
> There are at least three possible outcomes (it is not as stable as
> previous examples):
> (*) Fails after 257570, just like in the previous example
> (*) Fails after 121712
> (*) No error, goes through the whole file just fine
> 
> 
> <geekosaur> sounds more likely to be I/O related than unicode related
> <geekosaur> like it's dropping bytes on the floor and if the utf8
> decoder was in (or lands in) the middle of a sequence, boom
> 
> 
> IRC log: https://irclog.perlgeek.de/perl6-dev/2017-08-26#i_15071860
> 
> This issue may be related:
> https://gist.github.com/coke/3feef738886b1e5af79a1ca636146075


Some gdb output:
(gdb) break MVM_exception_throw_adhoc
...
(gdb) bt
#0  MVM_exception_throw_adhoc (tc=tc@entry=0x555555758960, 
messageFormat=messageFormat@entry=0x7ffff787053a "Malformed UTF-8") at 
src/core/exceptions.c:721
#1  0x00007ffff7808833 in MVM_string_utf8_decodestream 
(tc=tc@entry=0x555555758960, ds=ds@entry=0x5555580cfb70, 
stopper_chars=stopper_chars@entry=0x0, seps=seps@entry=0x5555580cfc90) at 
src/strings/utf8.c:496
#2  0x00007ffff7804720 in run_decode (eof=0, sep_spec=0x5555580cfc90, 
stopper_chars=0x0, ds=0x5555580cfb70, tc=0x555555758960) at 
src/strings/decode_stream.c:115
#3  MVM_string_decodestream_get_until_sep (tc=tc@entry=0x555555758960, 
ds=ds@entry=0x5555580cfb70, sep_spec=sep_spec@entry=0x5555580cfc90, chomp=1) at 
src/strings/decode_stream.c:373
#4  0x00007ffff77cbc9f in MVM_decoder_take_line (tc=0x555555758960, 
decoder=<optimized out>, chomp=<optimized out>, incomplete_ok=<optimized out>) 
at src/6model/reprs/Decoder.c:259
#5  0x00007ffff42434f9 in ?? ()
#6  0x0000006e0000005b in ?? ()
#7  0x0000555555837010 in ?? ()
#8  0x0000555555758960 in ?? ()
#9  0x00005555560f9c98 in ?? ()
#10 0x00007ffff0253bc0 in ?? ()
#11 0x00007ffff786ff38 in ?? () from 
//home/dan/Source/perl6/install/lib/libmoar.so
#12 0x0000555558079ba0 in ?? ()
#13 0x00007ffff777860e in MVM_frame_invoke (tc=0x7fffffffd6c0, 
static_frame=<optimized out>, callsite=0x555555de1938, args=0x5555560f9c58, 
outer=<optimized out>, code_ref=<optimized out>, spesh_cand=<optimized out>) at 
src/core/frame.c:551
#14 0x0000555555758960 in ?? ()
#15 0x00005555560f9c98 in ?? ()
#16 0x00007ffff780398c in MVM_jit_enter_code (tc=<optimized out>, cu=<optimized 
out>, code=<optimized out>) at src/jit/compile.c:146
#17 0x00007ffff77652fe in MVM_interp_run (tc=tc@entry=0x555555758960, 
initial_invoke=0x0, invoke_data=0x1) at src/core/interp.c:5690
#18 0x00007ffff7835322 in MVM_vm_run_file (instance=0x555555758010, 
filename=<optimized out>) at src/moar.c:356
#19 0x000055555555541f in main (argc=9, argv=0x7fffffffdd28) at src/main.c:255
(gdb) call MVM_dump_backtrace(tc)
   at SETTING::src/core/Encoding/Decoder/Builtin.pm:32  
(/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:consume-line-chars)
 from SETTING::src/core/IO/Handle.pm:235  
(/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:)
 from SETTING::src/core/IO/Handle.pm:231  
(/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:get-line-slow-path)
 from SETTING::src/core/IO/Handle.pm:226  
(/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:get)
 from SETTING::src/core/IO/Handle.pm:388  
(/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:pull-one)
 from SETTING::src/core/Iterable.pm:27  
(/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:pull-one)
 from SETTING::src/core/Iterable.pm:27  
(/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:pull-one)
 from SETTING::src/core/Any-iterable-methods.pm:453  
(/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:sink-all)
 from SETTING::src/core/Seq.pm:188  
(/home/dan/Source/perl6/install/share/perl6/runtime/CORE.setting.moarvm:sink)
 from -e:1  (<ephemeral file>:<unit>)
 from -e:1  (<ephemeral file>:<unit-outer>)
 from gen/moar/stage2/NQPHLL.nqp:1608  
(/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:eval)
 from gen/moar/stage2/NQPHLL.nqp:1715  
(/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:)
 from gen/moar/stage2/NQPHLL.nqp:1712  
(/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
 from src/Perl6/Compiler.nqp:42  
(/home/dan/Source/perl6/install/share/nqp/lib/Perl6/Compiler.moarvm:command_eval)
 from gen/moar/stage2/NQPHLL.nqp:1696  
(/home/dan/Source/perl6/install/share/nqp/lib/NQPHLL.moarvm:command_line)
 from gen/moar/main.nqp:47  
(/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:MAIN)
 from gen/moar/main.nqp:38  
(/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<mainline>)
 from <unknown>:1  
(/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<main>)
 from <unknown>:1  
(/home/dan/Source/perl6/install/share/perl6/runtime/perl6.moarvm:<entry>)

Reply via email to