[perl #129227] [SEGV] Concatenation of a large number of combining characters
# New Ticket Created by Zoffix Znet # Please include the string: [perl #129227] # in the subject line of all future correspondence about this issue. # https://rt.perl.org/Ticket/Display.html?id=129227 > m: 7 ~ "\x[308]" x 100_000 rakudo-moar 7925d6: OUTPUT«WARNINGS for :Useless use of "~" in expression "7 ~ \"\\x[308]\" x" in sink context (line 1)» m: 7 ~ "\x[308]" x 150_000 rakudo-moar 7925d6: OUTPUT«(signal SEGV)»
[perl #129221] [BUG][UNI] Combinators get matched by regex even when no ignoremark is set
Not a bug. See also http://irclog.perlgeek.de/perl6-dev/2016-09-08#i_13170729
[perl #128545] [LTA] [UNI] Date.new(Str) poor error message for digit with diacritic
Thanks for the report. Fixed in https://github.com/rakudo/rakudo/commit/a2b6f74be1 Tests added in https://github.com/perl6/roast/commit/3ed2af4c42
[perl #128862] [CONC] IO::Socket::Async server throws uncatchable exception in case of encoding errors
On Sat Aug 06 11:25:38 2016, sml...@gmail.com wrote: > Golfed program to demonstrate the problem: > > my $server = IO::Socket::Async.listen('localhost', ); > $server.tap: -> $conn { > $conn.Supply.tap: -> $message { say $message.perl } > } > > my $client = IO::Socket::Async.connect('localhost', ).then: { > .result.write(Blob.new: 144); > } > > await $client, $server; > > It prints the following, and exits: > > Unhandled exception: Malformed UTF-8 > > In practice, having a server than can be crashed at will by any (even > not-authenticated) client is of course LTA. > It seem the only way to prevent this, is to use .Supply(:bin) to work > with Buf's, which is needlessly cumbersome for text-based protocols. > > I tried to catch the exception in the following ways, to prevent it > from exiting the program, but none had an effect: > > 1) CATCH or try/CATCH in a bunch of different places > 2) Assigning to $*SCHEDULER.uncaught_handler > 3) Specifying a :quit handler for both .tap's Fixed, and test added in S32-io/IO-Socket-Async.t for this and a couple of other related cases. (Under the hood, the whole way we handle decoding strings with async sockets has been given a good overhaul.) The typical way to handle such errors would be your option 3 (or, if using the supply/whenever syntax, a QUIT phaser). It should now also, as a last gasp, be passed to option 2. /jnthn
[perl #129228] [SEGV] concurrent network access segfaults in libmoar.so
I'm unable to reproduce this on HEAD Rakudo even with $n set to 40 and RAKUDO_MAX_THREADS set to 50. What is your perl6 version (perl6 -v). Are you able to try this against HEAD [^1]? Yesterday a fix went in addressing issues in sockets and threads; and recently there have been many other async fixes. [1] Steps to build: cd $(mktemp -d) && git clone https://github.com/rakudo/rakudo/ . && perl Configure.pl --gen-moar --gen-nqp --backends=moar && make && make install; ./perl6-m your-script.p6
[perl #129234] [CONC] `.hyper` and `.race` resume after exceptions
# New Ticket Created by Sam S. # Please include the string: [perl #129234] # in the subject line of all future correspondence about this issue. # https://rt.perl.org/Ticket/Display.html?id=129234 > If you `die` inside a `map/for` that is being `hyper/race`d... for (1..1).hyper { die }; sleep 1; say "Alive"; ...it prints the exception's backtrace, but then resumes the program as if nothing had happened: Died in block at -e line 1 Alive
[perl #128123] [JVM] failing test in S03-metaops/hyper.t after change from postfix:<++> to prefix:<++>
And now a lot of tests from roast exploded with "Expected a native int argument for '$a'" after this commit introduced two uses of postfix:<++> and postfix:<--> in lib/Test.pm6: https://github.com/rakudo/rakudo/commit/ffb5789f7eef1157c7556897c4805569df4f7aa4 Modifying the two relevant lines seems to fix those failures (did not run full spectest yet): diff --git a/lib/Test.pm6 b/lib/Test.pm6 index 45bb86f..5d052e9 100644 --- a/lib/Test.pm6 +++ b/lib/Test.pm6 @@ -339,9 +339,9 @@ multi sub subtest(&subtests, $desc = '') is export { _push_vars(); _init_vars(); $indents ~= ""; -$subtest_level++; +$subtest_level += 1; subtests(); -$subtest_level--; +$subtest_level -= 1; done-testing() if nqp::iseq_i($done_testing_has_been_run,0); my $status = $num_of_tests_failed == 0 && $num_of_tests_planned == $num_of_tests_run;
[perl #129228] [SEGV] concurrent network access segfaults in libmoar.so
# New Ticket Created by Robert Lemmen # Please include the string: [perl #129228] # in the subject line of all future correspondence about this issue. # https://rt.perl.org/Ticket/Display.html?id=129228 > this simple program: ---8<--- use v6; use HTTP::Client; my $n = 4; my @promises; for 1..$n { push @promises, start { my $i = 0; # when increasing n above, the total runtime changes as expected #for 1..(5/$n) { #say $*THREAD.id; #sleep 1; #} # funkyly, it increases dramatically from n=1 to n=2 , and then # stays there for n=3 and n=4 my $client = HTTP::Client.new; for 1..100 { say sprintf("%2i %2i", $*THREAD.id, $i++) ~ ' ' ~ now; for 1..(100/$n) { my $response = $client.get('http://localhost:80/'); } } } } await Promise.allof(@promises) --->8--- segfaults for me every now and then if n>=2. core dumps show: Program terminated with signal SIGABRT, Aborted. #0 0x7fa0e1435067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0 0x7fa0e1435067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x7fa0e1436448 in __GI_abort () at abort.c:89 #2 0x7fa0e14731b4 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7fa0e1568530 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175 #3 0x7fa0e147898e in malloc_printerr (action=1, str=0x7fa0e1568718 "double free or corruption (fasttop)", ptr=) at malloc.c:4996 #4 0x7fa0e1479696 in _int_free (av=, p=, have_lock=0) at malloc.c:3840 #5 0x7fa0e190eb42 in MVM_interp_run (tc=0x5e09, tc@entry=0x43b72e0, initial_invoke=0x0, invoke_data=0x6, invoke_data@entry=0x43dfde0) at src/core/interp.c:1601 #6 0x7fa0e19238de in start_thread (data=0x43dfde0) at src/core/threads.c:77 #7 0x7fa0e19ea267 in uv.thread_start () from //home/rlemmen/perl6env/rakudobrew/moar-nom/nqp/MoarVM/../../install/lib/libmoar.so #8 0x7fa0e0eea0a4 in start_thread (arg=0x7fa0ddd36700) at pthread_create.c:309 #9 0x7fa0e14e887d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 (perhaps)interestingly this program also hangs for a second or so every now and then please let me know how I can help debug this! regards robert