Bug 698207

Summary: aviary plugin doesn't load properly
Product: Red Hat Enterprise MRG Reporter: Martin Kudlej <mkudlej>
Component: condor-aviaryAssignee: Robert Rati <rrati>
Status: CLOSED ERRATA QA Contact: Tomas Rusnak <trusnak>
Severity: urgent Docs Contact:
Priority: urgent    
Version: DevelopmentCC: iboverma, jneedle, matt, pmackinn, trusnak
Target Milestone: 2.0   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: wso2-wsf-cpp-2.1.0-2 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-27 15:30:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
Axis2/C patch to allow explicit lib file names in config and services xml none

Description Martin Kudlej 2011-04-20 12:44:03 UTC
Description of problem: This bug is based on https://bugzilla.redhat.com/show_bug.cgi?id=693384#c14
and here is attachment https://bugzilla.redhat.com/attachment.cgi?id=493453

Comment 1 Pete MacKinnon 2011-04-20 15:44:56 UTC
The Axis2/C engine does explicit loading of transport libraries (and other components) based on config names. Those config names are used to construct literal file names to be dlopened. Thus... 

[Wed Apr 20 11:09:29 2011] [error] class_loader.c(152) Loading shared library /usr/lib64/libaxis2_http_sender.so  Failed. DLERROR IS /usr/lib64/libaxis2_http_sender.so: cannot open shared object file: No such file or directory

If the runtime WS02 package doesn't install the .so file or its softlink then the provider init fails.

Comment 2 Matthew Farrellee 2011-04-20 16:26:28 UTC
Immediate workaround is to install the wso2 -devel packages.

Comment 3 Pete MacKinnon 2011-04-21 15:05:38 UTC
Created attachment 493886 [details]
Axis2/C patch to allow explicit lib file names in config and services xml

Comment 5 Pete MacKinnon 2011-04-21 22:09:09 UTC
Rob, I think the patch in c#3 is good to go. I found a bizarre corner case which has to do if we inadvertently put differing lib names (libfoo.so,libfoo.so.0) in the services.xml file. The library prefix gets corrupted or deleted on one of the entries. My patch(es) mingled with the axis internals somehow leads the engine to think that it can't execute on a received message because of this mix-up. However, debugging didn't really reveal the rationale for whatever Axis2/C was trying to do (not without a lot more head scratching).

As long as each receiver lib file name is the same in the services.xml file, we are fine.

The upshot is that this would be just considered bad config since the lib name should be identical for each operation. Indeed I need to see if we can just specify it once for all operations. Technical debt for a future release. I'll release note the issue for now.

Comment 6 Robert Rati 2011-04-25 15:40:04 UTC
Included in 2.1.0-2

Comment 8 Tomas Rusnak 2011-04-29 12:27:38 UTC
Retested over current release on all supported x86,x86_64/RHEL5,RHEL6:

$CondorVersion: 7.6.1 Apr 27 2011 BuildID: RH-7.6.1-0.4.el6 $
$CondorPlatform: X86_64-RedHat_6.0 

wso2-axis2-2.1.0-3.el6.x86_64

SchedLog:
04/29/11 15:10:16 (pid:26347) ScheddPlugin registration succeeded
04/29/11 15:10:16 (pid:26347) Successfully loaded plugin: /usr/lib64/condor/plugins/AviaryScheddPlugin-plugin.so
04/29/11 15:10:16 (pid:26347) Successfully loaded plugin: /usr/lib64/condor/plugins/AviaryScheddPlugin-plugin.so
04/29/11 15:10:16 (pid:26347) Axis2 listener on http port: 9090
04/29/11 15:10:16 (pid:26347) History file rotation is enabled.
04/29/11 15:10:16 (pid:26347)   Maximum history file size is: 314572800 bytes
04/29/11 15:10:16 (pid:26347)   Number of rotated history files is: 10
04/29/11 15:10:16 (pid:26347) "/usr/sbin/condor_shadow.std -classad" did not produce any output, ignoring
04/29/11 15:10:16 (pid:26347) About to rotate ClassAd log /var/lib/condor/spool/job_queue.log
04/29/11 15:10:22 (pid:26347) TransferQueueManager stats: active up=0/10 down=0/10; waiting up=0 down=0; wait time up=0s down=0s

Plugins were loaded correctly.

>>> VERIFIED