-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
segmentation fault while concurrently updating SetHash #6573
Comments
From j.david.lowe@gmail.comThis short program crashes reliably (with a segmentation fault) on my ``` use v6.c; my $lock = Lock.new; More information: ``` |
From @AlexDanielFWIW it always did that, not a regression. On 2017-10-05 21:10:39, j.david.lowe@gmail.com wrote:
|
The RT System itself - Status changed from 'new' to 'open' |
From @timoThis runs reliably when you let the lock-protected block return #!/usr/bin/env perl6 use v6.c; my $lock = Lock.new; My assumption is that it has something to do with sinking the Bool we're |
From @timoIt's a bit tricky to get a proper backtrace dump out of gdb for this, this source file calls sink on a value from outside the protected lock, That part is explosive, presumably because setting a value to False in Not sure how to fix this bug properly. Could be "just" called a trap, Once hashes have been ported over to a non-crashy version (i.e. not On 11/10/17 08:06, Timo Paulssen via RT wrote:
|
From j.david.lowe@gmail.comThis crash still occurs with rakudo 2017.10. On Thu, Oct 5, 2017 at 9:10 PM, perl6 via RT <perl6-bugs-followup@perl.org>
|
From @lizmatThis does not seem to appear if you add at least one key to the set before the await. The segfault only appears to occur when adding a first or removing the last key from the SetHash.
|
From @lizmatreducing the code to: use nqp; does *not* make it crash. So it would appear that it’s not the lowlevel hash access that’s to blame. Looking at this with Telemetry.snapper, this *does* seem to eat a lot of memory very quickly. With a slightly bigger version, and much longer running, growth to about 490MB is observed (starting from 69MB) in 35 seconds, then remaining constant for about 125 seconds, after which a modest increase of only about 15KB per second was observed for the remainder of the run. So the next maybe it’s something in handling Proxy.
|
From @timoI already figured out that it's about sinking the result of assigning to On 14/11/17 16:03, Elizabeth Mattijsen wrote:
|
From @lizmatAh, indeed, so a workaround would be: my $lock = Lock.new; So maybe a solution would be to test for Proxy of the return value of the block, and then sink it?
|
From @lizmatFixed with be9e19efd97755cfd , tests needed!
|
- no longer decontainerize - would fix lizmat/Object-Delayed#5 - **BUT** decontainerization was added specifically: Raku/old-issue-tracker#6573 - is spectest/stresstest/test clean But perhaps we should make a Lock.protect-rw instead??
Migrated from rt.perl.org#132225 (status was 'open')
Searchable as RT132225$
The text was updated successfully, but these errors were encountered: