Red Hat Bugzilla – Bug 535478
RT connector bundled in snmp_module-x64-linux-apache2.2.zip is not HTTPD 2.2-compatible
Last modified: 2011-01-05 23:46:14 EST
When apache tries to load the mod_rt.so binary module packaged in snmp_module-x64-linux-apache2.2.zip, it throws the error:
Starting httpd: httpd.worker: Syntax error on line 1003 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_rt.so into server: /etc/httpd/modules/mod_rt.so: invalid ELF header
File says it's a 32-bit executable:
../../../modules/mod_rt.so: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
I compiled a new one from sources like so:
./build_apache_module.sh 2.x /usr/sbin/apxs
File reports a 64-bit executable:
.libs/mod_rt.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
httpd starts fine after this, rt module is loaded according to apachectl -M
This possibly affects binary module distributions in connector packages for other arches/httpd versions.
This bug was previously known as http://jira.rhq-project.org/browse/RHQ-2169
Temporarily adding the keyword "SubBug" so we can be sure we have accounted for all the bugs.
new = Tracking + FutureFeature + SubBug
making sure we're not missing any bugs in rhq_triage
Mass move to component = Monitoring
ccrouch - Anything to do here for 241?
I don't think there is an issue here.
1) mod_rt.so is *NOT* packaged inside snmp_module-x64*
2) we don't package linux binaries of mod_rt at all (this might be considered a bug)
3) even the original bug description mentions that the mod_rt.so it tries to load is an windows DLL being used on Linux, which of course won't succeed. This is probably because the only mod_rt binary we package is the Windows 32bit binary and Mark mistakenly tried to use it on Linux.
Sounds like we're fine here, but lets take this opportunity to have QE test our regular Apache 2.2 monitoring and the RT monitoring when Apache 2.2 is deployed on Linux 64bit.
Re: SNMP monitoring
We have actually been doing the bulk of our Apache testing on 2.2 systems. I went to configure it on a test box only to find the bits already there from a past installation. This box is, and has been, running Apache 2.2. I had to regenerate the httpd.conf lines that had been wiped out from other test efforts long ago, but after that, the monitored httpd in inventory is green and being monitored just fine.
Re: RT monitoring
It is not a "bug", per say, that there is no binary - the steps to build are doc'ed:
So why are there no builds for Linux (and/or other *nix platforms)? Presumably because
a) there were never *nix binaries delivered from the original provider (as is often there case - sources are delivered for *nix but binaries are delivered for Win),
b) no one in dev was familiar with the black art of the SNMP connector stuff, and/or
c) to actually compile the rt filter is a trivial matter, as illustrated in the initial report (and contrary to what it might seem in the documentation).
We can bug the lack of a mod_rt.so for linux as a future feature -- though I'd argue it'd be more flexible in the long run to, if anything at all, try and provide a reasonable shell script is provided rather than having to keep add new binaries every time a new platform, arch or apache release comes out.
Back to the functional aspect - it seems to be working, at least as best I understand it. the .so compiles, httpd loads the .so, and monitoring seems to be just fine...
But as for the root of this bug itself, it's invalid.