Return-Path: X-Original-To: apmail-httpd-modules-dev-archive@minotaur.apache.org Delivered-To: apmail-httpd-modules-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9ECEB17DDD for ; Wed, 25 Feb 2015 00:19:18 +0000 (UTC) Received: (qmail 33435 invoked by uid 500); 25 Feb 2015 00:19:18 -0000 Delivered-To: apmail-httpd-modules-dev-archive@httpd.apache.org Received: (qmail 33368 invoked by uid 500); 25 Feb 2015 00:19:18 -0000 Mailing-List: contact modules-dev-help@httpd.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: modules-dev@httpd.apache.org Delivered-To: mailing list modules-dev@httpd.apache.org Received: (qmail 33353 invoked by uid 99); 25 Feb 2015 00:19:18 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 25 Feb 2015 00:19:18 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jacob.champion@ni.com designates 130.164.80.23 as permitted sender) Received: from [130.164.80.23] (HELO ni.com) (130.164.80.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 25 Feb 2015 00:19:12 +0000 Received: from us-aus-mgwout1.amer.corp.natinst.com (nb-chan1-1338.natinst.com [130.164.19.134]) by us-aus-skprod2.natinst.com (8.15.0.59/8.15.0.59) with ESMTP id t1P0GpAv030726 for ; Tue, 24 Feb 2015 18:16:51 -0600 Received: from [10.2.106.75] ([130.164.14.198]) by us-aus-mgwout1.amer.corp.natinst.com (Lotus Domino Release 8.5.3FP6) with ESMTP id 2015022418165167-380365 ; Tue, 24 Feb 2015 18:16:51 -0600 Message-ID: <54ED1473.1060604@ni.com> Date: Tue, 24 Feb 2015 18:16:51 -0600 From: Jacob Champion User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: modules-dev@httpd.apache.org Subject: Debugging mod_websocket -- any others out there? X-MIMETrack: Itemize by SMTP Server on US-AUS-MGWOut1/AUS/H/NIC(Release 8.5.3FP6|November 21, 2013) at 02/24/2015 06:16:51 PM, Serialize by Router on US-AUS-MGWOut1/AUS/H/NIC(Release 8.5.3FP6|November 21, 2013) at 02/24/2015 06:16:51 PM Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2015-02-24_06:,, signatures=0 X-Virus-Checked: Checked by ClamAV on apache.org Hi everyone, [I'm keeping this short in case it's the wrong list for this topic -- if you think I should go to apache-dev or apache-users instead, just say the word.] First some background: I'm interested in running a WebSocket endpoint, in production, from inside Apache 2.4. I'm aware that there are architectural issues with long-lived TCP connections hogging Apache resources, and at the moment I'm prepared to live with the consequences of that (or at least I think I am). I've been working with mod=5Fwebsocket [1] for a few weeks now. Things were going very well until we ran into crashes under heavy load. I =5Fthink=5F they are related to the threading model used by mod=5Fwebsocket= -- it spins up a new thread and a new bucket brigade to write to the connection, while the original thread and brigade block to read messages. Unfortunately I don't know enough about the brigade system to know whether that's kosher or even fixable. The original author appears to have moved on to other things, if the Github history and open pull requests are any indication. So my initial questions for you are: - Is there enough interest in mod=5Fwebsocket for my debugging it to be worth anyone else's time? It seems that there was some initial interest in folding mod=5Fwebsocket back into ASF, but that died at some point. - Does anyone know of a community of mod=5Fwebsocket users that I'm missing? Contributing fixes back to whomever is using it would be ideal. - Is it even possible/safe to do an asynchronous "one thread reads, one thread writes" operation in a production-quality module? (In other words, is mod=5Fwebsocket just unfixably broken?) Basically I'm hoping to get some idea of whether I'm wasting my time. I believe the primary alternative would be to use a second WebSocket-savvy server on the backend, and run communication to it through mod=5Fproxy=5Fwstunnel. Thanks for your input! Jacob Champion LabVIEW R&D National Instruments [1] https://github.com/disconnect/apache-websocket