01:11
FROGGS_ joined
03:36
doublec joined
05:38
domidumont joined
05:44
domidumont joined
06:35
zakharyas joined
07:19
domidumont joined
07:25
zakharyas joined
07:47
zakharyas joined
08:39
zakharyas joined
08:55
brrt joined
|
|||
jnthn | timotimo: MSVC gives this warning: c:\consulting\moarvm\src\spesh\manipulate.c(268) : warning C4716: 'MVM_spesh_manipulate_split_BB_at' : must return a value | 11:37 | |
[Coke] | just tried to build moar (from nqp, from rakudo) using strawberry perl+git bash; got a "unknown OS 'msys'") | 13:07 | |
RT #125501 | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125501 | ||
dalek | arVM: 10ae72c | jnthn++ | src/6model/reprs/ConcBlockingQueue.c: Mark blocked around some more lock acquisitions. |
13:15 | |
arVM: 583bb52 | jnthn++ | src/gc/orchestrate.c: Make a panic message clearer in its origin. |
|||
arVM: 5b64f88 | jnthn++ | src/6model/reprs/ConcBlockingQueue.c: Fix various cases of out-dated pointer reads. When we come back from being blocked, GC may have taken place. This means that objects may have moved, and any interior pointers we hold must be updated. |
|||
jnthn | Those get things at least somewhat more reliable. Turns out that - at least so far - the bugs I expected to uncover in GC orchestration weren't actually there. | 13:18 | |
timotimo | oof | 13:24 | |
lizmat | jnthn: is there a reason that ShapedArrayCommon role has a .plan method? (whereas we removed that everywhere else) | 13:25 | |
jnthn | lizmat: 'cus at the time it was added, it hadn't been removed everywhere else, perhaps? | 13:26 | |
And got left behind during the removal? | |||
lizmat | ok, then I'll remove it :-) | ||
timotimo | .plan is really oldschool | ||
i wouldn't mind a revival | |||
lizmat | the only thing it now dies, saying it's illegal on shaped arrays | ||
jnthn | It's possible it got removed in nom while I was working in a branch :) | 13:27 | |
mst | lizmat: maybe somebody subclassed it into Dildo and without a .plan it wouldn't've had finger support? | 13:30 | |
lizmat looks outside and sees a crow land on the garage | 13:31 | ||
dalek | arVM: bf8fc05 | jnthn++ | src/6model/reprs/ (2 files): A couple of further missing rootings. From auditing the various places a thread GC-blocks itself. |
13:40 | |
timotimo | that could certainly improve stability | 13:41 | |
jnthn | All of those help a little | 13:45 | |
I'm still seeing the odd issue | |||
Hmm. I wonder if things may go bad if a uv_sem_t moves around in memory over its lifetime :) | 13:49 | ||
We hold locks and condvars at a LoI to prevent that | |||
nwc10 | "LoI" - Level of Indirection? | 13:50 | |
jnthn | aye | ||
yeah, this seems like an improvement | 13:54 | ||
timotimo | ... i don't understand this. i thought we already have the LoI in place to prevent trouble, so what change have you just made that seems like an improvement? %) | 13:55 | |
dalek | arVM: 11e02fe | jnthn++ | src/6model/reprs/Semaphore. (2 files): Hold uv_sem_t at a level of indirection. So its location in memory doesn't change over its lifetime. Turns out that it doing so can make pthreads very sad indeed. |
13:57 | |
jnthn | That one :) | 13:58 | |
We didn't have it in place for semaphores | |||
Probably 'cus we don't, afaik, actually use them inside of CORE.setting, just provide them for end users needing low level stuff | |||
jnthn checks that | |||
oh no, we use it in ThreadPoolScheduler.pm | 13:59 | ||
timotimo | a-ha! | ||
good, good | |||
14:01
zakharyas joined
|
|||
jnthn is running the thing that once could barely get it right 10 times in a row 1000 times | 14:11 | ||
Worked out fine :) | 14:21 | ||
timotimo | yays! | 14:32 | |
jnthn has moved on to investigating a spectest that sometimes hangs, that sadly was not magically fixed by this | 14:34 | ||
timotimo | that just means it's still useful :) | ||
14:35
FROGGS joined
|
|||
jnthn | Oh, it'll let me close an RT and the non-semaphore fixes will have also improved overall stability | 14:36 | |
timotimo | \o/ | 14:37 | |
jnthn | Does anyone know in GDB how you can thread apply all [2 commands here]? | 15:08 | |
16:30
zakharyas joined
17:37
domidumont joined
|
|||
japhb | jnthn: SO MANY PLUSSES for today's fixes. I'd been writing single-threaded Perl 6 code for quite a while because I was just hitting too many odd failures; if your comment from 4 hours ago of two orders of magnitude threading reliability improvements is representative, I'm about to have a very good day. :-) | 18:11 | |
18:12
mst joined
|
|||
nwc10 | jnthn: this still deadlocks: paste.scsys.co.uk/528614 | 18:49 | |
no, wait, *that* ons is new | 18:50 | ||
I think that t/spec/S17-supply/syntax.t was the one that sometimes hung | |||
it now hangs like this: paste.scsys.co.uk/528615 | 18:51 | ||
t/spec/S17-supply/wait.t now hangs in the same way as the other two: paste.scsys.co.uk/528616 | 18:52 | ||
and t/spec/S17-supply/act.t is doing something strange with a single thread and a lot of sleeping | 18:53 | ||
and slowly mmap'ing in more memory, but I can't work out why from strace | 18:55 | ||
paste.scsys.co.uk/528618 | 18:56 | ||
oooh, many tests failed | 18:57 | ||
all in t/spec/S17-supply/ I think | 18:58 | ||
ASAN makes no comment | |||
let's try a complete clean build again... | 19:03 | ||
geekosaur | it's entirely possible that fixing this uncovered other issues | 19:04 | |
nwc10 | that was roughly my assumption | ||
but I'm a bit surprised that both I see it and jnthn didn't, and that I see so much but ASAN remains silent | 19:05 | ||
repeatable. | 19:39 | ||
jnthn | What on earth... | 19:46 | |
jnthn had clean spectest :/ | |||
jnthn does a clean build of what's in nom | 19:47 | ||
Moar master / NQP 255d2e9d1f1 / Rakudo 948aee0f405 just gave me a clean spectest on Linux in my VM, TEST_JOBS = 12, 4 cores available to the VM | 19:55 | ||
nwc10 | this is 24 cores | 19:57 | |
jnthn | Building with NQP and Rakudo at HEAD now | ||
Though NQP had no changes execpt to the js backend | |||
Feels like a big discrepancy to just be "bad luck" | 19:58 | ||
Or "good luck" in my case | |||
Not that I'm especially lucky, in that I see to be the only person around here who can debug difficult concurrency problems. :P | |||
nwc10 | a non-ASAN built then run under valgrind doesn't give any insight | 19:59 | |
(same failures, still no barfage) | 20:00 | ||
jnthn | Guess I can try it on Windows too | 20:01 | |
ooh | |||
I just got an S17-supply failure | |||
Two | |||
nwc10 | \o/ and /o\ | 20:02 | |
jnthn | 3 | ||
More | |||
So, interesting. Same MoarVM version in both runs. Same NQP code in both runs. | 20:03 | ||
That ASAN doesn't barf is at least mildly suggestive "not MoarVM" too | 20:04 | ||
nwc10 | yes, agree. Looks like the bad logic might be further up the stack | 20:05 | |
jnthn | It doesn't need load to fail | 20:06 | |
elems.t is totally repeatable for example | |||
Slightly complicating this is that I think when I put my Supply patch in I did a pull --rebase | |||
But it was clean even with that, it turns out. Looks like a commit after my supply changes in nom bust it | 20:16 | ||
nwc10 | ah, OK, oops | ||
so I'm mentioning this in the wrong channel | |||
jnthn | Yeah, though here was a good guess. | ||
I mean, given what I was working on today, it was overwhelmingly likely just from the list of failed tests that it was going to be something I'd done. :) | 20:17 | ||
On the other hand, everything I've worked on today was about things that were hard to reproduce :) | 20:18 | ||
So when the failures were so easily reproducable I had a hunch it was going to be something else. :) | 20:19 |