v1->v2: * increment of connection count now happens right before the AnyEvent::Handle is created * the handle-creation is guarded by an error-flag, and if it fails the connection count is decremented (bounded to 0) again * as suggested by Thomas - added a debug print sub which includes the package name, linenumber and function name where the printing happens * refactored all active debug-prints to use it.
original cover-letter for v1: This patchset is the result of investigating a report in our community forum: https://forum.proxmox.com/threads/pveproxy-eats-available-ram.79617/ The first patch fixes an issue where pveproxy worker processes would never exit (and eat quite a bit of ram+cpu) when 'getpeername' returned an error. The second seemed to me like a sensible further cleanup, and the third patch will hopefully provide the needed information when debugging such things in the future. Huge thanks to Dominik, who analyzed this issue with me! Stoiko Ivanov (5): add debug print helper accept-phase: fix conn_count "leak" accept-phase: shutdown socket on early error add debug log for problems during accept debug: uniformly use dprint PVE/APIServer/AnyEvent.pm | 74 +++++++++++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 15 deletions(-) -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel