Wishlist: Websocketd Gateway Support

Bug #1777180 reported by Bill Erickson
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenSRF
Fix Released
Wishlist
Unassigned

Bug Description

This is a continuation of my dev list email:

http://libmail.georgialibraries.org/pipermail/open-ils-dev/2018-June/010520.html

and associated wiki page:

https://wiki.evergreen-ils.org/doku.php?id=dev:websockets:gateway:websocketd

The goal is to add support for using Websocketd as our websockets OpenSRF gateway. The primary benefits are gateway stability and code maintainability.

I've performed a variety of load tests (scripts included in branch) and every day use with the websocketd gateway. So far, it's been rock solid. More testing will tell, but if all goes well, I think we should consider this a replacement for the Apache websockets personality.

Cleaned up, rebased branch en route with docs.

Bill Erickson (berick)
Changed in opensrf:
status: New → In Progress
Revision history for this message
Bill Erickson (berick) wrote :
Bill Erickson (berick)
Changed in opensrf:
status: In Progress → New
assignee: Bill Erickson (berick) → nobody
Revision history for this message
Jeff Davis (jdavis-sitka) wrote :

We've been running this branch in various test environments for about a week with no issues that I've noticed so far. I may try it out in production as early as next week, mainly to see if it helps with bug 1774703.

Revision history for this message
Bill Erickson (berick) wrote :

Thanks, Jeff. I've been running the code in various test environments as well. No issues thus far. Of course, the real test will be running in a variety of production environments.

I'm going to add a pullrequest tag for higher visibility.

Given how trivial it is to add a systemd configuration for start/stop control of the websocketd-osrf process, I was not planning to add a custom script for this. However, if we want to have one in the repo as a generic (non-systemd) start/stop control script, I can add one.

Revision history for this message
Bill Erickson (berick) wrote :
tags: added: pullrequest
Revision history for this message
Jeff Davis (jdavis-sitka) wrote :

We've been running websocketd on two of our production servers since last week. No problems so far. I'm planning to switch our remaining servers from apache2-websockets to websocketd later this week.

Attached is an init script (/etc/init.d/websocketd) which we're using in our Ubuntu 14.04 environment, where systemd is not yet available.

Bill Erickson (berick)
Changed in opensrf:
milestone: none → 3.1-beta
Revision history for this message
Jeff Davis (jdavis-sitka) wrote :

Still no issues yet in Ubuntu 14.04 testing and production environments. I'll be trying it out on Ubuntu 16.04 next month, but I went ahead and signed off already: user/jeffdavis/lp1777180-websocketd-gateway-signoff

tags: added: signedoff
Revision history for this message
Jason Stephenson (jstephenson) wrote :

I've been testing this on two VMs with Ubuntu 16.04. So far it has worked without load.

I have also been using it without a proxy set up. We might want to amend the installation instructions to include how to run it so it works without a proxy. I've found that the following command line basically works:

sudo -b nohup /usr/local/bin/websocketd --port 7682 --ssl --sslcert=/etc/apache2/ssl/server.crt --sslkey=/etc/apache2/ssl/server.key /openils/bin/osrf-websocket-stdio

It should be noted that you should combine your cert and separate certificate chain file or CA certs into one file.

Revision history for this message
Jason Stephenson (jstephenson) wrote :

Interestingly, I find that websocketd does not need nohup to continue running in the background after the user who started it logs out, so it must take some of the steps required to daemonize the process. I will see about adding instructions for running it with SSL minus the proxy and adding them to the README and signing off on the branch.

Changed in opensrf:
status: New → Confirmed
assignee: nobody → Jason Stephenson (jstephenson)
Revision history for this message
Jason Stephenson (jstephenson) wrote :

I added my signoff branch with an additional modification to the README to given an example of running websocketd without a proxy.

I also wonder if we should continue to mention apache2-websocket or if it should be remove from the README.

My signoff branch is here: collab/dyrcona/lp1777180-websocketd-gateway-signoff

http://git.evergreen-ils.org/?p=working/OpenSRF.git;a=shortlog;h=refs/heads/collab/dyrcona/lp1777180-websocketd-gateway-signoff

Changed in opensrf:
assignee: Jason Stephenson (jstephenson) → nobody
Revision history for this message
Ben Shum (bshum) wrote :

Worked for me too. Pushed to OpenSRF master.

Changed in opensrf:
status: Confirmed → Fix Committed
Revision history for this message
Ben Shum (bshum) wrote :

Need to get unzip for the websocketd instructions. Added it to the makefile (and zip too for good measure)

user/bshum/lp1777180-continued

http://git.evergreen-ils.org/?p=working/OpenSRF.git;a=shortlog;h=refs/heads/user/bshum/lp1777180-continued

Revision history for this message
Jason Stephenson (jstephenson) wrote :

Signed off and pushed Ben's prereq. update to master for completeness' sake.

Galen Charlton (gmc)
Changed in opensrf:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.