Giter Site home page Giter Site logo

Comments (34)

AlexDaniel avatar AlexDaniel commented on July 23, 2024 1

In 2023, I hit a few issues that were part of #388:

  • rakudo/rakudo#5463
  • rakudo/rakudo#5464
  • Plus LOTS of problems when trying to install dependencies of Whateverable. This seems like an impossible task today. The dependency tree just doesn't get resolved, and the only alternative is to install modules one by one. For dockerized bots, it was a lot easier to base everything on Rakudo Star, because that has most of the packages preinstalled, and then the job is easier.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024
  • Seems like RT #129291 is the most common problem at this moment. Once that is fixed, we will probably see other issues.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024
  • RT #129781 was fixed, next problem is that the process is not killed if there's a lot of stuff on stdout of Proc::Async. See RT #130370, but it's not a problem because a workaround has been added in commit c564d8d.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

As of today, there are no segfaults. I'd still have to write tests for some cases mentioned here, but generally it is not an issue anymore.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

Getting stuff like this:

MoarVM panic: Internal error: invalid thread ID 284 in GC work pass

Didn't look into it deeply at all, but leaving a note here anyway.

Can be reproduced by running t/bisectable.p6 on the server (sometimes you may get lucky and the whole file will pass, but usually it crashes half way through).

from whateverable.

tony-o avatar tony-o commented on July 23, 2024

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

Seems to be alright now after fixes by @jnthn++.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024
  • Currently most bots are leaking memory (which is why some things are slower than they were before).

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

The leakage was reported in RT #131879, and right now it is fixed in a way that it does not leak as much anymore. The memory usage increases if you keep throwing non-existent commits into the bots, but given 16GB of RAM on the server this is hardly a problem.

Right now, the bots are stable.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024
  • Quotable does not work (and was not working for a while): RT #131961
    Greppable has a problem with it also, but it is more or less usable.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

RT #131961 is resolved, waiting for the next bug to appear now.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024
  • Well, didn't have to wait for too long. Most bots can't pass their tests, I don't know why yet. Things seem to hang.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

Well, I guess it's not. Things are still broken though.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

OK, RT #132191 turned out to be an issue in IRC-Client (it was relying on a rakudo bug).

Now there are at least two other problems. Bisectable fails with this output:

ok 60 - Did you mean “HEAD” (new)?
# Failed to get expected result in 11.04535627 seconds (11 nominal)
not ok 61 - Did you mean “HEAD” (old)?
# Failed test 'Did you mean “HEAD” (old)?'
# at /home/bisectable/git/whateverable/t/lib/Testable.pm6 (Testable) line 81
# expected: ["testable742093, Cannot find revision “DEAD” (did you mean “HEAD”?)"]
#  matcher: 'infix:<~~>'
#      got: []
# Test failed. Stopping test suite, because PERL6_TEST_DIE_ON_FAIL environmental variable is set to a true value.
# Failed to get expected result in 11.04317088 seconds (11 nominal)
not ok 62 - _
# Failed test '_'
# at /home/bisectable/git/whateverable/t/lib/Testable.pm6 (Testable) line 81
# expected: [-> ;; $_? is raw { #`(Block|84942264) ... }]
#  matcher: 'infix:<~~>'
#      got: []
# Test failed. Stopping test suite, because PERL6_TEST_DIE_ON_FAIL environmental variable is set to a true value.

There is no reason why test 61 would fail. Actually, it passes if you put it higher in that file. I don't know what's going on there, but most likely it's an issue in rakudo.

The second problem is that it runs some other test after the first test failed. Why? It should not be like that.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

Ah OK, the ‘_’ test is an issue in whateverable. Nevermind that. Why does it fail in the first place is beyond me however.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

The code involves a lot of calls to Text::Diff::Sift4 module, but nothing special really. This issue didn't exist a few releases ago, and I really am not sure when this happened exactly.

The same test works fine in committable.t, and actually if you move these tests higher in the bisectable.t file, they will pass. Really weird stuff going on.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

Alright, some progress on that! First of all, it doesn't hang, it segfaults. The reason I was thinking that it hangs is because the test suite does not really detect if the bot process dies unexpectedly, so there was no easy way to notice. Now I have some code that will help notice the issue in the future, will commit that soon.

Now, the segfault happens in the react block here:
https://github.com/perl6/whateverable/blob/e9ccebadca9a44e4a27a2325737308828568786b/lib/Whateverable.pm6#L220-L232

So, that's easy now, right? Just run it under valgrind and you'll immediately see the issue…

Ha-ha.

Nope. You run it under valgrind, and the issue goes away. 💩

I'm suspecting that we may be seeing something like rakudo/rakudo#1202 here, but it's hard to tell.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

Same issue under gdb: https://gist.github.com/MasterDuke17/0312dd2af1e3b2b498d91cfacc45343c

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024
  • Bots are currently leaking memory like crazy. I will probably turn off some of them so that they don't max out the memory usage on the server.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024
  • Just had this intermittent fail:
Cannot find method 'specialize' on object of type NQPClassHOW

On this line:
https://github.com/perl6/whateverable/blob/46337991a954885fe4c535319275bbb6f797b391/lib/Whateverable.pm6#L326

I cannot reproduce so we will just let it be…

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024
  • MoarVM ticket that is probably related to our current memory leaks: MoarVM/MoarVM#680

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

Again, there's nothing special with this test. And if you look closely, previous tests have been commented out because they were causing another segv previously. Here's the ticket: rakudo/rakudo#1259

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

Bots no longer leak memory like crazy, so that issue is resolved. Bisectable still can't get through its tests though.

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

OK issue #296 can be workarounded like this:

-my $host-arch = $*KERNEL.hardware;
+my $host-arch = ‘x86_64’;
$host-arch = ‘amd64’|‘x86_64’ if $host-arch eq ‘amd64’|‘x86_64’;
-$host-arch = $*KERNEL.name ~ ‘-’ ~ $host-arch;
+$host-arch = ‘linux’ ~ ‘-’ ~ $host-arch;

Heh. Not committing this to the repo because I'm hoping it'll get resolved relatively quickly.

from whateverable.

lizmat avatar lizmat commented on July 23, 2024

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

@lizmat tried that, no difference. Further discussion here: rakudo/rakudo#1595

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024

from whateverable.

AlexDaniel avatar AlexDaniel commented on July 23, 2024
  • Some sort of rakudo bug I guess? 8e206d5

from whateverable.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.