Bug 1472061

Summary: mod_cluster + mod_proxy_wstunnel causes Segmentation Fault
Product: [Retired] JBoss Web Server 3 Reporter: KooV <coolseed>
Component: mod_clusterAssignee: Weinan Li <weli>
Status: CLOSED DEFERRED QA Contact: Michal Karm Babacek <mbabacek>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.0.0CC: bperkins, jdoyle, pslavice, rsvoboda
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-07-18 06:13:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description KooV 2017-07-18 02:10:03 UTC
Description of problem:
mod_cluster + mod_proxy_wstunnel causes segfault

Version-Release number of selected component (if applicable):
RHEL 6.9 x86_64
Jboss Web Server 3.0.3 + SP1
JBoss EAP 6.4.16

This occurred while testing the example https://access.redhat.com/solutions/47442

----------- mod_cluster.conf in httpd
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule cluster_slotmem_module modules/mod_cluster_slotmem.so
LoadModule manager_module modules/mod_manager.so
LoadModule advertise_module modules/mod_advertise.so

MemManagerFile /software/httpd/cache/mod_cluster

Listen 192.168.0.81:6666
<VirtualHost 192.168.0.81:6666>
    <Directory "/">
        Require all granted
    </Directory>

    KeepAliveTimeout 60
    MaxKeepAliveRequests 0
    ManagerBalancerName mycluster
    EnableMCPMReceive
    ServerAdvertise Off
</VirtualHost>

<Location /mc>
    SetHandler mod_cluster-manager
    Require all granted
</Location>
----------------------------------------------

--------- mod_proxy_wstunnel.conf in httpd
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

<Proxy balancer://TEST_WS>
    BalancerMember ws://192.168.0.81:8080 route=node11
    BalancerMember ws://192.168.0.82:8080 route=node21
    ProxySet stickysession=JSESSIONID|jsessionid
</Proxy>

RewriteEngine On

RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /jboss-websocket-hello/(.*)               balancer://TEST_WS/jboss-websocket-hello/$1 [P,L]
-------------------------------------------


If you request websocket open, segfault will always occur.

This only happens when using a balancer and not when testing with no balancer.

Similarly, wierd state occurs when using mod_jk + mod_proxy_wstunnel.

If you try to stop httpd in the open state of websocket, it will not be stopped and it will end with SIGKILL.

I think there is something wrong with balancer.

Comment 1 Michal Karm Babacek 2017-07-18 06:13:08 UTC
Hi KooV, we migrated the project to another bug tracker, please, follow: https://issues.jboss.org/browse/JBCS-375