Fix check-pr-labels#11862
Conversation
|
short-circuits on PR creation: https://github.com/haskell/cabal/actions/runs/26296407588/job/77410085858?pr=11862 |
|
re-runs when label is added: https://github.com/haskell/cabal/actions/runs/26296576116/job/77410680351?pr=11862 |
|
on i386 alex segfaults... I'm not sure it makes sense to invest time in this |
|
Perhaps not here: It'd be great to have the fixed label check in regardless of failures. Since these jobs aren't required (I hope), this should be merged normally (again, I hope). |
Is this pull request one we want to add the |
|
@philderbeast these days it's adviced to use "priority: high" for this purpose. I'll put it on. |
Merge Queue Status
This pull request spent 1 hour 38 minutes 8 seconds in the queue, including 1 hour 27 minutes running CI. Waiting for any of
All conditions
ReasonThe merge conditions cannot be satisfied due to failing checks Failing checks: HintYou may have to fix your CI before adding the pull request to the queue again. |
|
Problem with internet connection? https://github.com/haskell/cabal/actions/runs/26333806091/job/77524104409 |
|
@mergify enqueue |
❌ Sorry but I didn't understand the command. Please consult the commands documentation 📚. |
|
@mergify queue |
|
https://github.com/haskell/cabal/actions/runs/26356795889/job/77584878706?pr=11874 The exit code -11 (or simply 11 on some systems) almost always indicates a Segmentation Fault (SIGSEGV) |
The existing `createTempDirectory` uses a suboptimal schema to generate temporary directory names. Namely, it starts with `foo-$processId`. If there is no such folder that's it, otherwise it tries to create `foo-($processId+1)`, then `foo-($processId+2)`, etc. While on the surface this is OK, in practice it puts strain on the file system. If we need to create N temporary folders, the name assignment will cycle starting from `foo-$processid` every time, totaling N^2 IO calls. There are also seem to be issues on Windows when one thread is removing its temporary folder, while another it trying to create the very same one. It would be so much better if our temporary names were more diverse by construction. Yes, there might be an odd chance of a clash because someone else just accidentally created the very same folder, but we should not routinely make our own life harder. Normally this is achieved by generating random numbers, but Cabal cannot depend on non-boot libraries such as `random`. So this patch uses a global counter. The approach is similar to one used by [`file-io`](https://hackage-content.haskell.org/package/file-io-0.2.0/docs/src/System.File.Platform.html#tempCounter) for temporary files or by [`temporary-ospath`](https://hackage-content.haskell.org/package/temporary-ospath-1.3/docs/src/System.IO.Temp.OsPath.html#tempDirectoryCounter). (Both `file-io` and `temporary-ospath` actually have even more refined schema for name generation, getting entropy from CPU time, but I think in the interest of simplicity Cabal can get away just with a global counter)
|
@mergify queue |
Merge Queue Status
This pull request spent 1 hour 32 minutes 45 seconds in the queue, including 1 hour 21 minutes 47 seconds running CI. Waiting for any of
All conditions
ReasonThe merge conditions cannot be satisfied due to failing checks Failing checks: HintYou may have to fix your CI before adding the pull request to the queue again. |
|
-----BEGIN CABAL OUTPUT----- |
|
@mergify queue |
Merge Queue Status
This pull request spent 1 hour 34 minutes 50 seconds in the queue, including 1 hour 23 minutes 45 seconds running CI. Waiting for any of
All conditions
ReasonThe merge conditions cannot be satisfied due to failing checks Failing checks: HintYou may have to fix your CI before adding the pull request to the queue again. |
|
https://github.com/haskell/cabal/actions/runs/26366106756/job/77610063612 Validate windows-latest ghc-9.6.7 |
This one will be hopefully fixed by #11872. |
|
The marge bot looks like a waste of time. Why don't you merge things yourself? |
…CI-fix-check-pr-labels
Template B: This PR does not modify behaviour or interface
E.g. the PR only touches documentation or tests, does refactorings, etc.
Include the following checklist in your PR: