00:43
vendethiel joined
01:10
zakharyas joined
02:20
geekosaur joined
02:48
ilbot3 joined
02:50
leego joined
05:59
japhb joined
06:25
japhb joined
06:37
domidumont joined
06:55
japhb joined,
domidumont joined
07:03
domidumont joined
07:21
japhb joined
10:08
synopsebot6 joined
10:18
zakharyas joined
10:24
timotimo joined
10:25
zostay joined
11:05
geekosaur joined
|
|||
dalek | arVM: c63d649 | jnthn++ | / (2 files): Add GC debug helper to "find" a pointer. Discovers which, if any, fromspace/tospace region or gen2 allocator page it exists within. Only compiled in if GC debugging is enabled. |
11:10 | |
arVM: 3736562 | jnthn++ | src/gc/debug.h: Make ASSERT_NOT_FROMSPACE check all fromspaces. Not just that of the calling thread. Makes it able to catch quite a lot more issues in multi-threaded programs. |
11:28 | ||
arVM: 4be6b38 | jnthn++ | src/io/procops.c: Fix missing MVMROOT around an allocation. This is at least one of the causes of the occasional GC corruption issues that show up when using Proc::Async (most often with a zeroed owner error, though depending on timing invalid owner or SEGV could have happened too). |
11:34 | ||
jnthn | lunch, but that seems to have made things a good bit better :) | 11:55 | |
12:15
zakharyas joined
|
|||
jnthn back | 12:45 | ||
12:50
dogbert17 joined
|
|||
dogbert17 | jnthn: so what will you tackle next? | 12:50 | |
nwc10 | dinner? :-) | 12:51 | |
dogbert17 | :-) | ||
nwc10 | there is still one ASAN barfage in the spectests | ||
dogbert17 | uh oh | ||
jnthn | Well, I ran my used-to-explode-with-the-above code in a loop over lunch | 12:59 | |
In gdb | |||
And it SEGVd in another way | |||
The SEGV itself is due to our hashes not being completely memory safe yet if you cross-thread abuse them (a known issue) | 13:01 | ||
But why was the code doing that in the first place? Seems I've found a buglet in the supply/react/whenever impl. | 13:02 | ||
m: my $s = supply { whenever Supply.interval(0.001) { done } }; for ^4 { start { for ^100 { react { whenever $s { } } } } } | 13:03 | ||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; for ^4 { start { for ^1000 { react { whenever $s { } } } } } | ||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; for ^4 { start { for ^100000 { react { whenever $s { } } } } } | ||
camelia | ( no output ) | ||
jnthn | oh, 'doh | ||
m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^1000 { react { whenever $s { } } } } } | 13:04 | ||
camelia | rakudo-moar 843a6b: OUTPUTĀ«(signal SEGV)Ā» | ||
jnthn | That'll make a nice test case... :) | 13:06 | |
Much better than my 2000-ish line app, anyways | 13:07 | ||
dogbert17 | cool | 13:08 | |
nwc10 | ASAN is pondering this | ||
1000 does not barf | |||
mmm. | |||
race doesn't race the same way. :-( | 13:09 | ||
Unhandled exception in code scheduled on thread 17 | 13:10 | ||
Cannot resolve caller postfix:<++>(Mu); the following candidates | |||
match the type but require mutable arguments: (Mu:U $a is rw) | |||
... | |||
for ^10000 | |||
13:14
viki joined
|
|||
jnthn | I get that one too | 13:16 | |
Think I've also figured it out | |||
m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^100 { react { whenever $s { } } } } } | 13:27 | ||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^100 { react { whenever $s { } } } } } | ||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^100 { react { whenever $s { } } } } } | ||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^100 { react { whenever $s { } } } } } | ||
camelia | ( no output ) | ||
jnthn | grr, 100 doesn't seem to trip it | ||
m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^200 { react { whenever $s { } } } } } | |||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^200 { react { whenever $s { } } } } } | ||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^200 { react { whenever $s { } } } } } | ||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^300 { react { whenever $s { } } } } } | ||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^300 { react { whenever $s { } } } } } | ||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^300 { react { whenever $s { } } } } } | 13:28 | |
camelia | ( no output ) | ||
jnthn | odd | ||
m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^500 { react { whenever $s { } } } } } | |||
camelia | ( no output ) | ||
jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^500 { react { whenever $s { } } } } } | ||
camelia | rakudo-moar 843a6b: OUTPUTĀ«(signal SEGV)Ā» | ||
jnthn | 1000 is a bit of a long test | ||
But yup, seems I've fixes for that and my other issue | 13:31 | ||
13:32
babydrop joined
|
|||
jnthn | Grr, and one regression in S17-supply/migrate.t it seems | 13:45 | |
Good test catches real regression. Whew. :) | 13:51 | ||
nine | test++ | ||
jnthn | Really not having much luck getting my occasinally-explosive code from $dayjob to explode at all after fixing the last couple of things I golfed down from it | 14:31 | |
(This is a good thing.) | |||
nine | But but but....you saying that explosions aren't cool? | 14:37 | |
jnthn | They are, just not inside of VMs :P | ||
14:59
vendethiel joined
|
|||
jnthn | Yup, ran 100s of times while I took some rest | 15:44 | |
Proably a thousand times easily | |||
japhb | jnthn: I see from above you had supply/whenever/react fixes ... did this work also fix the "short intervals get stuck" bug? Or is that a different thing? | 15:58 | |
jnthn | heh, see #perl6-dev | ||
I just worked that one out :) | |||
japhb | Oh, *chuckle* Guess it pays to read all the backlogs. :-) | 15:59 | |
16:32
lizmat joined
17:13
dogbert17 joined
|
|||
timotimo | <3 | 17:22 | |
dogbert17 | o/ timotimo | 17:33 | |
18:26
domidumont joined
19:38
ggoebel joined
20:10
domidumont joined
|
|||
dalek | arVM: 366b802 | rurban++ | src/strings/nfg.h: typo in nfg.h comment look => lock |
20:45 | |
arVM: 3171dbb | jnthn++ | src/strings/nfg.h: Merge pull request #445 from rurban/patch-1 typo in nfg.h comment |
|||
lizmat | jnthn: a small HARNESS_TYPE=6 update: all of the crashes that we had before, are gone, BUT | 22:57 | |
we got a new set in return, all basically boiling down to: | |||
===( 0;43 155/403 9/15 84/128 47/55 0/? 0/? 0/? 1/5)===Unhandled exception in code scheduled on thread 17 | |||
No such method 'end-entries' for invocant of type 'Match' | |||
No such method 'made' for invocant of type 'TAP::Runner::State' | 22:58 | ||
aka, somehow an object appears to have changed type, or is somehow overwritten | 22:59 | ||
timotimo | right | 23:00 | |
lizmat | afk again& | 23:07 | |
timotimo | maybe the gc debug flag jnthn mentioned earlier could be turned on for some benefit | 23:08 | |
like earlier explosions | |||
but it's probably not the right tool for this job | 23:09 | ||
jnthn | That one smells different | 23:17 | |
6guts actually has guts again: 6guts.wordpress.com/2016/12/01/tak...-a-gc-bug/ | 23:18 | ||
timotimo | i've smelled this error message before, but never really found any fix for one kind of that | ||
oh!! | |||
<3 | |||
jnthn | Well, they often boil down to insufficient closure cloning | ||
And I already fixed a couple of those in the regex compilation | |||
But it wouldn't surprise me if there's another one somewhere | |||
timotimo | right | ||
jnthn | We still have an RT on such matters | ||
Anyway, 'tis late, and I'm still behind with sleep, so I'm off :) | 23:19 | ||
'night | |||
timotimo | gnite! | ||
23:30
travis-ci joined
|
|||
travis-ci | MoarVM build failed. Jonathan Worthington 'Make ASSERT_NOT_FROMSPACE check all fromspaces. | 23:30 | |
travis-ci.org/MoarVM/MoarVM/builds/180054196 github.com/MoarVM/MoarVM/compare/c...36562a902c | |||
23:30
travis-ci left
|
|||
babydrop | .oO( ASSERT_ALIENS ) |
23:57 | |
timotimo | hahaha :D | 23:59 | |
i didn't even read it like that |