(In asnwer to the previous question, yes this is debian 8.7 with openssl
1.0.1t)
On 24 February 2017 at 06:24, Gustaf Neumann <neum...@wu.ac.at> wrote:
> There are reports that SSL writes with large content cause problems.
> I've uploaded a version of revproxy that avoids memory bloats on huge
> files and that chunks POST data.
>
Thanks, that's working great for me.
Have tested it with large POST data, binary data, UTF-8 data and all gets
handled perfectly.
Only issue I've come across is testing the behaviour when the proxy can't
connect to the backend. I'm getting a segfault for every request in that
case.
Not making much progress debugging since I don't understand socket
programming well enough, but it looks like the code doesn't pickup on the
ssl connection error (error:00000000:lib(0):func(0):reason(0)) which is
reported in the interpreter
(gdb) bt
#0 0x00007ffff4a0cf10 in Send (sock=0x7fffb800dd80, bufs=0x7fffd77fc950,
nbufs=4, UNUSED_timeoutPtr=<optimized out>, UNUSED_flags=<optimized out>)
at nsssl.c:584
#1 0x00007ffff7b5239d in DriverSend (interp=0x7fffc8008f70,
connChanPtr=0x7fffc80bf740, bufs=0x7fffd77fc950, nbufs=4, flags=0,
timeoutPtr=0x7fffd77fc850, flags=0) at connchan.c:628
#2 0x00007ffff7b515c2 in ConnChanOpenObjCmd (clientData=0x7fffc804f750,
interp=0x7fffc8008f70, objc=0, objv=0x7fffc80bf7b8) at connchan.c:856
#3 0x00007ffff7b86714 in Ns_SubcmdObjv (subcmdSpec=0x7fffd77fcae0,
clientData=0x7fffdc0570b0, interp=0x7fffc8008f70, objc=11,
objv=0x7fffc80171b8)
at tclobjv.c:1506
#4 0x00007ffff7b522e5 in NsTclConnChanObjCmd (clientData=<optimized out>,
interp=<optimized out>, objc=<optimized out>, objv=<optimized out>)
at connchan.c:1304
#5 0x00007ffff71bce59 in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#6 0x00007ffff720395e in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#7 0x00007ffff7246ce9 in TclObjInterpProcCore () from
/usr/lib/x86_64-linux-gnu/libtcl8.5.so
#8 0x00007ffff71bce59 in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#9 0x00007ffff720395e in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#10 0x00007ffff7202897 in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#11 0x00007ffff71be6e6 in TclEvalObjEx () from /usr/lib/x86_64-linux-gnu/
libtcl8.5.so
#12 0x00007ffff71c5690 in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#13 0x00007ffff71bce59 in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#14 0x00007ffff71bd312 in Tcl_EvalObjv () from /usr/lib/x86_64-linux-gnu/
libtcl8.5.so
#15 0x00007ffff71be9a2 in TclEvalObjEx () from /usr/lib/x86_64-linux-gnu/
libtcl8.5.so
#16 0x00007ffff724642f in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#17 0x00007ffff71bce59 in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#18 0x00007ffff720395e in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#19 0x00007ffff7246ce9 in TclObjInterpProcCore () from
/usr/lib/x86_64-linux-gnu/libtcl8.5.so
#20 0x00007ffff71bce59 in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#21 0x00007ffff720395e in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#22 0x00007ffff7246ce9 in TclObjInterpProcCore () from
/usr/lib/x86_64-linux-gnu/libtcl8.5.so
#23 0x00007ffff71bce59 in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#24 0x00007ffff71bdb29 in ?? () from /usr/lib/x86_64-linux-gnu/libtcl8.5.so
#25 0x00007ffff71bd473 in Tcl_EvalEx () from /usr/lib/x86_64-linux-gnu/
libtcl8.5.so
#26 0x00007ffff7b87918 in NsTclFilterProc (arg=0x871820, conn=0x6a4e30,
why=NS_FILTER_PRE_AUTH) at tclrequest.c:537
#27 0x00007ffff7b5d89f in NsRunFilters (conn=conn@entry=0x6a4e30,
why=why@entry=NS_FILTER_PRE_AUTH) at filter.c:161
#28 0x00007ffff7b6ace4 in ConnRun (connPtr=0x6a4e30,
UNUSED_argPtr=0x6b3340) at queue.c:1998
#29 NsConnThread (arg=0x6b3340) at queue.c:1714
#30 0x00007ffff74ba86d in NsThreadMain (arg=<optimized out>) at thread.c:232
#31 0x00007ffff74bb8a9 in ThreadMain (arg=<optimized out>) at pthread.c:830
#32 0x00007ffff5e520a4 in start_thread (arg=0x7fffd77fe700) at
pthread_create.c:309
#33 0x00007ffff635362d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb) frame 4
#4 0x00007ffff7b522e5 in NsTclConnChanObjCmd (clientData=<optimized out>,
interp=<optimized out>, objc=<optimized out>, objv=<optimized out>)
at connchan.c:1304
1304 return Ns_SubcmdObjv(subcmds, clientData, interp, objc, objv);
(gdb) frame 2
#2 0x00007ffff7b515c2 in ConnChanOpenObjCmd (clientData=0x7fffc804f750,
interp=0x7fffc8008f70, objc=0, objv=0x7fffc80bf7b8) at connchan.c:856
856 nSent = DriverSend(interp, connChanPtr, buf, 4, 0u,
&connChanPtr->sendTimeout);
(gdb) print interp
$18 = (Tcl_Interp *) 0x7fffc8008f70
(gdb) print *interp
$19 = {
result = 0x7fffc8009148 "ssl connect failed:
error:00000000:lib(0):func(0):reason(0)",
freeProc = 0x0,
errorLine = 1
}
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel