Skip to content
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

The state of Whateverable (2023 server migration) #388

Open
13 of 22 tasks
AlexDaniel opened this issue Sep 27, 2023 · 6 comments
Open
13 of 22 tasks

The state of Whateverable (2023 server migration) #388

AlexDaniel opened this issue Sep 27, 2023 · 6 comments

Comments

@AlexDaniel
Copy link
Member

AlexDaniel commented Sep 27, 2023

As I'm moving to the new server, I'm trying to dockerize everything that I had and migrate it. Whateverable is one of the projects. Note that for now I'll keep hosting it (I think I've been doing a good job at that throughout the years), but once dockerized, the bots can be moved to Raku infrastructure if needed.

The work turned out to be more difficult than I expected do to several regressions or changes in Rakudo that resulted in bitrot. This is a ticket to document the progress and the obstacles.

  • ⚠️ Bots work in general, but there are issues with GLIBC
  • Bisectable – seems to work
  • Committable – seems to work
  • Benchable
  • Evalable
  • Statisfiable
  • Unicodable – runs and works fine, or so it seems. Haven't tested all the functionality yet.
  • Bloatable
  • Quotable
  • Greppable
  • Coverable
  • Releasable
  • Nativecallable
  • Squashable – 🪦 This bot has been offline for quite some time, for the time being it's not going to be revived. It was used for squashathons, but as far as I know it's no longer a thing
  • Reportable
  • Notable – needed a workaround for “Invocant of method 'match' must be a type object of type 'Any'”
  • Shareable
  • Undersightable – 🪦 This bot has been offline for quite some time, for the time being it's not going to be revived.
  • Tellable – needed a workaround for “Invocant of method 'match' must be a type object of type 'Any'”
  • Sourceable – needed a workaround for “Invocant of method 'match' must be a type object of type 'Any'”
  • Linkable – Seems to work
  • Buildable – this is a new bot that is probably needed to keep running the build script and to expose the status.
@AlexDaniel
Copy link
Member Author

AlexDaniel commented Sep 27, 2023

First Rakudo regression:

Basically, trying to use Pastebin::Gist results in 100% CPU usage.

Because of this bug I'm forced to use Rakudo star 2023.02 which is unfortunately stuck on Debian bullseye. This doesn't allow me to use the latest GLIBC version… and I have a bunch of builds that were built using the new GLIBC. Current plan is to ignore the rakudo regression and just rebuild all of the affected builds.

Rakudobug: rakudo/rakudo#5463

@AlexDaniel
Copy link
Member Author

AlexDaniel commented Sep 27, 2023

Notable (and probably other bots) are unable to run because of this issue:

Invocant of method 'match' must be a type object of type 'Any', not an
object instance of type 'IRC::Client::Message::Privmsg::Channel'.  Did
you forget a 'multi'?

Rakudobug: rakudo/rakudo#5464

AlexDaniel added a commit to AlexDaniel/whateverable that referenced this issue Sep 28, 2023
Otherwise it attempts to call `.match` on something that is not Any…
which doesn't make much sense actually.

The issue is described in more detail here:
* Raku#388 (comment)
AlexDaniel added a commit to AlexDaniel/whateverable that referenced this issue Sep 28, 2023
Otherwise it attempts to call `.match` on something that is not Any…
which doesn't make much sense actually.

The issue is described in more detail here:
* Raku#388 (comment)
AlexDaniel added a commit to AlexDaniel/whateverable that referenced this issue Sep 28, 2023
Otherwise it attempts to call `.match` on something that is not Any…
which doesn't make much sense actually.

The issue is described in more detail here:
* Raku#388 (comment)
@AlexDaniel
Copy link
Member Author

AlexDaniel commented Sep 30, 2023

OK, so I found this branch:

Interestingly, all those changes are actually needed (or so I think) to kick off the build process in a service. I think the code there is finished but is simply not tested yet, so that's what I'll do.

AlexDaniel added a commit to AlexDaniel/whateverable that referenced this issue Oct 1, 2023
See Raku#388 for the bug report. Basically, trying to use Pastebin::Gist
results in 100% CPU usage and the script being stuck indefinitely.
@AlexDaniel
Copy link
Member Author

All recent changes were pushed to the main Raku/whateverable repo. The secrets are set up and now all commits to this repo will trigger a redeploy of the bots. So far so good, now I just need to bring the buildable-rework branch up to date and make it work.

AlexDaniel added a commit that referenced this issue Oct 7, 2023
Yay! Now the bot should be fully functional. Previously, the build
process was started by a cron job, now it can be done by a dedicated
service that is also a bot. Well, that's not very surprising, it's
whateverable after all. Everything is a bot here.

Related to #388.
@AlexDaniel
Copy link
Member Author

Buildable is up and running, it'll take a few days to rebuild the builds with the older GLIBC. Otherwise, everything looks good now! I haven't deleted the wrong builds yet, will do that soon.

@AlexDaniel
Copy link
Member Author

I have removed all builds that required a newer GLIBC. That was about 2000 builds. They'll be rebuilt automatically.
Currently, there is a new build per roughly 6 minutes, so that's like 240 per day. In 10+ days everything will be back to normal. That being said, all bots are already functional, it's just that there are some gaps if you decide to use bisectable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant