-
Notifications
You must be signed in to change notification settings - Fork 247
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
[Question] Tests fail in Gentoo CI - Why? #502
Comments
Might be an IO_URING problem? Error 38 is due to a missing syscall, seems like your TinderBox is running kernel 6.1, so it might need a newer one. What kernel are you running in your personal machine? Can you add RUST_BACKTRACE=full to the ebuild to see where exactly it is failing? There aren't many ? operators in those tests, but it's not clear. |
I'm using 6.12.5 |
I don’t think that kernel feature does much. IO_URING is enabled by default, just some kernels come with new features. It could also be an unrelated syscall. Let me check what the io_uring crate is using and see if 6.1 is ok. |
Seems like the only IO_URING opcodes being submitted are readv, writev and fsync. I hadn't thought about RUST_LOG before, could have added that to the ebuild. I'm using RUST_LOG=trace, but since I'm on 6.12.1, there's no problem here. I'm building a VM with a 6.1 kernel and I will let you know when I have more info. |
Well, Ubuntu even on Kernel 5.15.0 passes every test. For reference, this is the Kernel config it comes with: |
The new CI report is here: |
I don't think we're using anything fancy in io_uring that would require a brand new kernel... Can this be a filesystem related limitation? |
Hi Pekka. Sorry, forgot to press I had traced it to TempDatabase::new(), seems like I emailed Agostino and he confirmed that CONFIG_IO_URING is not set in the kernel for tinderboxes. I'll ask him if it will be enabled. If it can't, can this make it to GURU without closing the bug? On Of course, adding a fallback to io_uring would kind of defeat the purpose of testing and the tinderbox CI too. |
I'm fine with leaving the bug open indefinitely (this will automatically skip further tests). I'll document our findings and link to this bug. I agree that some kind of fallback solution would be nice, but I understand if it's not a priority right now. And therefore the problem seems to be on the tinderbox and not with But if |
@LtdJorge The |
@freijon my experience with ebuilds is limited to a couple patches I had to make on my system. Does setting the value force the tinderbox to use a kernel with io_uring enabled? I was under the impression that every tinderbox was equal, but if not, then we would only need that setting to pass the tests. Enable it, and let it have a go again. Worst case, nothing changes. @penberg I'll get on it. For making it configurable, though, what should we use? I suppose the easiest is a Cargo feature since I'm not seeing configurability in the code. I'm not sure how much you know about Gentoo and Portage, but it basically comes with a very similar system to Cargo features, USE flags. For example, an io_uring feature could be mapped to an io_uring USE flag since installation in Gentoo means building the source by default. However, if we have an io backend |
I think the best solution is to create a @penberg let me know what you think. Also, should I open a new issue for this? I don’t want to pollute this one more. |
Unfortunately not. Also, the check at build time to require IO_URING is not ideal because this check happens before the build and there is no guarantee that the user will use I ended up with showing a warning if IO_URING is not available. I thought about disabling the tests entirely, but I think tests are a good thing to have. So for now we'll just leave the gentoo-bug open, this will skip further tests on the tinderbox. And when the fallback is ready I'll implement a USE flag. Thank you for your support! |
I've packaged limbo for Gentoo GURU.
On my system the test phase runs fine. However, on the CI machine the tests fail with the following output:
The only reason I can think of is that I'm missing some dependencies for the package that are installed on my machine but not on the CI machine. Any ideas from your side what the reason could be?
The text was updated successfully, but these errors were encountered: