Ticket #2726 (closed defect: fixed)

Opened 6 years ago

Last modified 6 years ago

Upgrade activemqcpp to 3.5.0

Reported by: srp Owned by: srp
Priority: normal Milestone:
Component: TCT Keywords:
Cc: robyn, mjuric, ktl, rhl, smm, rowen, RayPlante, gpdf Blocked By:
Blocking: Project: LSST
Version Number:
How to repeat:

not applicable

Description

I'd like to upgrade activemqcpp to 3.5.0. The old version is 3.1.2. This will take care of an issue that buildbot uncovered. I've tested this locally, and all the ctrl_events tests passed. I have the changes necessary for the .bld and .cfg files as well.

Change History

comment:1 Changed 6 years ago by srp

I'd also like to upgrade to ActiveMQ Broker to 5.8.0 (up from 5.6.0)

comment:2 Changed 6 years ago by robyn

  • Status changed from new to assigned

TCT members: KT, Mario, Serge, Russell, and Robyn, discussed this issue on 7 Mar 2013.

KT noted that activemqcpp was on the list of packages which could be updated on a 6 monthly basis without explicit review by the TCT. So, although we didn't need to vote on this long-anticipated upgrade, we did so anyway.

KT requested that should Steve need help in updating /distributing the upgrade, we should assist him as necessary since KT would be out-of-reach. The assembled TCT members agreed to help as needed.

The collected TCT members agreed that activemqcpp and its companion broker could be updated ASAP by Steve.

Action item: Steve will prepare the distribution package for the updated activemqcpp. He will also arrange for it to be installed into the lsst cluster gcc system stack. If he needs help in preparing the distribution package, he should contact one (or more) of the TCT members.

comment:3 Changed 6 years ago by RayPlante

  • Status changed from assigned to needInfo
  • reviewstatus changed from notReady to needsTest

Version 5.8.0+1 is available and installed correctly on the ncsa cluster's default stack. Please test that installed version as well as confirm installation in your private stack.

comment:4 Changed 6 years ago by srp

  • Owner changed from srp to RayPlante
  • Status changed from needInfo to assigned
  • reviewstatus changed from needsTest to notReady

There is an issue with the include files. The LSST .bld file for activemqcpp copied the include files up one directory. The new additions to the .cfg file make that unnecessary, and shouldn't move of those include files should not be done. If I remember correctly, there are a couple of lines in the .bld file that do this, and they can be deleted.

Also, the .cfg file that I gave you included a line:

print config.paths["XCPPPATH"]

which can be deleted.

comment:5 Changed 6 years ago by srp

The ActiveMQ broker has been upgraded to 5.8.0

comment:6 Changed 6 years ago by RayPlante

  • Owner changed from RayPlante to srp
  • Status changed from assigned to needInfo
  • reviewstatus changed from notReady to needsTest

Hey Steve, Can you have another look now? The version now is 3.5.0+2.

comment:7 Changed 6 years ago by srp

The compilation of the files seem to be doing OK, but when building the tests, I"m getting:

/lsst/DC3/stacks/gcc445-RH6/28nov2011/Linux64/external/activemqcpp/3.5.0+2/lib/libactivemq-cpp.so: undefined reference to `apr_generate_random_bytes'
/lsst/DC3/stacks/gcc445-RH6/28nov2011/Linux64/external/activemqcpp/3.5.0+2/lib/libactivemq-cpp.so: undefined reference to `apr_os_locale_encoding'
/lsst/DC3/stacks/gcc445-RH6/28nov2011/Linux64/external/activemqcpp/3.5.0+2/lib/libactivemq-cpp.so: undefined reference to `apr_os_uuid_get'
/lsst/DC3/stacks/gcc445-RH6/28nov2011/Linux64/external/activemqcpp/3.5.0+2/lib/libactivemq-cpp.so: undefined reference to `apr_os_default_encoding'

Those functions exist in the apr-1 library in $APR_DIR, so I'm not sure what's happening here.

Last edited 6 years ago by srp (previous) (diff)

comment:8 Changed 6 years ago by srp

I was able to get this to work by running "autogen.sh" before configure, make, and make install.

comment:9 Changed 6 years ago by srp

The link line difference between what not using autogen.sh and using it is that if you don't run autogen.sh, the link line for the library has an extra "-fPIC -DPIC"

comment:10 Changed 6 years ago by rhl

the link line for the library has an extra "-fPIC -DPIC"

Are you sure this isn't a compile line?

comment:11 Changed 6 years ago by srp

Well, I might be mistaken, but the beginning of this (very, very long line is):

libtool: link: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbeginS.o  activemq/cmsutil/.libs/libactivemq_cpp_la-CachedConsumer.o activemq/cmsutil/.libs/libactivemq_cpp_la-CachedProducer.o activemq/cmsutil/.libs/libactivemq_cpp_la-CmsAccessor.o activemq/cmsutil/.libs/libactivemq_cpp_la-CmsDestinationAccessor.o activemq/cmsutil/.libs/libactivemq_cpp_la-CmsTemplate.o

and it ends with:

decaf/util/zip/.libs/libactivemq_cpp_la-DeflaterOutputStream.o decaf/util/zip/.libs/libactivemq_cpp_la-Inflater.o decaf/util/zip/.libs/libactivemq_cpp_la-InflaterInputStream.o decaf/util/zip/.libs/libactivemq_cpp_la-ZipException.o   /lsst/DC3/stacks/gcc445-RH6/28nov2011/Linux64/external/apr/1.3.3+1/lib/libapr-1.a -luuid -lrt -lcrypt /lsst/DC3/stacks/gcc445-RH6/28nov2011/Linux64/external/apr/1.3.3+1/lib/libaprutil-1.a /lsst/DC3/stacks/gcc445-RH6/28nov2011/Linux64/external/apr/1.3.3+1/lib/libexpat.a -lssl -lcrypto -ldl -lz -lpthread -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o  -O2 -pthread   -pthread -Wl,-soname -Wl,libactivemq-cpp.so.15 -o .libs/libactivemq-cpp.so.1

comment:12 Changed 6 years ago by rhl

libtool: link: g++ -fPIC -DPIC -shared -nostdlib

Hmm. g++ -DPIC defines a C-preprocessor macro which the linker doesn't care about. And -fPIC is also a compiler flag meaning, "generate Position Independent Code` and again I'd be surprised that the linker cares. So I'm a bit surprised that the linker cares.

comment:13 Changed 6 years ago by srp

I'm not sure the linker cares either. The initial comment was a follow on to a conversation that Ray and I had yesterday in which he asked me to look at the differences in the link line between what worked (mine, after running autogen.sh) and didn't work (his, not running autogen.sh). That's the only difference I saw that popped out at me.

comment:14 Changed 6 years ago by rhl

look at the differences in the link line between what worked (mine, after running autogen.sh) and didn't work (his, not running autogen.sh). That's the only difference I saw that popped out at me.

I thought that that was what was going on. I'm arguing that this change might not explain the different behaviour, in which case we 'd need to keep looking.

comment:15 Changed 6 years ago by srp

Yes, I agree.

The "out of the tarball" files show that the Makefile.in was generated with automate 1.11.3, while the one we have on the system (and that autogen.sh used) was 1.11.1. I don't know what difference that would make either.

comment:16 Changed 6 years ago by srp

  • Owner changed from srp to RayPlante

comment:17 Changed 6 years ago by RayPlante

  • Owner changed from RayPlante to srp

Okay--3.5.0+3 is installed. Can you check to see if the libs will link now?

comment:18 Changed 6 years ago by srp

Success! I ran the unit tests on ctrl_events, and they passed.

Closing this ticket.

Last edited 6 years ago by srp (previous) (diff)

comment:19 Changed 6 years ago by srp

  • Status changed from needInfo to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.