Nix + dotnet | 114 Members | |
| 23 Servers |
| Sender | Message | Time |
|---|---|---|
| 27 Jun 2025 | ||
| Maybe... but we also see that output in successful builds, and 6x total in the this build 🤔 Unlike the | 16:02:20 | |
So it looks like dotnet test is definitely returning 1. I guess my next idea would be to test -v:diag and see if there's any sort of difference there. If that doesn't show anything then maybe COREHOST_TRACE or strace? | 16:16:53 | |
Just for comparison, here's a successful build log (also with set -x). We see the same 6 matches for No test matches the given testcase filter. | 16:21:34 | |
| Download set-x-success.log | 16:21:40 | |
Will try that out, just adding -v:diag to dotnetTestFlags? | 16:22:05 | |
| Yeah, that should work. It'll probably be a lot of output. | 16:23:12 | |
Ok took a couple tries, but got a build failure with set -x and -v:diag | 16:46:08 | |
| Download v-diag-fail-1.log | 16:46:34 | |
| For comparison, here's a successful build: | 16:49:11 | |
| Download v-diag-success-1.log | 16:49:25 | |
| This seems relevant:
| 16:51:35 | |
| I wonder if this can be reproduced in a dev shell by repeatedly running the test phase. That would make it quite a bit easier to investigate. | 16:52:46 | |
| Probably... I just don't have that workflow committed to muscle memory yet, so I never bother trying to use devshells for packages... 🙈 | 16:53:55 | |
| It should be possible to run that 'test host process' directly, but I'm not exactly sure how to do it | 16:53:58 | |
| my usual thing is
the problem with that is that it won't stop on errors, so it'll try to run all the phases, which may or may not be a problem. at the end you can do | 16:55:42 | |
I also sometimes do (set -e; genericBuild) but the problem with that is that you lose the subshell environment, and some things might depend on shell vars etc | 16:56:42 | |
I've not managed to reproduce the issue with runPhase checkPhase, either I'm getting (un?)lucky, the underlying problem is outside the checkPhase, or something is cached. | 18:50:11 | |
| 28 Jun 2025 | ||
| Looking around, it seems vtest has a thread discussing a similar Is there an easy way to tell the package to run If it turns out to be a memory issue, is there a way to increase | 10:12:44 | |
| The `dotnet test` call is in `dotnet-check-hook.sh`. You could hack it in there. If it was out of memory it would have to be using a lot of memory to be reproducible on my desktop machine. Enough that I would certainly consider it a bug in itself. | 12:54:38 | |
| Maybe it's hitting a file handle ulimit or something? It would be nice to know more about the child process invocation (args, output, exit code). | 13:00:19 | |
Good point, I have 64GB and was reproducing the issue fairly regularly. I take it there's no artificial memory limit from
Could be something like that. Or could just be random segfaults in buggy software... 🤔
Anything specific you want me to test, other than just | 20:49:59 | |
| If it's building in the sandbox and under the systemd daemon, it might have different limits than dev shell. The nuclear logging option is probably `strace -f`. That's going to be a lot of output though. Maybe I'll see if I can find anything useful in `VSTestTask` | 21:00:06 | |
| 30 Jun 2025 | ||
| I'm wondering if it is practical to move the tests into a That way 1) end-users wouldn't need to run the tests to build the unfree package, 2) intermittent tests wouldn't cause build failures on hydra. I'd still like to uncover the actual issue, but I'm curious if extracting the tests to a separate derivation is possible? I guess the test derivation would need the same That sounds reasonable, but what I'm unsure of is how easy it'd be to tell | 12:19:21 | |
Looks like the impl is here: https://github.com/dotnet/dotnet/blob/main/src/vstest/src/Microsoft.TestPlatform.Build/Tasks/VSTestTask.cs There's a note about the "Task returned false but did not log an error." error at line 69. Other than that, I nothing is jumping out at me 🤔 Also: I noticed that the | 12:39:42 | |
| It looks like the same errors occasionally shows up in upstream's CI too. E.g. here | 17:35:27 | |
| * It looks like the same (or similar) errors occasionally shows up in upstream's CI too. E.g. here | 17:39:46 | |
| 1 Jul 2025 | ||
In reply to @mattsturg:matrix.org One way to do this would be to disable tests and just put an override with them enabled in Is it consistently crashing in certain tests? Maybe we can get away with disabling only certain tests or projects? | 01:19:19 | |
Good idea. I've opened https://github.com/NixOS/nixpkgs/pull/421459 Overriding is a simple solution, but it means building the app twice... I was hoping we'd be able to reuse the binaries from the main package, as an input for the test package.
I'm not sure; I don't think it prints which test failed in the logs. It might be hidden in the | 10:37:33 | |
| 6 Jul 2025 | ||
| 02:25:27 | ||
| 11 Jul 2025 | ||
| 16:52:34 | ||