Logs: liberachat/#haskell
| 2026-03-26 05:36:22 | → | michalz joins (~michalz@185.246.207.215) |
| 2026-03-26 05:39:28 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 05:39:41 | → | puke joins (~puke@user/puke) |
| 2026-03-26 05:44:34 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 2026-03-26 05:45:57 | → | mesaoptimizer joins (~user@user/PapuaHardyNet) |
| 2026-03-26 05:54:27 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 05:55:33 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 2026-03-26 05:58:42 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-03-26 06:02:22 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-03-26 06:09:44 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 06:11:34 | × | Alex_delenda_est quits (~al_test@85.174.183.240) (Ping timeout: 256 seconds) |
| 2026-03-26 06:11:50 | × | AlexNoo quits (~AlexNoo@85.174.183.240) (Ping timeout: 245 seconds) |
| 2026-03-26 06:12:08 | × | AlexZenon quits (~alzenon@85.174.183.240) (Ping timeout: 256 seconds) |
| 2026-03-26 06:16:39 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-03-26 06:27:46 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 06:30:14 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 252 seconds) |
| 2026-03-26 06:32:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-03-26 06:43:08 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 06:48:14 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-03-26 06:52:56 | × | puke quits (~puke@user/puke) (Remote host closed the connection) |
| 2026-03-26 06:53:21 | → | puke joins (~puke@user/puke) |
| 2026-03-26 06:55:23 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 06:55:59 | × | puke quits (~puke@user/puke) (Remote host closed the connection) |
| 2026-03-26 06:56:24 | → | puke joins (~puke@user/puke) |
| 2026-03-26 07:00:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-03-26 07:04:24 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-03-26 07:05:56 | × | puke quits (~puke@user/puke) (Remote host closed the connection) |
| 2026-03-26 07:06:28 | → | puke joins (~puke@user/puke) |
| 2026-03-26 07:06:33 | × | hc quits (~hc@mail.hce.li) (Remote host closed the connection) |
| 2026-03-26 07:07:28 | → | hc joins (~hc@mail.hce.li) |
| 2026-03-26 07:10:46 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 07:13:55 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Ping timeout: 245 seconds) |
| 2026-03-26 07:15:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-03-26 07:16:03 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 2026-03-26 07:18:53 | → | Square joins (~Square4@user/square) |
| 2026-03-26 07:21:32 | × | Square2 quits (~Square@user/square) (Ping timeout: 267 seconds) |
| 2026-03-26 07:26:08 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 07:30:50 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-03-26 07:32:51 | × | jreicher quits (~joelr@user/jreicher) (Quit: brb) |
| 2026-03-26 07:38:36 | → | CiaoSen joins (~Jura@p549cb690.dip0.t-ipconnect.de) |
| 2026-03-26 07:41:30 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 07:44:15 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Read error: Connection reset by peer) |
| 2026-03-26 07:45:02 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 2026-03-26 07:45:45 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-03-26 07:47:12 | → | Enrico63 joins (~Enrico63@93-35-52-29.ip53.fastwebnet.it) |
| 2026-03-26 07:47:17 | × | puke quits (~puke@user/puke) (Quit: puke) |
| 2026-03-26 07:48:28 | → | michalz_ joins (~michalz@185.246.207.201) |
| 2026-03-26 07:49:21 | × | michalz quits (~michalz@185.246.207.215) (Ping timeout: 244 seconds) |
| 2026-03-26 07:56:23 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 08:03:28 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-03-26 08:06:39 | × | mistivia quits (~mistivia@user/mistivia) (Remote host closed the connection) |
| 2026-03-26 08:07:01 | → | mistivia joins (~mistivia@user/mistivia) |
| 2026-03-26 08:14:18 | → | jreicher joins (~joelr@user/jreicher) |
| 2026-03-26 08:14:26 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-26 08:19:10 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-03-26 08:22:18 | <[exa]> | is there any docs on how much concurrency happens in scotty by default? (e.g., if I have something that computes a http response for say 100ms, can I expect scotty to be able to run a few of the computations in parallel?) |
| 2026-03-26 08:23:17 | × | ft quits (~ft@p508db341.dip0.t-ipconnect.de) (Quit: leaving) |
| 2026-03-26 08:23:54 | <Axman6> | I would assume that every request is handled in its own thread |
| 2026-03-26 08:24:26 | <Axman6> | I assume it's built on warp, and it can handle pretty large numbers of requests in parallel |
| 2026-03-26 08:26:08 | <[exa]> | yeah I'm kinda trying to find where this is configured, looks like in warp |
| 2026-03-26 08:27:39 | <[exa]> | ok warp has a default forkoff in the settings, great |
| 2026-03-26 08:27:56 | <[exa]> | now how do I put a limit on that, to prevent the memory from exploding and such :D |
| 2026-03-26 08:28:39 | <Axman6> | just handle it in your app, use a semaphore at the beginning of your request handlers |
| 2026-03-26 08:31:21 | <[exa]> | yeah looks like that's gonna be the way |
| 2026-03-26 08:31:35 | <[exa]> | this is a bit scary tho https://github.com/yesodweb/wai/issues/825 |
| 2026-03-26 08:36:12 | <tomsmeding> | oof |
| 2026-03-26 08:37:05 | <tomsmeding> | [exa]: the fact that that bug is there is not too surprising, with haskell throwing IO exceptions left and right without listing what can be thrown anywhere, but the fact that it's not fixed and the response is just "increase your FD limit" is concerning |
| 2026-03-26 08:37:27 | <tomsmeding> | sounds like there'll be other syscalls that can fail that wai doesn't catch |
| 2026-03-26 08:37:32 | <tomsmeding> | wai/warp |
| 2026-03-26 08:38:03 | <[exa]> | yeah that's not how you production. :D |
| 2026-03-26 08:38:55 | <[exa]> | like, ofc, running out of the fd limit basically means the game's over, but I'd hope there'd be at least some mechanism to avoid opening too much stuff |
| 2026-03-26 08:39:23 | <tomsmeding> | the fact that they report half the connections dropped with nginx is also funny -- nginx is probably running into the same 1024 limit, but it has 2 connections per request (upstream and downstream) so half the request are dropped |
| 2026-03-26 08:39:51 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-03-26 08:40:20 | <tomsmeding> | proper handling would, I guess, be waiting until you have a few FDs left and start responding 500s; alternatively, use them all and just don't accept() until you can again |
| 2026-03-26 08:41:27 | <[exa]> | ok I guess I can do custom accept, throw it in with a `setAccept`, and put the semaphore into that one |
| 2026-03-26 08:42:38 | → | acidjnk_new joins (~acidjnk@p200300d6e700e54898249a3b850b64ab.dip0.t-ipconnect.de) |
| 2026-03-26 08:42:58 | <[exa]> | or `settingsFork` more likely because that looks like a proper bracket |
| 2026-03-26 08:43:07 | <[exa]> | k goooooooooood we shall production then. |
| 2026-03-26 08:43:44 | <tomsmeding> | lol |
| 2026-03-26 08:43:44 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2026-03-26 08:44:38 | <tomsmeding> | oh being able to override accept(2) with setAccept is cute |
| 2026-03-26 08:45:33 | <tomsmeding> | [exa]: why would you do settingsFork instead of settingsAccept? |
| 2026-03-26 08:46:34 | <[exa]> | the settingsAccept is literally just the syscall |
| 2026-03-26 08:46:46 | <[exa]> | :: socket -> IO (socket, something) |
| 2026-03-26 08:47:00 | <[exa]> | hard to unbump the semaphore there |
| 2026-03-26 08:47:23 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-03-26 08:47:27 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 2026-03-26 08:47:49 | [exa] | sees the "unbump" he has written, and heads for a safety coffee |
| 2026-03-26 08:51:31 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2026-03-26 08:51:56 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 2026-03-26 08:52:10 | <tomsmeding> | oh the unbump |
| 2026-03-26 08:52:14 | tomsmeding | understands |
| 2026-03-26 08:53:33 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-03-26 08:54:18 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 2026-03-26 08:57:41 | → | merijn joins (~merijn@77.242.116.146) |
| 2026-03-26 08:59:57 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2026-03-26 09:08:18 | [exa] | feels sudden urge to invent bump & unbump bracket notation for concurrent synchronization semantics |
| 2026-03-26 09:09:14 | <[exa]> | oh look, bump & de-bump aka dump, b and d with double vertical line, like |b and d|. Benefit: both look like coffee mugs |
| 2026-03-26 09:09:36 | <[exa]> | (ok nvm let's do work.) |
| 2026-03-26 09:13:33 | × | emmanuelux quits (~em@user/emmanuelux) (Quit: bye) |
All times are in UTC.