Hi,
I have found what I guess is a bug in relayd. I noticed the issue when transfering a large file (over 1GB) which killed my system. Here is my sendbug report, my relayd.conf (nothing special here) and output of "top" where you can see that the memory used by the relayd process (30946) is doubling every 5 seconds. Regards, Ronan >Synopsis: Relayd memory leak crashes system with large file transfer >Category: System >Environment: System : OpenBSD 6.2 Details : OpenBSD 6.2 (GENERIC) #0: Thu Oct 12 19:16:36 CEST 2017 [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC Architecture: OpenBSD.amd64 Machine : amd64 >Description: The system is running relayd configured as a relay for TLS acceleration. When using this relay to transfer large files (i.e. 10GB) with PUT method, the relayd process is doubling its memory usage regularly until the system crashes. >How-To-Repeat: Setup a simple HTTP relay, start a file transfer and monitor memory usage with top. I use NextCloud as target service on which I upload the large file. >Fix: Unknown dmesg: OpenBSD 6.2 (GENERIC) #0: Thu Oct 12 19:16:36 CEST 2017 [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC real mem = 1056899072 (1007MB) avail mem = 1017995264 (970MB) mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xe0010 (364 entries) bios0: vendor Phoenix Technologies LTD version "6.00" date 04/14/2014 bios0: VMware, Inc. VMware Virtual Platform acpi0 at bios0: rev 2 acpi0: sleep states S0 S1 S4 S5 acpi0: tables DSDT FACP BOOT APIC MCFG SRAT HPET WAET acpi0: wakeup devices PCI0(S3) USB_(S1) P2P0(S3) S1F0(S3) S2F0(S3) S8F0(S3) S16F(S3) S17F(S3) S18F(S3) S22F(S3) S23F(S3) S24F(S3) S25F(S3) PE40(S3) S1F0(S3) PE50(S3) [...] acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz, 2394.07 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,MMX,FXSR,SSE,SSE2,SS,SSE3,PCLMUL,SSSE3,FMA3,CX16,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,RDTSCP,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS,SENSOR,ARAT cpu0: 256KB 64b/line 8-way L2 cache cpu0: TSC frequency 2394070950 Hz cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges cpu0: apic clock running at 65MHz ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 11, 24 pins acpimcfg0 at acpi0 addr 0xf0000000, bus 0-127 acpihpet0 at acpi0: 14318179 Hz acpiprt0 at acpi0: bus 0 (PCI0) acpicpu0 at acpi0: C1(@1 halt!) "PNP0001" at acpi0 not configured "PNP0F13" at acpi0 not configured "PNP0A05" at acpi0 not configured "PNP0400" at acpi0 not configured "PNP0700" at acpi0 not configured acpiac0 at acpi0: AC unit online pvbus0 at mainbus0: VMware vmt0 at pvbus0 pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 "Intel 82443BX AGP" rev 0x01 ppb0 at pci0 dev 1 function 0 "Intel 82443BX AGP" rev 0x01 pci1 at ppb0 bus 1 pcib0 at pci0 dev 7 function 0 "Intel 82371AB PIIX4 ISA" rev 0x08 pciide0 at pci0 dev 7 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel 0 configured to compatibility, channel 1 configured to compatibility atapiscsi0 at pciide0 channel 0 drive 0 scsibus1 at atapiscsi0: 2 targets cd0 at scsibus1 targ 0 lun 0: ATAPI 5/cdrom removable cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2 pciide0: channel 1 disabled (no drives) piixpm0 at pci0 dev 7 function 3 "Intel 82371AB Power" rev 0x08: SMBus disabled "VMware VMCI" rev 0x10 at pci0 dev 7 function 7 not configured vga1 at pci0 dev 15 function 0 "VMware SVGA II" rev 0x00 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) mpi0 at pci0 dev 16 function 0 "Symbios Logic 53c1030" rev 0x01: apic 1 int 17 mpi0: 0, firmware 1.3.41.32 scsibus2 at mpi0: 16 targets, initiator 7 sd0 at scsibus2 targ 0 lun 0: SCSI2 0/direct fixed sd0: 8192MB, 512 bytes/sector, 16777216 sectors mpi0: target 0 Sync at 160MHz width 16bit offset 127 QAS 1 DT 1 IU 1 ppb1 at pci0 dev 17 function 0 "VMware PCI" rev 0x02 pci2 at ppb1 bus 2 ppb2 at pci0 dev 21 function 0 "VMware PCIE" rev 0x01 pci3 at ppb2 bus 3 vmx0 at pci3 dev 0 function 0 "VMware VMXNET3" rev 0x01: apic 1 int 18, address 00:50:56:01:42:33 ppb3 at pci0 dev 21 function 1 "VMware PCIE" rev 0x01 pci4 at ppb3 bus 4 ppb4 at pci0 dev 21 function 2 "VMware PCIE" rev 0x01 pci5 at ppb4 bus 5 ppb5 at pci0 dev 21 function 3 "VMware PCIE" rev 0x01 pci6 at ppb5 bus 6 ppb6 at pci0 dev 21 function 4 "VMware PCIE" rev 0x01 pci7 at ppb6 bus 7 ppb7 at pci0 dev 21 function 5 "VMware PCIE" rev 0x01 pci8 at ppb7 bus 8 ppb8 at pci0 dev 21 function 6 "VMware PCIE" rev 0x01 pci9 at ppb8 bus 9 ppb9 at pci0 dev 21 function 7 "VMware PCIE" rev 0x01 pci10 at ppb9 bus 10 ppb10 at pci0 dev 22 function 0 "VMware PCIE" rev 0x01 pci11 at ppb10 bus 11 vmx1 at pci11 dev 0 function 0 "VMware VMXNET3" rev 0x01: apic 1 int 19, address 00:50:56:10:14:7b ppb11 at pci0 dev 22 function 1 "VMware PCIE" rev 0x01 pci12 at ppb11 bus 12 ppb12 at pci0 dev 22 function 2 "VMware PCIE" rev 0x01 pci13 at ppb12 bus 13 ppb13 at pci0 dev 22 function 3 "VMware PCIE" rev 0x01 pci14 at ppb13 bus 14 ppb14 at pci0 dev 22 function 4 "VMware PCIE" rev 0x01 pci15 at ppb14 bus 15 ppb15 at pci0 dev 22 function 5 "VMware PCIE" rev 0x01 pci16 at ppb15 bus 16 ppb16 at pci0 dev 22 function 6 "VMware PCIE" rev 0x01 pci17 at ppb16 bus 17 ppb17 at pci0 dev 22 function 7 "VMware PCIE" rev 0x01 pci18 at ppb17 bus 18 ppb18 at pci0 dev 23 function 0 "VMware PCIE" rev 0x01 pci19 at ppb18 bus 19 vmx2 at pci19 dev 0 function 0 "VMware VMXNET3" rev 0x01: apic 1 int 16, address 00:50:56:10:14:cc ppb19 at pci0 dev 23 function 1 "VMware PCIE" rev 0x01 pci20 at ppb19 bus 20 ppb20 at pci0 dev 23 function 2 "VMware PCIE" rev 0x01 pci21 at ppb20 bus 21 ppb21 at pci0 dev 23 function 3 "VMware PCIE" rev 0x01 pci22 at ppb21 bus 22 ppb22 at pci0 dev 23 function 4 "VMware PCIE" rev 0x01 pci23 at ppb22 bus 23 ppb23 at pci0 dev 23 function 5 "VMware PCIE" rev 0x01 pci24 at ppb23 bus 24 ppb24 at pci0 dev 23 function 6 "VMware PCIE" rev 0x01 pci25 at ppb24 bus 25 ppb25 at pci0 dev 23 function 7 "VMware PCIE" rev 0x01 pci26 at ppb25 bus 26 ppb26 at pci0 dev 24 function 0 "VMware PCIE" rev 0x01 pci27 at ppb26 bus 27 ppb27 at pci0 dev 24 function 1 "VMware PCIE" rev 0x01 pci28 at ppb27 bus 28 ppb28 at pci0 dev 24 function 2 "VMware PCIE" rev 0x01 pci29 at ppb28 bus 29 ppb29 at pci0 dev 24 function 3 "VMware PCIE" rev 0x01 pci30 at ppb29 bus 30 ppb30 at pci0 dev 24 function 4 "VMware PCIE" rev 0x01 pci31 at ppb30 bus 31 ppb31 at pci0 dev 24 function 5 "VMware PCIE" rev 0x01 pci32 at ppb31 bus 32 ppb32 at pci0 dev 24 function 6 "VMware PCIE" rev 0x01 pci33 at ppb32 bus 33 ppb33 at pci0 dev 24 function 7 "VMware PCIE" rev 0x01 pci34 at ppb33 bus 34 isa0 at pcib0 isadma0 at isa0 fdc0 at isa0 port 0x3f0/6 irq 6 drq 2 com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo pckbc0 at isa0 port 0x60/5 irq 1 irq 12 pckbd0 at pckbc0 (kbd slot) wskbd0 at pckbd0: console keyboard, using wsdisplay0 pms0 at pckbc0 (aux slot) wsmouse0 at pms0 mux 0 pcppi0 at isa0 port 0x61 spkr0 at pcppi0 lpt0 at isa0 port 0x378/4 irq 7 vscsi0 at root scsibus3 at vscsi0: 256 targets softraid0 at root scsibus4 at softraid0: 256 targets root on sd0a (a9a47698e70bebe6.a) swap on sd0b dump on sd0b fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec relayd.conf: log updates prefork 10 cloud_fqdn = "cloud.mydomain.tld" table { 172.16.0.1 } http protocol tls-webproxy { match request header append "X-Forwarded-For" value "$REMOTE_ADDR" match request header append "X-Forwarded-By" \ value "$SERVER_ADDR:SERVER_PORT" match header set "Connection" value "close" pass request quick header "Host" value \ $cloud_fqdn forward to block } relay "myRelay" { listen on a.b.c.d port 443 tls protocol tls-webproxy forward to port 80 } top output: load averages: 0.00, 0.00, 0.00 gw-1.orange-projectbooster.co 11:32:50 58 processes: 57 idle, 1 on processor up 0:16 CPU states: 0.8% user, 0.0% nice, 0.8% system, 0.2% interrupt, 98.2% idle Memory: Real: 114M/394M act/tot Free: 585M Cache: 196M Swap: 0K/182M PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND 1 root 10 0 388K 432K idle wait 0:01 0.00% init 24756 _relayd 2 0 1584K 4276K sleep kqread 0:00 0.00% relayd 66338 _relayd 2 0 1596K 4276K idle kqread 0:00 0.00% relayd 83319 _relayd 2 0 1588K 4268K idle kqread 0:00 0.00% relayd 64814 _relayd 2 0 1600K 4280K idle kqread 0:00 0.00% relayd 30946 _relayd 2 0 2368K 5348K sleep kqread 0:00 0.00% relayd 24050 _relayd 2 0 1588K 4264K idle kqread 0:00 0.00% relayd 52580 _relayd 2 0 1576K 4228K idle kqread 0:00 0.00% relayd 3884 _relayd 2 0 1588K 4284K sleep kqread 0:00 0.00% relayd 90046 _relayd 2 0 1588K 4244K idle kqread 0:00 0.00% relayd 75377 root 18 0 752K 860K sleep pause 0:00 0.00% ksh 24898 _relayd 2 0 1592K 4260K idle kqread 0:00 0.00% relayd 13327 _relayd 2 0 1588K 4252K idle kqread 0:00 0.00% relayd 21783 _relayd 2 0 2024K 4956K sleep kqread 0:00 0.00% relayd 23277 _syslogd 2 0 912K 1600K sleep kqread 0:00 0.00% syslogd 78899 _relayd 2 0 2024K 4968K sleep kqread 0:00 0.00% relayd 50448 _pflogd 4 0 712K 604K sleep bpf 0:00 0.00% pflogd 55475 root 2 0 3096K 5320K idle kqread 0:00 0.00% relayd load averages: 0.00, 0.00, 0.00 gw-1.orange-projectbooster.co 11:32:55 58 processes: 57 idle, 1 on processor up 0:16 CPU states: 1.6% user, 0.0% nice, 2.0% system, 1.8% interrupt, 94.6% idle Memory: Real: 130M/412M act/tot Free: 567M Cache: 196M Swap: 0K/182M PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND 30946 _relayd 2 0 18M 21M sleep kqread 0:00 0.59% relayd 1 root 10 0 388K 432K idle wait 0:01 0.00% init 24756 _relayd 2 0 1584K 4276K sleep kqread 0:00 0.00% relayd 66338 _relayd 2 0 1596K 4276K idle kqread 0:00 0.00% relayd 83319 _relayd 2 0 1588K 4268K idle kqread 0:00 0.00% relayd 64814 _relayd 2 0 1600K 4280K idle kqread 0:00 0.00% relayd 24050 _relayd 2 0 1588K 4264K idle kqread 0:00 0.00% relayd 3884 _relayd 2 0 1588K 4284K sleep kqread 0:00 0.00% relayd 52580 _relayd 2 0 1576K 4228K idle kqread 0:00 0.00% relayd 90046 _relayd 2 0 1588K 4244K idle kqread 0:00 0.00% relayd 75377 root 18 0 752K 860K sleep pause 0:00 0.00% ksh 24898 _relayd 2 0 1592K 4260K idle kqread 0:00 0.00% relayd 13327 _relayd 2 0 1588K 4252K idle kqread 0:00 0.00% relayd 21783 _relayd 2 0 2024K 4956K sleep kqread 0:00 0.00% relayd 23277 _syslogd 2 0 912K 1600K sleep kqread 0:00 0.00% syslogd 78899 _relayd 2 0 2024K 4968K sleep kqread 0:00 0.00% relayd 50448 _pflogd 4 0 712K 604K sleep bpf 0:00 0.00% pflogd 189 _relayd 2 0 2344K 5304K sleep kqread 0:00 0.00% relayd load averages: 0.00, 0.00, 0.00 gw-1.orange-projectbooster.co 11:33:00 58 processes: 57 idle, 1 on processor up 0:16 CPU states: 2.6% user, 0.0% nice, 4.0% system, 1.2% interrupt, 92.2% idle Memory: Real: 146M/428M act/tot Free: 551M Cache: 196M Swap: 0K/182M PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND 30946 _relayd 2 0 34M 37M sleep kqread 0:00 1.37% relayd 1 root 10 0 388K 432K idle wait 0:01 0.00% init 24756 _relayd 2 0 1584K 4276K sleep kqread 0:00 0.00% relayd 66338 _relayd 2 0 1596K 4276K idle kqread 0:00 0.00% relayd 83319 _relayd 2 0 1588K 4268K idle kqread 0:00 0.00% relayd 64814 _relayd 2 0 1600K 4280K idle kqread 0:00 0.00% relayd 24050 _relayd 2 0 1588K 4264K idle kqread 0:00 0.00% relayd 3884 _relayd 2 0 1588K 4284K sleep kqread 0:00 0.00% relayd 52580 _relayd 2 0 1576K 4228K idle kqread 0:00 0.00% relayd 90046 _relayd 2 0 1588K 4244K idle kqread 0:00 0.00% relayd 75377 root 18 0 752K 860K sleep pause 0:00 0.00% ksh 24898 _relayd 2 0 1592K 4260K idle kqread 0:00 0.00% relayd 13327 _relayd 2 0 1588K 4252K idle kqread 0:00 0.00% relayd 21783 _relayd 2 0 2024K 4956K sleep kqread 0:00 0.00% relayd 23277 _syslogd 2 0 912K 1600K sleep kqread 0:00 0.00% syslogd 189 _relayd 2 0 2344K 5304K sleep kqread 0:00 0.00% relayd 78899 _relayd 2 0 2024K 4968K sleep kqread 0:00 0.00% relayd 50448 _pflogd 4 0 712K 604K sleep bpf 0:00 0.00% pflogd load averages: 0.00, 0.00, 0.00 gw-1.orange-projectbooster.co 11:33:05 58 processes: 57 idle, 1 on processor up 0:16 CPU states: 2.8% user, 0.0% nice, 4.2% system, 1.4% interrupt, 91.6% idle Memory: Real: 178M/461M act/tot Free: 517M Cache: 196M Swap: 0K/182M PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND 30946 _relayd 2 0 66M 69M sleep kqread 0:01 1.90% relayd 1 root 10 0 388K 432K idle wait 0:01 0.00% init 24756 _relayd 2 0 1584K 4276K sleep kqread 0:00 0.00% relayd 66338 _relayd 2 0 1596K 4276K idle kqread 0:00 0.00% relayd 83319 _relayd 2 0 1588K 4268K idle kqread 0:00 0.00% relayd 64814 _relayd 2 0 1600K 4280K idle kqread 0:00 0.00% relayd 24050 _relayd 2 0 1588K 4264K idle kqread 0:00 0.00% relayd 3884 _relayd 2 0 1588K 4284K sleep kqread 0:00 0.00% relayd 52580 _relayd 2 0 1576K 4228K idle kqread 0:00 0.00% relayd 90046 _relayd 2 0 1588K 4244K idle kqread 0:00 0.00% relayd 75377 root 18 0 752K 860K sleep pause 0:00 0.00% ksh 24898 _relayd 2 0 1592K 4260K idle kqread 0:00 0.00% relayd 13327 _relayd 2 0 1588K 4252K idle kqread 0:00 0.00% relayd 21783 _relayd 2 0 2024K 4956K sleep kqread 0:00 0.00% relayd 23277 _syslogd 2 0 912K 1600K sleep kqread 0:00 0.00% syslogd 189 _relayd 2 0 2344K 5304K sleep kqread 0:00 0.00% relayd 50448 _pflogd 4 0 712K 604K sleep bpf 0:00 0.00% pflogd 78899 _relayd 2 0 2024K 4968K sleep kqread 0:00 0.00% relayd load averages: 0.00, 0.00, 0.00 gw-1.orange-projectbooster.co 11:33:10 58 processes: 1 running, 56 idle, 1 on processor up 0:16 CPU states: 3.0% user, 0.0% nice, 4.6% system, 1.4% interrupt, 91.0% idle Memory: Real: 242M/528M act/tot Free: 451M Cache: 196M Swap: 0K/182M PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND 30946 _relayd 28 0 130M 134M run - 0:01 2.59% relayd 1 root 10 0 388K 432K idle wait 0:01 0.00% init 24756 _relayd 2 0 1584K 4276K sleep kqread 0:00 0.00% relayd 66338 _relayd 2 0 1596K 4276K idle kqread 0:00 0.00% relayd 83319 _relayd 2 0 1588K 4268K idle kqread 0:00 0.00% relayd 24050 _relayd 2 0 1588K 4288K sleep kqread 0:00 0.00% relayd 64814 _relayd 2 0 1600K 4280K idle kqread 0:00 0.00% relayd 3884 _relayd 2 0 1588K 4284K sleep kqread 0:00 0.00% relayd 52580 _relayd 2 0 1576K 4228K idle kqread 0:00 0.00% relayd 90046 _relayd 2 0 1588K 4244K idle kqread 0:00 0.00% relayd 75377 root 18 0 752K 860K sleep pause 0:00 0.00% ksh 24898 _relayd 2 0 1592K 4260K idle kqread 0:00 0.00% relayd 13327 _relayd 2 0 1588K 4252K idle kqread 0:00 0.00% relayd 21783 _relayd 2 0 2024K 4956K sleep kqread 0:00 0.00% relayd 23277 _syslogd 2 0 912K 1600K sleep kqread 0:00 0.00% syslogd 93747 _relayd 2 0 2272K 5248K sleep kqread 0:00 0.00% relayd 189 _relayd 2 0 2344K 5304K sleep kqread 0:00 0.00% relayd 50448 _pflogd 4 0 712K 604K sleep bpf 0:00 0.00% pflogd
