Closed Bug 628282 Opened 15 years ago Closed 15 years ago

Upgrade valgrind on linux/linux64 machines to 3.6.0

Categories

(Release Engineering :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: catlee, Assigned: catlee)

References

Details

(Whiteboard: [puppet])

Attachments

(2 files, 1 obsolete file)

The version that's currently installed on the slaves (3.2.1) is too old to do what we want.
Assignee: nobody → catlee
Attachment #506777 - Flags: review?(bhearsum)
Not sure if this requires a review or not. This is based on the fedora core 15 source rpm (ftp://195.220.108.108/linux/fedora/development/rawhide/source/SRPMS/valgrind-3.6.0-1.fc15.src.rpm). I stripped out some openmpi support that I don't think we need, and also removed the glibc version dependencies.
Comment on attachment 506779 [details] [diff] [review] RPM spec files and patches for valgrind fwiw, here's what I changed on the spec file: diff --git a/valgrind/centos5-i686/valgrind.spec b/valgrind/centos5-i686/valgrind.spec --- a/valgrind/centos5-i686/valgrind.spec +++ b/valgrind/centos5-i686/valgrind.spec @@ -23,24 +23,16 @@ License: GPLv2 URL: http://www.valgrind.org/ Group: Development/Debuggers BuildRoot: %{_tmppath}/%{name}-root Obsoletes: valgrind-callgrind %ifarch x86_64 ppc64 # Ensure glibc{,-devel} is installed for both multilib arches BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so %endif -%if 0%{?fedora} >= 13 || 0%{?rhel} >= 6 -BuildRequires: glibc-devel >= 2.12 -%else -BuildRequires: glibc-devel >= 2.11 -%endif -%ifnarch s390x -BuildRequires: openmpi-devel >= 1.3.3 -%endif ExclusiveArch: %{ix86} x86_64 ppc ppc64 s390x %ifarch %{ix86} %define valarch x86 %define valsecarch %{nil} %endif %ifarch x86_64 %define valarch amd64 %define valsecarch x86 @@ -76,26 +68,16 @@ find/diagnose. Summary: Development files for valgrind Group: Development/Debuggers Requires: valgrind = %{epoch}:%{version}-%{release} %description devel Header files and libraries for development of valgrind aware programs or valgrind plugins. -%package openmpi -Summary: OpenMPI support for valgrind -Group: Development/Debuggers -Requires: valgrind = %{epoch}:%{version}-%{release} - -%description openmpi -A wrapper library for debugging OpenMPI parallel programs with valgrind. -See file:///usr/share/doc/valgrind-%{version}/html/mc-manual.html#mc-manual.mpiwrap -for details. - %prep %setup -q %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 @@ -118,19 +100,16 @@ CC=gcc mkdir -p libgcc/32 ar r libgcc/32/libgcc_s.a ar r libgcc/libgcc_s_32.a CC="gcc -B `pwd`/libgcc/" %endif %configure CC="$CC" \ CFLAGS="`echo " %{optflags} " | sed 's/ -m\(64\|3[21]\) / /g;s/ -fexceptions / /g;s/^ //;s/ $//'`" \ CXXFLAGS="`echo " %{optflags} " | sed 's/ -m\(64\|3[21]\) / /g;s/ -fexceptions / /g;s/^ //;s/ $//'`" \ -%ifnarch s390x - --with-mpicc=%{_libdir}/openmpi/bin/mpicc -%endif GDB=%{_bindir}/gdb \ make %{?_smp_mflags} # Ensure there are no unexpected file descriptors open, # the testsuite otherwise fails. cat > close_fds.c <<EOF #include <stdlib.h> @@ -196,23 +175,16 @@ rm -rf $RPM_BUILD_ROOT %files devel %defattr(-,root,root) %{_includedir}/valgrind %dir %{_libdir}/valgrind %{_libdir}/valgrind/*.a %{_libdir}/pkgconfig/* -%ifnarch s390x -%files openmpi -%defattr(-,root,root) -%dir %{_libdir}/valgrind -%{_libdir}/valgrind/libmpiwrap*.so -%endif - %changelog * Fri Nov 12 2010 Jakub Jelinek <jakub@redhat.com> 3.6.0-1 - update to 3.6.0 - add s390x support (#632354) - provide a replacement for str{,n}casecmp{,_l} (#626470) * Tue May 18 2010 Jakub Jelinek <jakub@redhat.com> 3.5.0-18 - rebuilt against glibc 2.12
The i686 rpms were built on staging-master, and the x86_64 rpms were built on moz2-linux64-slave07.
Comment on attachment 506777 [details] [diff] [review] Manifests to install valgrind 3.6 on linux/linux64 build slaves Hmmm, I'm surprised that this works, actually... -- the "check-for-${name}" exec should be detecting that "/usr/bin/valgrind" already exists, and then running "rpm -i --justdb --ignoresize" on it. I do see that linux-ix-slave01 has the right version though....did you by chance uninstall the previous version before running Puppet?
(In reply to comment #5) > Comment on attachment 506777 [details] [diff] [review] > Manifests to install valgrind 3.6 on linux/linux64 build slaves > > Hmmm, I'm surprised that this works, actually... -- the "check-for-${name}" > exec should be detecting that "/usr/bin/valgrind" already exists, and then > running "rpm -i --justdb --ignoresize" on it. I do see that linux-ix-slave01 > has the right version though....did you by chance uninstall the previous > version before running Puppet? Ack. I'm wrong about this -- that only runs if an RPM by the given name isn't installed. What you're doing is exactly right for upgrading an existing package AFAICT.
Attachment #506777 - Flags: review?(bhearsum) → review+
Comment on attachment 506777 [details] [diff] [review] Manifests to install valgrind 3.6 on linux/linux64 build slaves changeset: 279:82a74bef495d
Attachment #506777 - Flags: checked-in+
Comment on attachment 506777 [details] [diff] [review] Manifests to install valgrind 3.6 on linux/linux64 build slaves for some reason production slaves couldn't upgrade to this version because of rpm conflicts: Jan 27 06:33:05 moz2-linux64-slave05 puppetd[4868]: (//Node[moz2-linux64-slave05.build.mozilla.org]/buildslave/moz-rpms/Install_rpm[valgrind]/Package[valgrind]/ensure) change from 3.2.1-6.el5 to 3.6.0-1 failed: Could not update: Execution of '/bin/rpm -U --oldpackage http://production-puppet.build.mozilla.org/production/centos5-x86_64/build/RPMs/valgrind-3.6.0-1.x86_64.rpm' returned 2: file /usr/bin/callgrind_annotate from install of valgrind-3.6.0-1 conflicts with file from package valgrind-3.2.1-6.el5 file /usr/bin/callgrind_control from install of valgrind-3.6.0-1 conflicts with file from package valgrind-3.2.1-6.el5 file /usr/bin/cg_annotate from install of valgrind-3.6.0-1 conflicts with file from package valgrind-3.2.1-6.el5 file /usr/share/man/man1/valgrind.1.gz from install of valgrind-3.6.0-1 conflicts with file from package valgrind-3.2.1-6.el5 at /etc/puppet/manifests/includes/functions.pp:20
Attachment #506777 - Flags: checked-in+ → checked-in-
Same as before, except now we check for valgrind 3.2.1 and remove it with rpm -e --allmatches before installing the new version. Future valgrind upgrades shouldn't require this.
Attachment #506777 - Attachment is obsolete: true
Attachment #507588 - Flags: review?(bhearsum)
Attachment #507588 - Flags: review?(bhearsum) → review+
Comment on attachment 507588 [details] [diff] [review] Add an exec clause to remove the old valgrind forcibly if required http://hg.mozilla.org/build/puppet-manifests/rev/6dd8e4168a0d
Attachment #507588 - Flags: checked-in+
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: