Ludovic Courtès skribis: > Hi! > > Guillaume Le Vaillant skribis: > >> I tested a few things, and it looks like there is a concurrency issue in >> the 'http-write' function of the publish server. >> After removing the 'call-with-new-thread' in the part of the function >> sending narinfos, I can't reproduce the "broken pipe" error anymore. > > Ah ha! Little has changed in this code, so I think the culprit must be > f743f2046be2c5a338ab871ae8666d8f6de7440b. > > Could you try running it from master with this patch reverted? > > You can spawn it from the build tree with: > > sudo -E ./pre-inst-env guix publish -u nobody > > Bonus points if you have a script to reproduce the issue. I guess that > involves making pipelined keep-alive narinfo requests the way ‘guix > substitute’ and ‘guix weather’ do. > > Thanks, > Ludo’. Hi, With master at 101edbe63a887678722bc26cd85a7b7f5637428f, I reproduce the issue very often when trying to upgrade a profile with around 400 packages. The logs of the publish server show hundreds of narinfo requests and tens of "broken pipe" errors. With an additional commit reverting f743f2046be2c5a338ab871ae8666d8f6de7440b, I can't reproduce the issue anymore. The logs still show hundreds of narinfo requests, but no errors. I tried to make a script making many narinfo requests to reproduce the issue more easily, but I didn't get it to work yet. I thought accessing the 'fetch-narinfos' function from "guix/substitutes.scm" with: --8<---------------cut here---------------start------------->8--- (use-modules (guix) (guix substitutes)) (define fetch-narinfos (@@ (guix substitutes) fetch-narinfos)) --8<---------------cut here---------------end--------------->8--- would work, but it doesn't: --8<---------------cut here---------------start------------->8--- $ guix repl fetch-narinfos.scm Backtrace: 4 (primitive-load "/home/guillaume/fetch-narinfos.scm") In ice-9/eval.scm: 626:19 3 (_ #) 223:20 2 (proc #) In unknown file: 1 (%resolve-variable (5 (guix substitutes) # . #f) #) In ice-9/boot-9.scm: 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: erreur : fetch-narinfos : variable non liée --8<---------------cut here---------------end--------------->8---