-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
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
gotosocial: 0.14.2 -> 0.15.0 #303321
gotosocial: 0.14.2 -> 0.15.0 #303321
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TestValidationTestSuite/TestValidateEmail
is fixed now (thank you, @blakesmith!), we should remove it from skippedTests
Looks like another flaky test
Builds fine on my machine
|
@misuzu I saw this Looks like something might be accidentally holding the lock to the sqlite database beyond the timeout, that's causing the build failure. By default, the gotosocial test suite runs with an in-memory sqlite database, so there must be some additional concurrency issues happening here during this test to cause the issue. There was some recent work in superseriousbusiness/gotosocial#2774 to fix some "database is locked" bugs happening with a live instance, but not sure if this is related. |
Looks like our gotosocial friends upstream have seen the same sporadic test suite failures due to in-memory sqlite. See: superseriousbusiness/gotosocial#2774 (comment). I wonder if there's a way we can configure the tests to use a temporary persistent sqlite db on the filesystem (instead of in-memory). This would also run the same way it would run in production via That being said, I'm going to:
|
@ofborg test gotosocial |
@ofborg build gotosocial |
Update: I can get several tests to reliably fail in gotosocial's upstream test suite by running them repeatedly. Like I mentioned before, this seems like a broader issue with how the test suite runs via an in-memory sqlite database, which doesn't have the same concurrency semantics as when gotosocial runs on a real instance with sqlite, and WAL mode enabled. With gotosocial checked out, you can pretty reliably get the test suite to fail by rerunning a test many times:
Leads to many test failures such as:
EDIT: However! I cannot get the tests to fail when running them with an actual sqlite database on the filesystem. This works:
@misuzu Does it make sense to run our check tests somehow with something temporary on the filesystem? I worry about portability, and state on the machine, but there might be other examples in nixpkgs that do something like this that I'm not aware of. Will be digging into this more soon on the upstream side. |
I think it should be fine if it doesn't write anything to the env = {
GTS_DB_TYPE = "sqlite";
GTS_DB_ADDRESS = "/tmp/test_gotosocial.db";
}; |
Looks like running the full test suite with a persistent, on-disk sqlite has other issues. Several tests that fail due to state being carried across tests. One example (amongst many):
So we're back to where we started. @misuzu Are we at the point where we should skip the upstream test suite during derivation build? I have a sneaking suspicion we will continue to play wack-a-mole with flakey tests until we can help the upstream gotosocial team with broader test reliability improvements. |
Yeah, I guess we can run them manually on each update to make sure the package is not totally broken |
Okay, so should I disable all tests for now in this PR? |
Yes, please |
84195f1
to
f9961b3
Compare
Tests seem to be very unstable currently, so we should do them manually for now, see: NixOS#303321 (comment)
f9961b3
to
f92bbde
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
Description of changes
New release: https://github.com/superseriousbusiness/gotosocial/releases/tag/v0.15.0
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.