[cl-plus-ssl-devel] concurrency problems when used with chrome?

Attila Lendvai attila.lendvai at gmail.com
Tue May 17 20:49:16 UTC 2011


dear list,

i've successfully added https support to hu.dwim.web-server, which
thanks to cl+ssl was much less trouble (for now) than i've expected.

it seems to work mostly fine with ff and opera, but with chrome i get
the following error randomly in half of the worker threads (one worker
for one connection):

The TLS/SSL connection on handle #.(SB-SYS:INT-SAP #X00C1C4A0) has
been closed. (return code:  5)SSL error queue:

   [Condition of type CL+SSL::SSL-ERROR-ZERO-RETURN]

the relevant part of the backtrace:

  5: ((LABELS HU.DWIM.UTIL::HANDLE-LEVEL-1-ERROR)
#<CL+SSL::SSL-ERROR-ZERO-RETURN {10088187B1}>)
  6: (SIGNAL #<CL+SSL::SSL-ERROR-ZERO-RETURN {10088187B1}>)
  7: (ERROR CL+SSL::SSL-ERROR-ZERO-RETURN :HANDLE #.(SB-SYS:INT-SAP
#X7FFFEC0654B0) :RET 5 :QUEUE "SSL error queue: \n")
  8: (CL+SSL::SSL-SIGNAL-ERROR #.(SB-SYS:INT-SAP #X7FFFEC0654B0)
#<FUNCTION CL+SSL::SSL-READ> 5 0)
  9: ((FLET #:WPO[READ-HTTP-REQUEST/HEAD]46))
 10: (HU.DWIM.WEB-SERVER::READ-HTTP-REQUEST/HEAD 15
#<CL+SSL::SSL-SERVER-STREAM for 15> #.(SB-SYS:INT-SAP #X7FFFEC0654B0)
:LENGTH-LIMIT 65536)


i suspect that there's something inside cl+ssl that is not threadsafe,
because afaik chrome is more aggressively parallel than the others...
maybe there's a C struct that should be thread local and is a mere
global?

unfortunately my first glance didn't find anything suspicious.

any ideas how to proceed with this?

-- 
 attila

Notice your eroding (digital) freedom, and do something about it!

PGP: 2FA1 A9DC 9C1E BA25 A59C  963F 5D5F 45C7 DFCD 0A39
OTR XMPP: 8647EEAC EA30FEEF E1B55146 573E52EE 21B1FF06
BitCoin: 154uf86Vd9rpjMULd9CXa7nVwikknYZJiB




More information about the cl-plus-ssl-devel mailing list