Could this be the problem? Sees to alleviate the symptoms for me certainly..

diff -r 096278955dc1 nsd/sockfile.c
--- a/nsd/sockfile.c    Wed Mar 04 04:29:31 2015 +0100
+++ b/nsd/sockfile.c    Tue Mar 10 10:42:44 2015 +0000
@@ -386,7 +386,7 @@
 int
 Ns_SockCork(Ns_Sock *sock, int cork)
 {
-    int success = 1;
+    int success = 0;
 #ifdef TCP_CORK
     Sock *sockPtr = (Sock *)sock;



On 9 March 2015 at 16:24, David Osborne <da...@qcode.co.uk> wrote:

> Hi again,
>
> We're getting some Error messages when we're browsing fastpath pages
> running tip via https.
> Not sure of this is anything to actually to worry about since there
> doesn't seem to be any side-effect except for the frequent error messages
> in the log.
>
> *[09/Mar/2015:15:59:06][17560.7fffedf37700][-conn:default:4-] Error:
> socket: trying to uncork an uncorked socket 10*
>
> It appears pretty much every time we click on a link.
>
>
>
> *Test case:*
>
> Building with the tip versions of naviserver and nsssl (but with the
> configure.ac change to CCRFLAG/LDRFLAG we discussed)
>
> Add the following to the end of the default
>  /usr/local/ns/conf/nsd-config.tcl:
>
>      ns_section    ns/server/default/module/nsssl
>      ns_param      certificate
>  /usr/local/ns/modules/nsssl/server.pem
>      ns_param      address              0.0.0.0
>      ns_param      port                 443
>      ns_param      ciphers
>  
> "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!RC4
> "
>      ns_param      protocols            "!SSLv2"
>      ns_param      verify                0
>
>      ns_param      extraheaders {
>         Strict-Transport-Security "max-age=31536000; includeSubDomains"
>         X-Frame-Options SAMEORIGIN
>         X-Content-Type-Options nosniff
>      }
>
> List nsssl.so in the module list
>
> ns_section     "ns/server/default/modules"
> ns_param        nscp                nscp.so
> ns_param        nssock              nssock.so
> ns_param        nslog               nslog.so
> ns_param        nscgi               nscgi.so
> ns_param        nsdb                nsdb.so
> ns_param      nsssl                        nsssl.so
>
> Do the following to generate a self-signed cert:
>
>     openssl genrsa 1024 > host.key
>     openssl req -new -x509 -nodes -sha1 -days 365 -key host.key > host.cert
>     cat host.cert host.key > server.pem
>     rm -rf host.cert host.key
>     openssl dhparam 2048 >> server.pem
>
>
>
> Run:
> /usr/local/ns/bin/nsd -c -u root -t /usr/local/ns/conf/nsd-config.tcl
>
> Browsing to https://servername/doc/index.html then clicking on one of the
> command names (eg. to take us
> https://servername/doc/naviserver/files/ns_adp_break.html) will cause the
> error.
>
>
> I tried to catch this in gdb by setting a breakpoint on Ns_Log with
> severity Error:
>
> ...
> [09/Mar/2015:15:49:37][17543.7fffef22d700][-sched-] Notice: sched: starting
> [Switching to Thread 0x7fffedf37700 (LWP 17554)]
>
> Breakpoint 3, Ns_Log (severity=severity@entry=2, fmt=fmt@entry=0x7ffff7bbabe0
> "socket: trying to uncork an uncorked socket %d")
>     at log.c:481
> 481     {
> (gdb)  bt
> #0  Ns_Log (severity=severity@entry=2, fmt=fmt@entry=0x7ffff7bbabe0
> "socket: trying to uncork an uncorked socket %d")
>     at log.c:481
> #1  0x00007ffff7b91516 in Ns_SockCork (sock=sock@entry=0x7ffff001c9a0,
> cork=cork@entry=0) at sockfile.c:405
> #2  0x00007ffff7b9166a in SendFd (sock=sock@entry=0x7ffff001c9a0, fd=11,
> offset=10165, length=length@entry=10165,
>     timeoutPtr=timeoutPtr@entry=0x7fffedf36110, flags=flags@entry=0,
> sendProc=sendProc@entry=0x7fffee798b70 <Send>)
>     at sockfile.c:481
> #3  0x00007ffff7b913e9 in NsSockSendFileBufsIndirect (sock=0x7ffff001c9a0,
> bufs=<optimized out>, nbufs=<optimized out>,
>     timeoutPtr=timeoutPtr@entry=0x7fffedf36110, flags=0,
> sendProc=0x7fffee798b70 <Send>) at sockfile.c:309
> #4  0x00007ffff7b75fc7 in NsDriverSendFile (sockPtr=<optimized out>,
> bufs=bufs@entry=0x7fffedf363a0, nbufs=nbufs@entry=1,
>     flags=flags@entry=0) at driver.c:1133
> #5  0x00007ffff7b72ea9 in Ns_ConnSendFileVec (conn=conn@entry=0x66ecb0,
> bufs=bufs@entry=0x7fffedf363a0, nbufs=1)
>     at connio.c:525
> #6  0x00007ffff7b8be86 in ReturnRange (conn=conn@entry=0x66ecb0,
> type=type@entry=0x627c90 "text/html", fd=fd@entry=11,
>     data=data@entry=0x0, len=len@entry=10165) at return.c:988
> #7  0x00007ffff7b8bc64 in ReturnOpen (conn=conn@entry=0x66ecb0,
> status=status@entry=200, type=type@entry=0x627c90 "text/html",
>     chan=chan@entry=0x0, fp=fp@entry=0x0, fd=fd@entry=11, len=10165) at
> return.c:881
> #8  0x00007ffff7b8bbe5 in Ns_ConnReturnOpenFd (conn=conn@entry=0x66ecb0,
> status=status@entry=200,
>     type=type@entry=0x627c90 "text/html", fd=fd@entry=11, len=<optimized
> out>) at return.c:854
> #9  0x00007ffff7b7c7fd in FastReturn (conn=conn@entry=0x66ecb0,
> status=status@entry=200, type=0x627c90 "text/html",
>     type@entry=0x0, file=0x7fffedf36b00
> "/usr/local/ns/pages/doc/naviserver/files/ns_adp_ctl.html") at
> fastpath.c:570
> #10 0x00007ffff7b7c4c3 in Ns_FastPathProc (UNUSED_arg=<optimized out>,
> conn=0x66ecb0) at fastpath.c:244
> #11 0x00007ffff7b85059 in Ns_ConnRunRequest (conn=conn@entry=0x66ecb0) at
> op.c:293
> #12 0x00007ffff7b89283 in ConnRun (connPtr=0x66ecb0, argPtr=0x16c6a70) at
> queue.c:1513
> #13 NsConnThread (arg=0x16c6a70) at queue.c:1229
> #14 0x00007ffff74ea77c in NsThreadMain (arg=<optimized out>) at
> thread.c:227
> #15 0x00007ffff74eb6c9 in ThreadMain (arg=<optimized out>) at pthread.c:809
> #16 0x00007ffff64ed0a4 in start_thread () from
> /lib/x86_64-linux-gnu/libpthread.so.0
> #17 0x00007ffff69ebccd in clone () at
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
> (gdb) frame 0
> #0  Ns_Log (severity=severity@entry=2, fmt=fmt@entry=0x7ffff7bbabe0
> "socket: trying to uncork an uncorked socket %d")
>     at log.c:481
> 481     {
> (gdb) frame 1
> #1  0x00007ffff7b91516 in Ns_SockCork (sock=sock@entry=0x7ffff001c9a0,
> cork=cork@entry=0) at sockfile.c:405
> 405             Ns_Log(Error, "socket: trying to uncork an uncorked socket
> %d",
> (gdb) print *sock
> $1 = {driver = 0x654c50, sock = 10, sa = {sin_family = 2, sin_port =
> 46046, sin_addr = {s_addr = 191146176},
>     sin_zero = "\000\000\000\000\000\000\000"}, arg = 0x7ffff006f510}
>
>
>
>


-- 
David Osborne
Qcode Software Limited
http://www.qcode.co.uk
T: +44 (0)1463 896484
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to