Compare commits

...
Sign in to create a new pull request.

23 commits

Author SHA1 Message Date
Fedora Release Engineering
ce77741d5e Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 20:17:47 +00:00
Fedora Release Engineering
2cbd160eb4 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 14:46:12 +00:00
Fedora Release Engineering
fa618ab410 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 09:08:12 +00:00
Fedora Release Engineering
59ccc300e7 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 08:24:07 +00:00
Fedora Release Engineering
060e2370f4 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 17:59:06 +00:00
Josef Řídký
8c60d03457 Migrate to SPDX license format 2023-07-19 09:26:19 +02:00
Fedora Release Engineering
fd7d9fcd49 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 06:36:57 +00:00
Fedora Release Engineering
b5c189d723 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 12:13:08 +00:00
Fedora Release Engineering
0f6dd0badf - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 04:16:51 +00:00
Josef Řídký
c7152d55c9 Resolves: #2013934 - fix mem leak when verbose mode is on 2021-10-14 09:47:33 +02:00
Josef Řídký
d7d8b27d08 New upstream release 2021-08-10 13:25:40 +02:00
Fedora Release Engineering
e50e0e82e9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 20:46:05 +00:00
Zbigniew Jędrzejewski-Szmek
d42c8c992e Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
2021-03-02 16:12:02 +01:00
Fedora Release Engineering
5943f1dad6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 23:19:59 +00:00
Tom Stellard
824d2943a0 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-09 00:49:45 +00:00
Fedora Release Engineering
86347a9b61 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 13:58:41 +00:00
Vaclav Dolezal
b7ef892b13 Clean up old SysV-init related files 2020-02-03 15:57:49 +01:00
Fedora Release Engineering
adaf5ab865 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-31 03:29:54 +00:00
Fedora Release Engineering
91c763e15d - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-27 03:17:52 +00:00
Richard W.M. Jones
08331a6310 Run autoreconf after applying patches. 2019-02-06 13:48:46 +00:00
Richard W.M. Jones
ebeefbbb7e Add all upstream patches since 5.15.
Fix RPC/libtirpc (again?).
Remove .rhsel patch.  Equivalent added upstream in 7310afccc1.
2019-02-06 13:42:31 +00:00
Fedora Release Engineering
ef13aca6fa - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-03 11:33:05 +00:00
Josef Ridky
73d26c1923 Resolves: #1542632 - remove deprecated rows from service file 2018-12-03 08:49:58 +01:00
8 changed files with 186 additions and 80 deletions

View file

@ -0,0 +1,43 @@
From 80468a84ea3044a5227c57a258dc6e508c88d468 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 6 Feb 2019 13:25:47 +0000
Subject: [PATCH] Choose libtirpc or another RPC library for XDR headers and
library.
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
---
configure.ac | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/configure.ac b/configure.ac
index 4294146..be62260 100644
--- a/configure.ac
+++ b/configure.ac
@@ -158,4 +158,24 @@ AC_ARG_WITH(randomseed,
AC_MSG_RESULT("/var/run/random-seed")
])
+# Check for an RPC library, starting with libtirpc.
+PKG_CHECK_MODULES([RPC], [libtirpc], [], [
+ # If we don't have libtirpc, then we must have <rpc/rpc.h> and
+ # some library to link to in libdir.
+ RPC_CFLAGS=""
+ AC_CHECK_HEADER([rpc/rpc.h],[],[
+ AC_MSG_ERROR([XDR header files are required])
+ ],
+ [#include <rpc/types.h>])
+
+ old_LIBS="$LIBS"
+ LIBS=""
+ AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
+ RPC_LIBS="$LIBS"
+ LIBS="$old_LIBS"
+
+ AC_SUBST([RPC_CFLAGS])
+ AC_SUBST([RPC_LIBS])
+])
+
AC_OUTPUT([Makefile src/Makefile])
--
2.31.1

View file

@ -0,0 +1,19 @@
diff -ruNp a/src/run-as-child.c b/src/run-as-child.c
--- a/src/run-as-child.c 2021-10-14 08:17:04.556107815 +0200
+++ b/src/run-as-child.c 2021-10-14 08:36:23.686706344 +0200
@@ -98,8 +98,14 @@ int exec_as_func(int flags, void *ptr)
/* Create single string with all command line options. */
int ii = 1;
char *opt = strdup(":");
+ char *tempOpt;
while (opt != NULL && arg[ii] != NULL) {
- opt = realloc(opt, strlen(opt) + strlen(arg[ii]) + 2);
+ tempOpt = realloc(opt, strlen(opt) + strlen(arg[ii]) + 2);
+ if (tempOpt != NULL){
+ opt = tempOpt;
+ } else {
+ break;
+ }
opt = strcat(opt, " ");
opt = strcat(opt, arg[ii]);
ii++;

View file

@ -1,34 +0,0 @@
diff -ur watchdog-5.15.old/src/test_binary.c watchdog-5.15/src/test_binary.c
--- watchdog-5.15.old/src/test_binary.c 2016-02-26 12:05:00.000000000 +0000
+++ watchdog-5.15/src/test_binary.c 2018-02-13 08:51:27.292750445 +0000
@@ -263,11 +263,11 @@
* to cause trouble, so make them go to their respective files */
strcpy(filename_buf, logdir);
strcat(filename_buf, "/test-bin.stdout");
- if (!freopen(filename_buf, "a+", stdout))
+ if (!freopen(filename_buf, "a", stdout))
exit(errno);
strcpy(filename_buf, logdir);
strcat(filename_buf, "/test-bin.stderr");
- if (!freopen(filename_buf, "a+", stderr))
+ if (!freopen(filename_buf, "a", stderr))
exit(errno);
/* now start binary */
diff -ur watchdog-5.15.old/src/watchdog.c watchdog-5.15/src/watchdog.c
--- watchdog-5.15.old/src/watchdog.c 2016-02-26 12:05:00.000000000 +0000
+++ watchdog-5.15/src/watchdog.c 2018-02-13 08:51:43.747738628 +0000
@@ -86,11 +86,11 @@
* So make stdout and stderr go to their respective files */
strcpy(filename_buf, logdir);
strcat(filename_buf, "/repair-bin.stdout");
- if (!freopen(filename_buf, "a+", stdout))
+ if (!freopen(filename_buf, "a", stdout))
exit(errno);
strcpy(filename_buf, logdir);
strcat(filename_buf, "/repair-bin.stderr");
- if (!freopen(filename_buf, "a+", stderr))
+ if (!freopen(filename_buf, "a", stderr))
exit(errno);
/* now start binary */

View file

@ -1,7 +1,8 @@
diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8
--- watchdog-5.15.old/watchdog.8 2016-02-26 12:05:00.000000000 +0000
+++ watchdog-5.15/watchdog.8 2018-02-13 08:54:00.860681339 +0000
@@ -215,6 +215,7 @@
diff --git a/watchdog.8 b/watchdog.8
index 9b7c6e7..052b1e1 100644
--- a/watchdog.8
+++ b/watchdog.8
@@ -216,6 +216,7 @@ by
.BR watchdog .
So you can for instance restart the server from your
.IR repair-binary .
@ -9,7 +10,7 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8
.PP
.B watchdog
will try periodically to fork itself to see whether the process
@@ -241,6 +242,8 @@
@@ -242,6 +243,8 @@ a given interface for traffic. If no traffic arrives the network is
considered unreachable causing a soft reboot or action from the
repair binary.
.PP
@ -18,7 +19,7 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8
.B watchdog
can run an external command for user-defined tests. A return code not equal 0
means an error occurred and watchdog should react. If the external command is
@@ -350,6 +353,9 @@
@@ -348,6 +351,9 @@ Child process did not return in time.
246
Free for personal watchdog-specific use (was \-10 as an unsigned 8\-bit
number).
@ -28,7 +29,7 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8
.TP
245
Reserved for an unknown result, for example a slow background test that is
@@ -377,6 +383,9 @@
@@ -375,6 +381,9 @@ repair-maximum
controls the number of successive repair attempts that report 0 (i.e. success) but
fail to clear the tested fault. If this is exceeded then a reboot takes place. If set
to zero then a reboot can always be blocked by the repair program reporting success.
@ -38,7 +39,7 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8
.SH "TEST DIRECTORY"
Executables placed in the test directory are discovered by watchdog on
startup and are automatically executed. They are bounded time-wise by
@@ -415,6 +424,27 @@
@@ -413,6 +422,27 @@ As for the repair binary, the configuration parameter
repair-maximum
also controls the number of successive repair attempts that report success
(return 0) but fail to clear the fault.
@ -66,27 +67,30 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8
.SH BUGS
None known so far.
.SH AUTHORS
@@ -433,4 +463,4 @@
@@ -431,4 +461,4 @@ The watchdog device.
The pid file of the running
.BR watchdog .
.SH "SEE ALSO"
-.BR watchdog.conf (5)
+.BR watchdog.conf (5), systemd.unit (5)
diff -ur watchdog-5.15.old/watchdog.conf watchdog-5.15/watchdog.conf
--- watchdog-5.15.old/watchdog.conf 2016-02-26 12:05:00.000000000 +0000
+++ watchdog-5.15/watchdog.conf 2018-02-13 08:52:18.899721271 +0000
@@ -16,6 +16,8 @@
#min-memory = 1
#allocatable-memory = 1
diff --git a/watchdog.conf b/watchdog.conf
index 207da3e..7dd3cb3 100644
--- a/watchdog.conf
+++ b/watchdog.conf
@@ -75,7 +75,9 @@ priority = 1
# If you have a custom binary/script to handle errors then uncomment
# this line and provide the path. For 'v1' test binary files they also
# handle error cases.
-
+# With enforcing SELinux policy please use the /usr/libexec/watchdog/scripts/
+
+# or /etc/watchdog.d/ for your test-binary and repair-binary configuration.
#repair-binary = /usr/sbin/repair
#repair-timeout = 60
#test-binary =
@@ -45,5 +47,12 @@
realtime = yes
priority = 1
@@ -175,6 +177,13 @@ priority = 1
#temperature-sensor =
#max-temperature = 90
+# When using custom service pid check with custom service
+# systemd unit file please be aware the "Requires="
@ -95,20 +99,22 @@ diff -ur watchdog-5.15.old/watchdog.conf watchdog-5.15/watchdog.conf
+# in the custom service unit file may be the desired operation instead.
+# See man 5 systemd.unit for more details.
+#
# Check if rsyslogd is still running by enabling the following line
#pidfile = /var/run/rsyslogd.pid
diff -ur watchdog-5.15.old/watchdog.conf.5 watchdog-5.15/watchdog.conf.5
--- watchdog-5.15.old/watchdog.conf.5 2016-02-26 12:05:00.000000000 +0000
+++ watchdog-5.15/watchdog.conf.5 2018-02-13 08:52:18.898721271 +0000
@@ -105,6 +105,7 @@
pidfile = <pidfilename>
Set pidfile name for server test mode.
This option can be given as often as you like to check several servers.
# Check for a running process/daemon by its PID file. For example,
# check if rsyslogd is still running by enabling the following line:
diff --git a/watchdog.conf.5 b/watchdog.conf.5
index edf7c8b..72c3bc2 100644
--- a/watchdog.conf.5
+++ b/watchdog.conf.5
@@ -130,6 +130,7 @@ pidfile = <pidfilename>
Set pidfile name for daemon test mode.
This option can be given as often as you like to check several daemons, assuming
they write their post-forking PID to the specified files.
+See the Systemd section in watchdog (8) for more information.
.TP
ping = <ip-addr>
Set IPv4 address for ping mode.
@@ -119,6 +120,8 @@
@@ -147,6 +148,8 @@ aliased IP interfaces.
.TP
test-binary = <testbin>
Execute the given binary to do some user defined tests.
@ -117,7 +123,7 @@ diff -ur watchdog-5.15.old/watchdog.conf.5 watchdog-5.15/watchdog.conf.5
.TP
test-timeout = <timeout in seconds>
User defined tests may only run for <timeout> seconds. Set to 0 for unlimited.
@@ -126,6 +129,8 @@
@@ -154,6 +157,8 @@ User defined tests may only run for <timeout> seconds. Set to 0 for unlimited.
repair-binary = <repbin>
Execute the given binary in case of a problem instead of shutting down the
system.
@ -126,7 +132,7 @@ diff -ur watchdog-5.15.old/watchdog.conf.5 watchdog-5.15/watchdog.conf.5
.TP
repair-timeout = <timeout in seconds>
repair command may only run for <timeout> seconds. Set to 0 for 'unlimited', but
@@ -156,6 +161,7 @@
@@ -188,6 +193,7 @@ Set the schedule priority for realtime mode passed to sched_setscheduler().
.TP
test-directory = <test directory>
Set the directory to run user test/repair scripts. Default is '/etc/watchdog.d'

View file

@ -1 +1 @@
SHA512 (watchdog-5.15.tar.gz) = a675cfadf3296d583b9163193297038fb19459daf7c6681289392d613e775e75b7afd42a3e01b136a955f25b2f45818033b56e10de9050075d7dc015535a6e75
SHA512 (watchdog-5.16.tar.gz) = 1c9c921570ec7ddc3e4ff88b2029f1c3865277e547fb8970575df4b61fdf1f06f443f49ad09f11c29d913ca7d6ab05c5b19ec049ac218a8bcebd20b1bf5f0bbd

View file

@ -6,7 +6,6 @@ Conflicts=watchdog.service
[Service]
Type=forking
ExecStart=/usr/sbin/watchdog
ControlGroup=cpu:/
[Install]
WantedBy=multi-user.target

View file

@ -6,7 +6,6 @@ Description=watchdog daemon
[Service]
Type=forking
ExecStart=/usr/sbin/watchdog
ControlGroup=cpu:/
[Install]
WantedBy=multi-user.target

View file

@ -1,23 +1,30 @@
Summary: Software and/or Hardware watchdog daemon
Name: watchdog
Version: 5.15
Release: 2%{?dist}
License: GPLv2+
Version: 5.16
Release: 11%{?dist}
License: GPL-2.0-or-later
URL: http://sourceforge.net/projects/watchdog/
Source0: http://downloads.sourceforge.net/watchdog/watchdog-%{version}.tar.gz
Source1: watchdog.init
Source2: README.watchdog.ipmi
Source3: README.Fedora
Source4: watchdog.service
Source5: watchdog-ping.service
Patch3: 0003-watchdog-5.13-rhsel.patch
Patch4: 0004-watchdog-5.13-rhseldoc.patch
# Fixes building on glibc without RPC. Sent upstream 2019-02-06.
Patch1: 0001-Choose-libtirpc-or-another-RPC-library-for-XDR-heade.patch
# Fixes potentional mem leak
Patch2: 0002-mem-leak-verbose.patch
# Non-upstream patch to document SELinux support.
Patch99: 0099-watchdog-5.16-rhseldoc.patch
BuildRequires: make
BuildRequires: gcc
BuildRequires: libtirpc-devel
BuildRequires: systemd-units
# Required because patches touch configure.ac and Makefile.am:
BuildRequires: autoconf, automake
Requires(post): systemd
Requires(preun): systemd
@ -30,7 +37,7 @@ or may be alternately used with a hardware watchdog device such as the
IPMI hardware watchdog driver interface to a resident Baseboard
Management Controller (BMC). watchdog periodically writes to /dev/watchdog;
the interval between writes to /dev/watchdog is configurable through settings
in the watchdog sysconfig file. This configuration file is also used to
in the watchdog config file. This configuration file is also used to
set the watchdog to be used as a hardware watchdog instead of its default
software watchdog operation. In either case, if the device is open but not
written to within the configured time period, the watchdog timer expiration
@ -43,8 +50,10 @@ expiration) initiated by the BMC.
%prep
%setup -q -n %{name}-%{version}
%patch3 -p1 -b .rhsel
%patch4 -p1 -b .rhseldoc
%patch 1 -p1
%patch 2 -p1
%patch 99 -p1 -b .rhseldoc
autoreconf -i
cp %{SOURCE2} .
cp %{SOURCE3} .
@ -67,10 +76,10 @@ make %{?_smp_mflags}
install -d -m0755 ${RPM_BUILD_ROOT}%{_sysconfdir}
install -d -m0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/watchdog.d
make DESTDIR=${RPM_BUILD_ROOT} install
install -Dp -m0644 %{name}.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/watchdog
install -Dp -m0644 %{SOURCE4} ${RPM_BUILD_ROOT}%{_unitdir}/watchdog.service
install -Dp -m0644 %{SOURCE5} ${RPM_BUILD_ROOT}%{_unitdir}/watchdog-ping.service
install -Dd -m0755 ${RPM_BUILD_ROOT}%{_libexecdir}/watchdog/scripts
rm %{name}.sysconfig
%post
@ -104,7 +113,6 @@ install -Dd -m0755 ${RPM_BUILD_ROOT}%{_libexecdir}/watchdog/scripts
%doc README.Fedora
%endif
%config(noreplace) %{_sysconfdir}/watchdog.conf
%config(noreplace) %{_sysconfdir}/sysconfig/watchdog
%{_sysconfdir}/watchdog.d
%{_sbindir}/watchdog
%{_sbindir}/wd_identify
@ -119,6 +127,72 @@ install -Dd -m0755 ${RPM_BUILD_ROOT}%{_libexecdir}/watchdog/scripts
%changelog
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.16-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.16-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.16-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.16-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.16-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jul 19 2023 Josef Ridky <jridky@redhat.com> - 5.16-6
- Migrate to SPDX license format
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.16-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.16-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.16-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Oct 14 2021 Josef Ridky <jridky@redhat.com> - 5.16-2
- fix memory leak when verbose mode is on
* Tue Aug 10 2021 Josef Ridky <jridky@redhat.com> - 5.16-1
- New upstream release 5.16
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.15-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 5.15-10
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.15-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.15-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Feb 03 2020 Václav Doležal <vdolezal@redhat.com> - 5.15-7
- Clean up old SysV-init related files
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.15-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.15-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Feb 06 2019 Richard W.M. Jones <rjones@redhat.com> - 5.15-5
- Add all upstream patches since 5.15.
- Fix RPC/libtirpc (again?).
- Remove .rhsel patch. Equivalent added upstream in 7310afccc1.
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.15-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Dec 03 2018 Josef Ridky <jridky@redhat.com> - 5.15-3
- update service files (#1542632)
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.15-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild