Hi Devs, On ocserv 0.8.2 from I am getting ocserv-worker processes which use 100% of CPU time. Here is full debugging info for one of the processes which is using 100% CPU : ID: 5634 Username: XX Groupname: (none) State: connected Remote IP: XX IPv4: 10.10.4.167 P-t-P IPv4: 10.10.4.166 Device: tun06 User-Agent: Cisco AnyConnect VPN Agent for Apple iPad 3.0.0 Connected at: 2014-08-20 11:49 ( 7m:11s) TLS ciphersuite: (TLS1.0)-(RSA)-(AES-128-CBC)-(SHA1) DTLS cipher: AES128-SHA DNS: 8.8.8.8 Routes: defaultroute root at XX:/# gdb /usr/local/sbin/ocserv 5634 GNU gdb (GDB) 7.4.1-debian Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/local/sbin/ocserv...done. Attaching to program: /usr/local/sbin/ocserv, process 5634 Reading symbols from /usr/lib/libopts.so.25...(no debugging symbols found)...done. Loaded symbols for /usr/lib/libopts.so.25 Reading symbols from /usr/lib/x86_64-linux-gnu/libgnutls-deb0.so.28...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libgnutls-deb0.so.28 Reading symbols from /lib/x86_64-linux-gnu/libpam.so.0...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libpam.so.0 Reading symbols from /lib/x86_64-linux-gnu/libutil.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libutil.so.1 Reading symbols from /lib/x86_64-linux-gnu/libcrypt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libcrypt.so.1 Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libc.so.6 Reading symbols from /lib/x86_64-linux-gnu/libz.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libz.so.1 Reading symbols from /usr/lib/x86_64-linux-gnu/libp11-kit.so.0...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 Reading symbols from /lib/x86_64-linux-gnu/librt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/librt.so.1 Reading symbols from /usr/lib/x86_64-linux-gnu/libtasn1.so.6...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libtasn1.so.6 Reading symbols from /usr/lib/x86_64-linux-gnu/libnettle.so.4...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libnettle.so.4 Reading symbols from /usr/lib/x86_64-linux-gnu/libhogweed.so.2...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libhogweed.so.2 Reading symbols from /usr/lib/x86_64-linux-gnu/libgmp.so.10...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libgmp.so.10 Reading symbols from /lib/x86_64-linux-gnu/libdl.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libdl.so.2 Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /usr/lib/x86_64-linux-gnu/libffi.so.5...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libffi.so.5 Reading symbols from /lib/x86_64-linux-gnu/libpthread.so.0...(no debugging symbols found)...done. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Loaded symbols for /lib/x86_64-linux-gnu/libpthread.so.0 Reading symbols from /lib/x86_64-linux-gnu/libnss_compat.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libnss_compat.so.2 Reading symbols from /lib/x86_64-linux-gnu/libnsl.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libnsl.so.1 Reading symbols from /lib/x86_64-linux-gnu/libnss_nis.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libnss_nis.so.2 Reading symbols from /lib/x86_64-linux-gnu/libnss_files.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libnss_files.so.2 0x00007fa7ddb1ed8a in pselect () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) bt full #0 0x00007fa7ddb1ed8a in pselect () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #1 0x000000000040a5a4 in connect_handler (ws=0x2629c60) at worker-vpn.c:1902 req = 0x2629c78 rfds = {fds_bits = {65840, 0 <repeats 15 times>}} max = 16 p = <optimized out> tv = {tv_sec = 10, tv_nsec = 0} proto_overhead = 28 ret = <optimized out> t = -382479640 i = <optimized out> ip6 = <optimized out> emptyset = {__val = {0 <repeats 16 times>}} e = <optimized out> tls_pending = 0 dtls_pending = 0 tnow = {tv_sec = 1408529098, tv_nsec = 37290000} sl = 4 blockset = {__val = {16384, 0 <repeats 15 times>}} #2 vpn_server (ws=ws at entry=0x2629c60) at worker-vpn.c:824 buf = "CONNECT /CSCOSSLC/tunnel HTTP/1.1\r\nHost: XX\r\nUser-Agent: Cisco AnyConnect VPN Agent for Apple iPad 3.0.09440\r\nCookie: webvpn=T+jme20om068mLbIO39FmJD+U/LwHgQnXKV6mSlLGf8W+ANKyNKY"... ret = <optimized out> nparsed = <optimized out> nrecvd = <optimized out> session = 0x263b9f0 parser = {type = 0, flags = 0, state = 18, header_state = 0, index = 0, nread = 0, content_length = 18446744073709551615, http_major = 1, http_minor = 1, status_code = 0, method = 5, http_errno = 0, upgrade = 1, data = 0x2629c60} settings = {on_message_begin = 0, on_url = 0x4083e0 <url_cb>, on_status = 0, on_header_field = 0x408ba0 <header_field_cb>, on_header_value = 0x408c20 <header_value_cb>, on_headers_complete = 0x408b80 <header_complete_cb>, on_body = 0x4084e0 <body_cb>, on_message_complete = 0x4082b0 <message_complete_cb>} requests_left = <optimized out> #3 0x0000000000406d67 in main (argc=<optimized out>, argv=<optimized out>) at main.c:1100 fd = 8 pid = 0 e = <optimized out> ltmp = 0x26233f0 ctmp = <optimized out> cpos = <optimized out> rd_set = {fds_bits = {16, 0 <repeats 15 times>}} wr_set = {fds_bits = {0 <repeats 16 times>}} n = 24 ret = <optimized out> flags = <optimized out> ts = {tv_sec = 30, tv_nsec = 0} cmd_fd = {12, 16} ws = 0x2629c60 worker_pool = <optimized out> main_pool = 0x260a0c0 set = <optimized out> s = 0x260a1b0 emptyset = {__val = {0 <repeats 16 times>}} blockset = {__val = {90115, 0 <repeats 15 times>}} creds = {xcred = 0x2623be0, cprio = 0x2628a10, dh_params = 0x0} root at XX:/# strace -p 5634 pselect6(19, [4 7 8 18], NULL, NULL, {10, 0}, {[], 8}) = 1 (in [7], left {9, 999998495}) recvfrom(5, 0x262e330, 18780, 0, 0, 0) = -1 EBADF (Bad file descriptor) pselect6(19, [4 7 8 18], NULL, NULL, {10, 0}, {[], 8}) = 1 (in [7], left {9, 999998510}) recvfrom(5, 0x262e330, 18780, 0, 0, 0) = -1 EBADF (Bad file descriptor) pselect6(19, [4 7 8 18], NULL, NULL, {10, 0}, {[], 8}) = 1 (in [7], left {9, 999998515}) recvfrom(5, 0x262e330, 18780, 0, 0, 0) = -1 EBADF (Bad file descriptor) pselect6(19, [4 7 8 18], NULL, NULL, {10, 0}, {[], 8}) = 1 (in [7], left {9, 999998489}) recvfrom(5, 0x262e330, 18780, 0, 0, 0) = -1 EBADF (Bad file descriptor)