Category Archives: Apache

Segmentation fault (11) with mod_weblogic and ssl weblogic

Recently I’ve stumbled upon a strange one. We have setup an OHS in front of OBIEE, on different machine to enable caching, SSL and fast failover (switching between two synced OBIEE servers). We use /em and /console links to redirect to the weblogic Enterprise Manager and Administration Console. Until now we used the standard non SSL ports for this. We got a notification that all traffic from our server should be encrypted using SSL. As OHS and OBIEE are on different servers, we needed to configure SSL on the weblogic ports 7001 and 9704.

Enabling SSL on Weblogic was easy, as I will explain in a later post. Now I needed to configure mod_weblogic to communicate to weblogic on the ssl port. As our OHS (Oracle HTTP Server) 11.1.1.6.0 installation is standard, I tried to enable the mod_weblogic to connect to weblogic on a ssl port, using the following configuration:

<Location /console>
  <IfModule mod_weblogic.c>
    SetHandler weblogic-handler
    WebLogicHost hostname
    WebLogicPort 7002
    SecureProxy ON
    WlSSLWallet "path_to_oracle_wallet"
  </IfModule>
</Location>

I kept getting the following error every time a request was made:

[Tue Dec 03 13:54:47 2013] [notice] child pid 21617 exit signal Segmentation fault (11)

This was very strange because everything was working fine, I was able to login to the console. After a little digging it seems that the mod_wl_ohs.so plugin is to blame. After I downloaded the plugin from the Oracle Technology Network and modified the mod_wl_ohs.conf to include the new plugin, the error in log file was gone, and it seemed that everything was working faster.

Will have to see if this interferes with normal OBIEE operation…

PlsqlDatabaseConnectString takes 1-2 arguments, Connect String to Database (SID, Service Name, TNS)

If you see the error bellow it means that you haven’t configured the mod_plsql PlsqlDatabaseConnectString parameter correctly in dads.conf. There are multiple ways to configure it:

1. Connection string:

PlsqlDatabaseConnectString server_hostname:1521:DB_SID

2. TNSName entry with tnsnames.ora

PlsqlDatabaseConnectString TNS_ENTRY

For this to work you also need to have a tnsnames.ora file in OHS_HOME/network/admin/tnsnames.ora (in my case /u01/app/oracle/product/FMW/Oracle_WT/network/admin/tnsnames.ora) with the corresponding tns entry.

3. TNSNameFormat (Notice there are no spaces)

PlsqlDatabaseConnectString     (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DB_SERVICE_NAME)))

With this you can put multiple servers, create load balance, etc. as you would do with a tns entry in tnsnames.ora file.

Apache logs not showing in Munin

My munin did not show the graphs for apache_accesses, apache_processes or apache_volume. The logs from munin (/var/log/munin/munin-node.log) showed the following errors:

Error output from apache_accesses:
     LWP::UserAgent not found at /etc/munin/plugins/apache_accesses line 86.
 Service 'apache_accesses' exited with status 2/0.
 Error output from apache_processes:
     LWP::UserAgent not found at /etc/munin/plugins/apache_processes line 92.
 Service 'apache_processes' exited with status 2/0.
 Error output from apache_volume:
     LWP::UserAgent not found at /etc/munin/plugins/apache_volume line 86.
 Service 'apache_volume' exited with status 2/0.

A little digging in those plugins, showed up the fact that you can “test” them by just running them with the” autoconf” parameter, and if everything went ok, it would output “yes”, but mine did not. The output was:

/var/log/munin# /etc/munin/plugins/apache_accesses autoconf
no (apache server-status not found. check if mod_status is enabled)

I had in mods-enabled the server status mod, but it wouldn’t recognize it. I then compared the configuration from that server to another one, which was working, and the only difference between them was that the one not working did not have an apache2 default vhost. After i added that everything was fine.

I thing the plugin checks http://localhost/server-status?auto to get the status, and how i did not have a default vhost, the link was not working.

Hope this helps somebody!