00:07:41  * marthinaljoined
00:12:06  * marthinalquit (Ping timeout: 252 seconds)
00:26:57  * nixquit (Ping timeout: 252 seconds)
00:30:04  * AtumTquit (Quit: AtumT)
00:48:46  * nixjoined
01:02:18  <devsnek>how are errors from nextTick caught in repl
01:05:29  <addaleax>devsnek: `domain`s?
01:05:45  <addaleax>refack: is there a reason you assign PRs like e.g. https://github.com/nodejs/node/pull/23354 to yourself?
01:06:04  <devsnek>addaleax: does the default _fatalException not handle domains?
01:06:36  <addaleax>devsnek: it calls the domain exception capture handler first, and that is the one that tells the REPL about the exception
01:06:41  <devsnek>i don't see any domain specific stuff in nextTick
01:06:43  <refack>Just so it's easier for me to track them
01:06:55  <devsnek>but when i trigger the fatal exception thingy with microtasks it just kills the process
01:06:57  <devsnek>in the repl
01:07:39  <refack>It's the best way I found to get specific notification from GitHub
01:07:48  <devsnek>just click "subscribe"
01:07:51  <devsnek>or whatever it is
01:08:01  <devsnek>yeah subscribe
01:08:06  <addaleax>refack: it’s a bit confusing since it might keep people from landing PRs, if you don’t make that explicit
01:08:19  <devsnek>refack: https://gc.gy/7702732.png
01:08:29  <addaleax>devsnek: so … I’m not sure, are you talking about queueMicrotask?
01:08:33  <devsnek>yes
01:08:36  <addaleax>that doesn’t seem to work with domains so far, yes
01:08:40  <devsnek>v8 currently doesn't track errors in it at all
01:08:45  <devsnek>which is why its failing silently
01:08:58  <refack>That one needs an other TSC vote. If it author ready, either land or unassign
01:09:02  <devsnek>so i bound our FatalException method to be called manually
01:09:09  <devsnek>but its not taking the same path as nextTick somehow
01:09:29  <addaleax>refack: why does it need a TSC vote?
01:09:34  <addaleax>we do seem to have consensus there?
01:09:43  <refack>I'm subscribed to too many, and GitHub GUI does have a "subscribed to" filter
01:09:51  <refack>Semver major
01:09:56  <devsnek>i don't understand where domains handle fatal exceptions
01:10:14  <addaleax>refack: that doesn’t mean it needs a vote – it needs 2 TSC approvals, which it has
01:10:28  <addaleax>refack: it’s only waiting for CI now, and that’s what author-ready is for
01:10:52  <refack>Yeah I mean approval
01:12:24  <devsnek>ok i figured this path out
01:12:43  <addaleax>devsnek: so … https://github.com/nodejs/node/blob/master/lib/internal/bootstrap/node.js#L618-L619 is the part of _fatalException that handles this
01:12:46  <devsnek>but the captureFn is called in _fatalException
01:12:47  <devsnek>yeah
01:13:11  <devsnek>if you don't mind looking... https://gist.github.com/devsnek/6253a6ea8f334a066abc6721c320c85d
01:13:33  <devsnek>calling my triggerFatalException method is skipping the captureFn somehow
01:14:51  <addaleax>devsnek: because we don’t have async_hooks support for queueMicrotask at this point either, as far as I can tell?
01:15:01  <devsnek>i don't understand
01:15:04  <refack>Unassigned myself. But IMHO explicitly declaring "stewardship" gives the author the feeling they are not ignored. I thought you'd be supportive of taking responsibility, not being critical 🤷
01:15:27  <devsnek>i've taken assignment to mean that you would be performing whatever changes etc yourslef
01:15:29  <refack>Like the bit we added to the guide "if in doubt ask"
01:15:31  <devsnek>yourself*
01:15:36  <devsnek>not that you're advising them
01:15:40  <devsnek>i think you need to be explicit about that
01:15:46  <addaleax>refack: yes, that’s why i’m asking? i’m not critical of taking responsiblity
01:15:49  <addaleax>^^^ what devsnek says
01:15:57  <refack>Ok, fair
01:16:18  <addaleax>devsnek: domains track async context through async_hooks, but right now there’s nothing in place that tracks async context for queueMicrotask() afaict?
01:16:31  <devsnek>i have the AsyncResource thing
01:16:45  <devsnek>are you saying the domain doesn't think that error belongs to it?
01:17:15  <refack>I don't do that often but since I was the main critique for that PR I wanted to make sure I don't lose track of it, and that the author knows that.
01:17:32  <refack>If needed in the future I'll be explicit
01:18:31  <addaleax>devsnek: oh, I see … the issue is that you call triggerFatalException() outside of the runInAsyncScope() cb, I assume
01:18:45  <devsnek>oh boy if that fixes this
01:18:53  <devsnek>shame to have two try/catches though
01:19:27  <devsnek>oh and the semantics of calling emitDestroy
01:19:39  <devsnek>should that be unconditionally called or only if there's no error
01:19:48  <addaleax>devsnek: idk, it might be worth thinking about implementing this in terms of Promises? that would take care of all the async context tracking…
01:20:09  <devsnek>like using Promise.resolve().then() instead of EnqueueMicrotask?
01:20:33  <addaleax>devsnek: so … I’d go with unconditionally, but the timing for it might be icky (there’s a longer comment on a similar problem in internal/process/next_tick.js)
01:20:40  <addaleax>devsnek: yeah, that…
01:20:47  <devsnek>yeah i saw the thing in nextTick
01:20:59  <devsnek>but since i'm inside the microtask queue i don't think i can do the same thing
01:21:38  <devsnek>perhaps putting the destroy in finally
01:23:15  <devsnek>addaleax: calling the fatal handler inside worked, thanks
02:17:14  * antsmartianjoined
02:17:16  * antsmartianquit (Remote host closed the connection)
02:17:31  * antsmartianjoined
02:27:22  * al-damiriquit (Quit: Connection closed for inactivity)
02:28:46  * antsmartianquit (Remote host closed the connection)
02:37:19  * zeds1joined
02:42:07  * zeds1part
03:03:31  * doodadjsquit (Ping timeout: 246 seconds)
03:39:47  <joyee>I am still puzzled why we have queueMicrotask...that seems to be a request from Angular and so far only Chrome has implemented it
03:56:46  * antsmartianjoined
04:08:07  * marthinaljoined
04:12:49  * marthinalquit (Ping timeout: 268 seconds)
04:34:17  * antsmartianquit (Ping timeout: 244 seconds)
04:38:51  * nixquit (Ping timeout: 252 seconds)
04:52:33  <devsnek>joyee: actually only safari has it so far
05:00:08  * antsmartianjoined
05:01:33  * antsmartianquit (Remote host closed the connection)
05:16:21  * antsmartianjoined
05:22:28  * lpinjoined
05:23:07  <ljharb>seems pretty early to have it in node
05:36:14  * johannhquit (Ping timeout: 276 seconds)
05:39:34  * johannhjoined
05:43:57  * johannhquit (Ping timeout: 252 seconds)
05:50:33  * johannhjoined
06:29:31  * antsmartianquit (Remote host closed the connection)
07:17:38  * antsmartianjoined
07:44:00  * antsmartianquit (Remote host closed the connection)
07:47:39  <addaleax>btw, I appreciate any review I can get on https://github.com/nodejs/node/pull/23779 to un-break Travis CI :)
07:54:26  * antsmartianjoined
08:38:45  * antsmartianquit (Remote host closed the connection)
08:46:31  * antsmartianjoined
08:46:56  * leeightjoined
08:48:20  * leeightquit (Client Quit)
08:52:53  * marthinaljoined
10:04:50  * antsmartianquit (Remote host closed the connection)
10:12:14  * seishunjoined
10:52:36  * marthinalquit (Remote host closed the connection)
10:57:15  * marthinaljoined
11:31:30  * ShaRosequit (Quit: I appear to have left for some reason.)
11:31:47  * ShaRosejoined