Uh oh!
There was an error while loading. Please reload this page.
fix: Schedule the execution of the finish to let all the spans being closed first - #3022
Conversation
size-limit report
|
lobsterkatie
commented
Nov 2, 2020
Is there another option? |
xr0master
commented
Nov 2, 2020
@lobsterkatie the code is for the node.js, it has |
kamilogorek
commented
Nov 3, 2020
@xr0master I was thinking about this solution as well. |
xr0master
commented
Nov 3, 2020
@kamilogorek it makes sense. I wonder what the gap is between the finish event and the closing event. Perhaps it could have been ignored. However, the decision to use |
@xr0master I performed some tests for quick hacky test implementationconsthttp=require("http");const{ performance }=require("perf_hooks");http.get("http://en6m65p7lz2gi.x.pipedream.net",(resp)=>{resp.on("data",(d)=>{});letend;resp.on("end",()=>{constnow=performance.now();end=now;console.log(`[get] end: ${now}`);setImmediate(()=>{constnow=performance.now();console.log(`[get] setImmediate: ${now}`);console.log(`[get] setImmediate delta: ${now-end}`);});});resp.on("close",()=>{constnow=performance.now();console.log(`[get] close: ${now}`);console.log(`[get] close delta: ${now-end}`);});}).on("error",(err)=>{console.log("Error: "+err.message);});constreq=http.request({host: "en6m65p7lz2gi.x.pipedream.net",method: "POST",},(resp)=>{resp.on("data",(d)=>{});letend;resp.on("end",()=>{constnow=performance.now();end=now;console.log(`[post] end: ${now}`);setImmediate(()=>{constnow=performance.now();console.log(`[post] setImmediate: ${now}`);console.log(`[post] setImmediate delta: ${now-end}`);});});resp.on("close",()=>{constnow=performance.now();console.log(`[post] close: ${now}`);console.log(`[post] close delta: ${now-end}`);});}).on("error",(error)=>{console.error(error);});req.write(JSON.stringify({todo: "Buy the milk",}));req.end(); |
xr0master
commented
Nov 5, 2020
@kamilogorek Thanks for the testing and results. This is very useful. |
Fixes#3001