Skip to content

Instantly share code, notes, and snippets.

@andrewrk
Last active July 25, 2022 23:17
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrewrk/d48c8c9ca0fb67bf6d7c0bed744d82ce to your computer and use it in GitHub Desktop.
Save andrewrk/d48c8c9ca0fb67bf6d7c0bed744d82ce to your computer and use it in GitHub Desktop.
zig vs node.js tcp server strace
const std = @import("std");
const event = std.event;
const mem = std.mem;
const assert = std.debug.assert;
pub fn main() !void {
const MyServer = struct {
tcp_server: event.TcpServer,
const Self = this;
async<&mem.Allocator> fn handler(tcp_server: &event.TcpServer, _addr: &const std.net.Address,
_socket: &const std.os.File) void
{
const self = @fieldParentPtr(Self, "tcp_server", tcp_server);
var socket = *_socket; // TODO https://github.com/zig-lang/zig/issues/733
defer socket.close();
const next_handler = async errorableHandler(self, _addr, socket) catch |err| switch (err) {
error.OutOfMemory => @panic("unable to handle connection: out of memory"),
};
(await next_handler) catch |err| {
std.debug.panic("unable to handle connection: {}\n", err);
};
suspend |p| { cancel p; }
}
async fn errorableHandler(self: &Self, _addr: &const std.net.Address,
_socket: &const std.os.File) !void
{
const addr = *_addr; // TODO https://github.com/zig-lang/zig/issues/733
var socket = *_socket; // TODO https://github.com/zig-lang/zig/issues/733
var adapter = std.io.FileOutStream.init(&socket);
var stream = &adapter.stream;
try stream.print("hello from server\n");
}
};
const ip4addr = std.net.parseIp4("127.0.0.1") catch unreachable;
const addr = std.net.Address.initIp4(ip4addr, 0);
var loop = try event.Loop.init(std.debug.global_allocator);
var server = MyServer {
.tcp_server = try event.TcpServer.init(&loop),
};
defer server.tcp_server.deinit();
try server.tcp_server.listen(addr, MyServer.handler);
const p = try async<std.debug.global_allocator> doAsyncTest(&loop, server.tcp_server.listen_address);
defer cancel p;
loop.run();
}
async fn doAsyncTest(loop: &event.Loop, address: &const std.net.Address) !void {
var socket_file = try await try async event.connect(loop, address);
defer socket_file.close();
var buf: [512]u8 = undefined;
const amt_read = try socket_file.read(buf[0..]);
const msg = buf[0..amt_read];
assert(mem.eql(u8, msg, "hello from server\n"));
loop.stop();
}
var net = require("net");
var assert = require("assert");
var server = net.createServer(function(client) {
client.write("hello from server\n");
client.end();
});
server.listen({
host: "127.0.0.1",
port: 0,
}, function() {
var client = net.connect(server.address(), function() {
client.on('data', function(data) {
assert(data == "hello from server\n");
client.end();
server.close();
});
});
});
execve("./test", ["./test"], 0x7ffc184249e0 /* 121 vars */) = 0
epoll_create1(EPOLL_CLOEXEC) = 3
socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_TCP) = 4
bind(4, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.1")}, 28) = 0
listen(4, 128) = 0
getsockname(4, {sa_family=AF_INET, sin_port=htons(38251), sin_addr=inet_addr("127.0.0.1")}, [28->16]) = 0
accept4(4, 0x2291b0, [28], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
epoll_ctl(3, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLOUT|EPOLLET, {u32=2265120, u64=2265120}}) = 0
socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_TCP) = 5
connect(5, {sa_family=AF_INET, sin_port=htons(38251), sin_addr=inet_addr("127.0.0.1")}, 28) = -1 EINPROGRESS (Operation now in progress)
epoll_ctl(3, EPOLL_CTL_ADD, 5, {EPOLLIN|EPOLLOUT|EPOLLET, {u32=2266976, u64=2266976}}) = 0
epoll_wait(3, [{EPOLLIN, {u32=2265120, u64=2265120}}, {EPOLLOUT, {u32=2266976, u64=2266976}}], 16, -1) = 2
accept4(4, {sa_family=AF_INET, sin_port=htons(51908), sin_addr=inet_addr("127.0.0.1")}, [28->16], SOCK_CLOEXEC|SOCK_NONBLOCK) = 6
write(6, "hello from server\n", 18) = 18
close(6) = 0
accept4(4, 0x2291b0, [28], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
epoll_ctl(3, EPOLL_CTL_DEL, 5, 0x22284c) = 0
getsockopt(5, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
read(5, "hello from server\n", 512) = 18
read(5, "", 494) = 0
close(5) = 0
epoll_ctl(3, EPOLL_CTL_DEL, 4, 0x2291e0) = 0
close(4) = 0
exit(0) = ?
+++ exited with 0 +++
execve("/run/current-system/sw/bin/node", ["node", "test.js"], 0x7ffc7dcfca58 /* 61 vars */) = 0
brk(NULL) = 0x234b000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75653d3000
access("/etc/ld-nix.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver/lib/tls/haswell/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver/lib/tls/haswell/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver/lib/tls/haswell/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver/lib/tls/haswell", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver/lib/tls/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver/lib/tls/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver/lib/tls/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver/lib/tls", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver/lib/haswell/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver/lib/haswell/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver/lib/haswell/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver/lib/haswell", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver/lib/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver/lib/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver/lib", {st_mode=S_IFDIR|0555, st_size=4096, ...}) = 0
openat(AT_FDCWD, "/run/opengl-driver-32/lib/tls/haswell/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver-32/lib/tls/haswell/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/tls/haswell/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver-32/lib/tls/haswell", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/tls/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver-32/lib/tls/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/tls/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver-32/lib/tls", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/haswell/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver-32/lib/haswell/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/haswell/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver-32/lib/haswell", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver-32/lib/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/run/opengl-driver-32/lib", {st_mode=S_IFDIR|0555, st_size=4096, ...}) = 0
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/tls/haswell/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/tls/haswell/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/tls/haswell/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/tls/haswell", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/tls/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/tls/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/tls/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/tls", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/haswell/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/haswell/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/haswell/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/haswell", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/x86_64", 0x7ffc2eb3b130) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`#\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=100640, ...}) = 0
mmap(NULL, 2187280, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7564f9a000
mprotect(0x7f7564fb0000, 2093056, PROT_NONE) = 0
mmap(0x7f75651af000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f75651af000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/tls/haswell/x86_64/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/tls/haswell/x86_64", 0x7ffc2eb3b100) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/tls/haswell/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/tls/haswell", 0x7ffc2eb3b100) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/tls/x86_64/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/tls/x86_64", 0x7ffc2eb3b100) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/tls/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/tls", 0x7ffc2eb3b100) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/haswell/x86_64/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/haswell/x86_64", 0x7ffc2eb3b100) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/haswell/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/haswell", 0x7ffc2eb3b100) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/x86_64/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/x86_64", 0x7ffc2eb3b100) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libhttp_parser.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\22\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=32872, ...}) = 0
mmap(NULL, 2125840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7564d92000
mprotect(0x7f7564d98000, 2097152, PROT_NONE) = 0
mmap(0x7f7564f98000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f7564f98000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/tls/haswell/x86_64/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/tls/haswell/x86_64", 0x7ffc2eb3b0d0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/tls/haswell/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/tls/haswell", 0x7ffc2eb3b0d0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/tls/x86_64/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/tls/x86_64", 0x7ffc2eb3b0d0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/tls/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/tls", 0x7ffc2eb3b0d0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/haswell/x86_64/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/haswell/x86_64", 0x7ffc2eb3b0d0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/haswell/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/haswell", 0x7ffc2eb3b0d0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/x86_64/libuv.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/x86_64", 0x7ffc2eb3b0d0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/libuv.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\230\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=199208, ...}) = 0
mmap(NULL, 2262664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7564b69000
mprotect(0x7f7564b90000, 2097152, PROT_NONE) = 0
mmap(0x7f7564d90000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x27000) = 0x7f7564d90000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/tls/haswell/x86_64/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/tls/haswell/x86_64", 0x7ffc2eb3b0a0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/tls/haswell/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/tls/haswell", 0x7ffc2eb3b0a0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/tls/x86_64/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/tls/x86_64", 0x7ffc2eb3b0a0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/tls/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/tls", 0x7ffc2eb3b0a0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/haswell/x86_64/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/haswell/x86_64", 0x7ffc2eb3b0a0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/haswell/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/haswell", 0x7ffc2eb3b0a0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/x86_64/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/x86_64", 0x7ffc2eb3b0a0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/libcrypto.so.1.0.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0|\6\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=2590256, ...}) = 0
mmap(NULL, 4437536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f756472d000
mprotect(0x7f756493f000, 2093056, PROT_NONE) = 0
mmap(0x7f7564b3e000, 159744, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x211000) = 0x7f7564b3e000
mmap(0x7f7564b65000, 13856, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f7564b65000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libssl.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libssl.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libssl.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libssl.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/libssl.so.1.0.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/libssl.so.1.0.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\222\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=500984, ...}) = 0
mmap(NULL, 2545200, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f75644bf000
mprotect(0x7f7564523000, 2093056, PROT_NONE) = 0
mmap(0x7f7564722000, 45056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x63000) = 0x7f7564722000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/tls/haswell/x86_64/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/tls/haswell/x86_64", 0x7ffc2eb3b040) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/tls/haswell/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/tls/haswell", 0x7ffc2eb3b040) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/tls/x86_64/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/tls/x86_64", 0x7ffc2eb3b040) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/tls/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/tls", 0x7ffc2eb3b040) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/haswell/x86_64/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/haswell/x86_64", 0x7ffc2eb3b040) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/haswell/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/haswell", 0x7ffc2eb3b040) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/x86_64/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/x86_64", 0x7ffc2eb3b040) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=18528, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75653d1000
mmap(NULL, 2109584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f75642bb000
mprotect(0x7f75642be000, 2093056, PROT_NONE) = 0
mmap(0x7f75644bd000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f75644bd000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=41696, ...}) = 0
mmap(NULL, 2128384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f75640b3000
mprotect(0x7f75640ba000, 2093056, PROT_NONE) = 0
mmap(0x7f75642b9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f75642b9000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/tls/haswell/x86_64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/tls/haswell/x86_64", 0x7ffc2eb3afe0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/tls/haswell/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/tls/haswell", 0x7ffc2eb3afe0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/tls/x86_64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/tls/x86_64", 0x7ffc2eb3afe0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/tls/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/tls", 0x7ffc2eb3afe0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/haswell/x86_64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/haswell/x86_64", 0x7ffc2eb3afe0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/haswell/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/haswell", 0x7ffc2eb3afe0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/x86_64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/x86_64", 0x7ffc2eb3afe0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/qc84dvliy1dzpidw10yvpi3di5f0q4vj-gcc-7.3.0-lib/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\231\10\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=1558864, ...}) = 0
mmap(NULL, 3667488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7563d33000
mprotect(0x7f7563ea3000, 2097152, PROT_NONE) = 0
mmap(0x7f75640a3000, 53248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x170000) = 0x7f75640a3000
mmap(0x7f75640b0000, 9760, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f75640b0000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300w\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=1440248, ...}) = 0
mmap(NULL, 3453480, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f75639e7000
mprotect(0x7f7563b32000, 2093056, PROT_NONE) = 0
mmap(0x7f7563d31000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14a000) = 0x7f7563d31000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20+\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0444, st_size=100608, ...}) = 0
mmap(NULL, 2185600, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f75637d1000
mprotect(0x7f75637e7000, 2093056, PROT_NONE) = 0
mmap(0x7f75639e6000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f75639e6000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p_\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=137184, ...}) = 0
mmap(NULL, 2216424, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f75635b3000
mprotect(0x7f75635cc000, 2093056, PROT_NONE) = 0
mmap(0x7f75637cb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7f75637cb000
mmap(0x7f75637cd000, 12776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f75637cd000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/sghbqqxllij185b0n3i1ckk30yyjng14-zlib-1.2.11/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/5n4y52vi8c7c3s649clhbszh111qby5s-http-parser-2.8.0/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/76rnm9q9y5ja4pxj84h0pyim320vlihr-libuv-1.19.2/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/rinkr1n83fhf9h5161005hv4brjxs266-openssl-1.0.2n/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\21\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=1998936, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75653cf000
mmap(NULL, 3873024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7563201000
mprotect(0x7f75633aa000, 2093056, PROT_NONE) = 0
mmap(0x7f75635a9000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a8000) = 0x7f75635a9000
mmap(0x7f75635af000, 14592, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f75635af000
close(3) = 0
openat(AT_FDCWD, "/run/opengl-driver/lib/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/opengl-driver-32/lib/libnsl.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/84h2zni7h805k0i1ys2bba3dsp1cqnhh-glibc-2.26-131/lib/libnsl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200=\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0555, st_size=106992, ...}) = 0
mmap(NULL, 2193208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7562fe9000
mprotect(0x7f7562ffd000, 2097152, PROT_NONE) = 0
mmap(0x7f75631fd000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f75631fd000
mmap(0x7f75631ff000, 5944, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f75631ff000
close(3) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75653cd000
arch_prctl(ARCH_SET_FS, 0x7f75653ce2c0) = 0
mprotect(0x7f75635a9000, 16384, PROT_READ) = 0
mprotect(0x7f75631fd000, 4096, PROT_READ) = 0
mprotect(0x7f75637cb000, 4096, PROT_READ) = 0
mprotect(0x7f7563d31000, 4096, PROT_READ) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75653cb000
mprotect(0x7f75640a3000, 49152, PROT_READ) = 0
mprotect(0x7f75642b9000, 4096, PROT_READ) = 0
mprotect(0x7f75644bd000, 4096, PROT_READ) = 0
mprotect(0x7f7564b3e000, 114688, PROT_READ) = 0
mprotect(0x7f7564722000, 20480, PROT_READ) = 0
mprotect(0x7f7564d90000, 4096, PROT_READ) = 0
mprotect(0x7f7564f98000, 4096, PROT_READ) = 0
mprotect(0x7f75651af000, 4096, PROT_READ) = 0
mprotect(0x192a000, 405504, PROT_READ) = 0
mprotect(0x7f75653d5000, 4096, PROT_READ) = 0
set_tid_address(0x7f75653ce590) = 23137
set_robust_list(0x7f75653ce5a0, 24) = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x7f75635b89f0, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7f75635b8a80, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL) = 0x234b000
brk(0x236c000) = 0x236c000
rt_sigprocmask(SIG_SETMASK, [USR1], NULL, 8) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 12), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 12), ...}) = 0
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 12), ...}) = 0
rt_sigaction(SIGHUP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGILL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGTRAP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGABRT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGFPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGUSR1, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGUSR2, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGALRM, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGSTKFLT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGCONT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGURG, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGXCPU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGXFSZ, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGVTALRM, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGPROF, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGWINCH, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGIO, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGPWR, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGSYS, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGINT, {sa_handler=0xe058c0, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESETHAND, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0xe058c0, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESETHAND, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=99999, rlim_max=99999}) = 0
clock_getres(CLOCK_MONOTONIC_COARSE, {tv_sec=0, tv_nsec=1000000}) = 0
epoll_create1(EPOLL_CLOEXEC) = 3
pipe2([4, 5], O_CLOEXEC) = 0
write(5, "*", 1) = 1
futex(0x7f7564d915b0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
pipe2([6, 7], O_NONBLOCK|O_CLOEXEC) = 0
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK) = 8
ioctl(0, FIOCLEX) = 0
ioctl(1, FIOCLEX) = 0
ioctl(2, FIOCLEX) = 0
ioctl(3, FIOCLEX) = 0
ioctl(4, FIOCLEX) = 0
ioctl(5, FIOCLEX) = 0
ioctl(6, FIOCLEX) = 0
ioctl(7, FIOCLEX) = 0
ioctl(8, FIOCLEX) = 0
ioctl(9, FIOCLEX) = -1 EBADF (Bad file descriptor)
ioctl(10, FIOCLEX) = -1 EBADF (Bad file descriptor)
ioctl(11, FIOCLEX) = -1 EBADF (Bad file descriptor)
ioctl(12, FIOCLEX) = -1 EBADF (Bad file descriptor)
ioctl(13, FIOCLEX) = -1 EBADF (Bad file descriptor)
ioctl(14, FIOCLEX) = -1 EBADF (Bad file descriptor)
ioctl(15, FIOCLEX) = -1 EBADF (Bad file descriptor)
ioctl(16, FIOCLEX) = -1 EBADF (Bad file descriptor)
getuid() = 1000
geteuid() = 1000
getgid() = 100
getegid() = 100
getuid() = 1000
geteuid() = 1000
getgid() = 100
getegid() = 100
getuid() = 1000
geteuid() = 1000
getgid() = 100
getegid() = 100
getuid() = 1000
geteuid() = 1000
getgid() = 100
getegid() = 100
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [USR1], 8) = 0
mmap(NULL, 16384, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f75653c7000
mprotect(0x7f75653c8000, 12288, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f75653c9fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f75653ca9d0, tls=0x7f75653ca700, child_tidptr=0x7f75653ca9d0) = 23138
rt_sigprocmask(SIG_SETMASK, [USR1], NULL, 8) = 0
rt_sigaction(SIGUSR1, {sa_handler=0xe05900, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [USR1], NULL, 8) = 0
getuid() = 1000
geteuid() = 1000
getgid() = 100
getegid() = 100
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f75627e8000
mprotect(0x7f75627e9000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f7562fe7fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f7562fe89d0, tls=0x7f7562fe8700, child_tidptr=0x7f7562fe89d0) = 23139
futex(0x235f5b8, FUTEX_WAKE_PRIVATE, 1) = 1
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f7561fe7000
mprotect(0x7f7561fe8000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f75627e6fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f75627e79d0, tls=0x7f75627e7700, child_tidptr=0x7f75627e79d0) = 23140
futex(0x235f768, FUTEX_WAKE_PRIVATE, 1) = 1
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f75617e6000
mprotect(0x7f75617e7000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f7561fe5fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f7561fe69d0, tls=0x7f7561fe6700, child_tidptr=0x7f7561fe69d0) = 23141
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f7560fe5000
mprotect(0x7f7560fe6000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f75617e4fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f75617e59d0, tls=0x7f75617e5700, child_tidptr=0x7f75617e59d0) = 23142
futex(0x7f75640b067c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f75640b0688, FUTEX_WAKE_PRIVATE, 2147483647) = 0
brk(0x2390000) = 0x2390000
getpid() = 23137
openat(AT_FDCWD, "/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 9
fstat(9, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0
poll([{fd=9, events=POLLIN}], 1, 10) = 1 ([{fd=9, revents=POLLIN}])
read(9, "\26\17\350\17o0\344?!5\v\23\355\375\267~\223\366\337\226\234>\236r\277%+,\34\221l\234", 32) = 32
close(9) = 0
getuid() = 1000
getpid() = 23137
getpid() = 23137
mmap(0x12ee31e02000, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x12ee31e02000
munmap(0x12ee31e02000, 1040384) = 0
munmap(0x12ee32000000, 8192) = 0
mmap(0x12ee31f00000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x12ee31f00000
mmap(0x2f917f580000, 536870912, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2f917f580000
brk(0x23b1000) = 0x23b1000
mmap(0x1e0f68ab2000, 262144, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x1e0f68ab2000
mmap(0x1e0f68ac0000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x1e0f68ac0000
mmap(0x89491dbe000, 4194304, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x89491dbe000
mmap(0x89491dbe000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x89491dbe000
mmap(0x2f917f600000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917f600000
mprotect(0x2f917f605000, 4096, PROT_NONE) = 0
mmap(0x2f917f606000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917f606000
mprotect(0x2f917f6ff000, 4096, PROT_NONE) = 0
mmap(0x2f917f700000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917f700000
mprotect(0x2f917f705000, 4096, PROT_NONE) = 0
mmap(0x2f917f706000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917f706000
mprotect(0x2f917f7ff000, 4096, PROT_NONE) = 0
mmap(0x2f917f800000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917f800000
mprotect(0x2f917f805000, 4096, PROT_NONE) = 0
mmap(0x2f917f806000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917f806000
mprotect(0x2f917f8ff000, 4096, PROT_NONE) = 0
mmap(0x1a974f58f000, 2052096, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x1a974f58f000
munmap(0x1a974f58f000, 462848) = 0
munmap(0x1a974f6f5000, 585728) = 0
mmap(0x1a974f600000, 1003520, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x1a974f600000
mmap(0x2f917f900000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917f900000
mprotect(0x2f917f905000, 4096, PROT_NONE) = 0
mmap(0x2f917f906000, 266240, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917f906000
mprotect(0x2f917f9ff000, 4096, PROT_NONE) = 0
mmap(0x38a9e46a0000, 1126400, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x38a9e46a0000
munmap(0x38a9e46a0000, 393216) = 0
munmap(0x38a9e4713000, 655360) = 0
mmap(0x38a9e4700000, 77824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x38a9e4700000
brk(0x23d2000) = 0x23d2000
getpid() = 23137
getpid() = 23137
readlink("/proc/self/exe", "/nix/store/9b8h4x466af85602xk6pj"..., 8191) = 66
brk(0x23f4000) = 0x23f4000
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75653a6000
mmap(NULL, 270336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7565364000
brk(0x2417000) = 0x2417000
brk(0x240d000) = 0x240d000
munmap(0x7f7565364000, 270336) = 0
munmap(0x7f75653a6000, 135168) = 0
brk(0x2462000) = 0x2462000
brk(0x23f0000) = 0x23f0000
mmap(0x2f917fa00000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917fa00000
mprotect(0x2f917fa05000, 4096, PROT_NONE) = 0
mmap(0x2f917fa06000, 1019904, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2f917fa06000
mprotect(0x2f917faff000, 4096, PROT_NONE) = 0
brk(0x2423000) = 0x2423000
brk(0x2472000) = 0x2472000
mmap(NULL, 532480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7565345000
munmap(0x7f7565345000, 532480) = 0
brk(0x24e9000) = 0x24e9000
mmap(0x3fc193f78000, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x3fc193f78000
munmap(0x3fc193f78000, 557056) = 0
munmap(0x3fc194100000, 491520) = 0
mmap(0x3fc194000000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3fc194000000
brk(0x2400000) = 0x2400000
mmap(0x231a44ad8000, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x231a44ad8000
munmap(0x231a44ad8000, 163840) = 0
munmap(0x231a44c00000, 884736) = 0
mmap(0x231a44b00000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x231a44b00000
brk(0x2422000) = 0x2422000
brk(0x246b000) = 0x246b000
brk(0x2503000) = 0x2503000
futex(0x235f278, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x235f250, FUTEX_WAKE_PRIVATE, 1) = 1
getcwd("/home/andy/tmp", 4096) = 15
mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75652c6000
munmap(0x7f75652c6000, 1052672) = 0
mmap(0xaad6d40e000, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0xaad6d40e000
munmap(0xaad6d40e000, 991232) = 0
munmap(0xaad6d600000, 57344) = 0
mmap(0xaad6d500000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xaad6d500000
stat("/home/andy/tmp/test.js", {st_mode=S_IFREG|0755, st_size=471, ...}) = 0
lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/andy", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
lstat("/home/andy/tmp", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/andy/tmp/test.js", {st_mode=S_IFREG|0755, st_size=471, ...}) = 0
openat(AT_FDCWD, "/home/andy/tmp/test.js", O_RDONLY|O_CLOEXEC) = 9
fstat(9, {st_mode=S_IFREG|0755, st_size=471, ...}) = 0
read(9, "var net = require(\"net\");\nvar as"..., 471) = 471
close(9) = 0
openat(AT_FDCWD, "/etc/resolv.conf", O_RDONLY) = 9
fstat(9, {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
read(9, "# Generated by resolvconf\nsearch"..., 4096) = 92
read(9, "", 4096) = 0
close(9) = 0
openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY) = 9
fstat(9, {st_mode=S_IFREG|0444, st_size=219, ...}) = 0
read(9, "passwd: files mymachines syst"..., 4096) = 219
read(9, "", 4096) = 0
close(9) = 0
openat(AT_FDCWD, "/dev/urandom", O_RDONLY) = 9
fstat(9, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0
ioctl(9, TCGETS, 0x7ffc2eb39b60) = -1 EINVAL (Invalid argument)
read(9, "\245\2459\373M6\246\202\311\246\303w\240V\315\17yF\26A\261\266r:\377&\367\317\202\362N\366"..., 4096) = 4096
close(9) = 0
mmap(0x3ec0a29bf000, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x3ec0a29bf000
munmap(0x3ec0a29bf000, 266240) = 0
munmap(0x3ec0a2b00000, 782336) = 0
mmap(0x3ec0a2a00000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3ec0a2a00000
openat(AT_FDCWD, "/dev/null", O_RDONLY|O_CLOEXEC) = 9
socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 10
setsockopt(10, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(10, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
listen(10, 511) = 0
getsockname(10, {sa_family=AF_INET, sin_port=htons(44471), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f75607e4000
mprotect(0x7f75607e5000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f7560fe3fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f7560fe49d0, tls=0x7f7560fe4700, child_tidptr=0x7f7560fe49d0) = 23143
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f755b7ff000
mprotect(0x7f755b800000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f755bffefb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f755bfff9d0, tls=0x7f755bfff700, child_tidptr=0x7f755bfff9d0) = 23144
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f755affe000
mprotect(0x7f755afff000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f755b7fdfb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f755b7fe9d0, tls=0x7f755b7fe700, child_tidptr=0x7f755b7fe9d0) = 23145
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f755a7fd000
mprotect(0x7f755a7fe000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f755affcfb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f755affd9d0, tls=0x7f755affd700, child_tidptr=0x7f755affd9d0) = 23146
futex(0x7f7564d911f0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f7564d911e8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f7564d91180, FUTEX_WAKE_PRIVATE, 1) = 1
epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLIN, {u32=6, u64=6}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 8, {EPOLLIN, {u32=8, u64=8}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 10, {EPOLLIN, {u32=10, u64=10}}) = 0
epoll_wait(3, [{EPOLLIN, {u32=8, u64=8}}], 1024, -1) = 1
read(8, "\1\0\0\0\0\0\0\0", 1024) = 8
socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 11
connect(11, {sa_family=AF_INET, sin_port=htons(44471), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
epoll_ctl(3, EPOLL_CTL_ADD, 11, {EPOLLOUT, {u32=11, u64=11}}) = 0
epoll_wait(3, [{EPOLLIN, {u32=10, u64=10}}, {EPOLLOUT, {u32=11, u64=11}}], 1024, -1) = 2
accept4(10, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK) = 12
write(12, "hello from server\n", 18) = 18
accept4(10, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
getsockopt(11, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
shutdown(12, SHUT_WR) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 12, {EPOLLIN, {u32=12, u64=12}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 11, {EPOLLIN, {u32=11, u64=11}}) = -1 EEXIST (File exists)
epoll_ctl(3, EPOLL_CTL_MOD, 11, {EPOLLIN, {u32=11, u64=11}}) = 0
epoll_wait(3, [{EPOLLIN, {u32=11, u64=11}}], 1024, 0) = 1
read(11, "hello from server\n", 65536) = 18
epoll_ctl(3, EPOLL_CTL_DEL, 10, 0x7ffc2eb3785c) = 0
close(10) = 0
epoll_ctl(3, EPOLL_CTL_MOD, 11, {EPOLLIN|EPOLLOUT, {u32=11, u64=11}}) = 0
epoll_wait(3, [{EPOLLIN|EPOLLOUT, {u32=11, u64=11}}], 1024, -1) = 1
read(11, "", 65536) = 0
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, TIOCGPTN, 0x7ffc2eb3717c) = -1 ENOTTY (Inappropriate ioctl for device)
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 12), ...}) = 0
readlink("/proc/self/fd/2", "/dev/pts/12", 255) = 11
stat("/dev/pts/12", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 12), ...}) = 0
openat(AT_FDCWD, "/dev/pts/12", O_RDWR|O_CLOEXEC) = 10
dup3(10, 2, O_CLOEXEC) = 2
ioctl(10, FIONBIO, [1]) = 0
ioctl(10, FIONBIO, [0]) = 0
ioctl(10, TIOCGWINSZ, {ws_row=61, ws_col=167, ws_xpixel=0, ws_ypixel=0}) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
read(4, "*", 1) = 1
rt_sigaction(SIGWINCH, {sa_handler=0x7f7564b7e230, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f75635c4dd0}, NULL, 8) = 0
write(5, "*", 1) = 1
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
epoll_ctl(3, EPOLL_CTL_DEL, 11, 0x7ffc2eb37a0c) = 0
close(11) = 0
epoll_wait(3, [{EPOLLIN|EPOLLHUP, {u32=12, u64=12}}], 1024, -1) = 1
read(12, "", 65536) = 0
epoll_ctl(3, EPOLL_CTL_DEL, 12, 0x7ffc2eb37a0c) = 0
close(12) = 0
mmap(0x2f917f600000, 1048576, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2f917f600000
mmap(0x2f917f700000, 1048576, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2f917f700000
mmap(0x2f917f800000, 1048576, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2f917f800000
munmap(0x89491dbe000, 4194304) = 0
mmap(0x12ee31f00000, 1048576, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x12ee31f00000
mmap(0xaad6d500000, 1048576, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0xaad6d500000
munmap(0x1a974f600000, 1003520) = 0
munmap(0x3fc194000000, 1048576) = 0
munmap(0x3ec0a2a00000, 1048576) = 0
mmap(0x2f917f900000, 1048576, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2f917f900000
mmap(0x2f917fa00000, 1048576, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2f917fa00000
munmap(0x38a9e4700000, 77824) = 0
munmap(0x231a44b00000, 1048576) = 0
munmap(0x1e0f68ab2000, 262144) = 0
munmap(0x12ee31f00000, 1048576) = 0
munmap(0xaad6d500000, 1048576) = 0
munmap(0x2f917f580000, 536870912) = 0
futex(0x235f278, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f7562fe89d0, FUTEX_WAIT, 23139, NULL) = 0
futex(0x7f7564d911e8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f7564d91180, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f7560fe49d0, FUTEX_WAIT, 23143, NULL) = 0
munmap(0x7f75627e8000, 8392704) = 0
munmap(0x7f7561fe7000, 8392704) = 0
munmap(0x7f75617e6000, 8392704) = 0
munmap(0x7f7560fe5000, 8392704) = 0
exit_group(0) = ?
+++ exited with 0 +++
@jfo
Copy link

jfo commented Apr 10, 2018

@andrewrk can you post strace output for just the request? Most of the node output is the require algorithm chatting to the filesystem that only happens the first time, I think...

@andrewrk
Copy link
Author

it's all intertwined in node.js. It sets up the event loop before it chats to the file system.

@petar-dambovaliev
Copy link

Zig input is large and output is small. Javascript is the opposite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment