RTx::Shredder Questions

Like so many others here, we have the issue of a growing database with tons
of deleted tickets we want to get rid of. RTx::Shredder seems to be the
tool of choice for this, so we installed it today using CPAN. Everything
went fine. However, we have a question and a problem:

  1. If we install RTx::Shredder using CPAN, do we still have to apply the
    patch? We did so, but it was only applied in part. Apparently, there was
    an issue patching Tickets_Overlay_SQL.pm. We ended up with a .rej file. To
    stay away from possible trouble, we’ve put the original files back in.

  2. The rtx-shredder script doesn’t seem to work. This is what we get when
    we run it:

[root@system sbin]# ./rtx-shredder 2004-02-10
3 tickets would be wiped out.
Are you shure? [y/N] y
[root@system sbin]# ./rtx-shredder 2004-02-10
3 tickets would be wiped out.
Are you shure? [y/N]

We run it and it identifies the tickets to be deleted. We say yes and it
acts like it deleted the tickets. However, if we run it again with the same
date parameter, it still finds (the same?) tickets. It doesn’t seem to be
deleting anything.

Any help with this would be appreciated tremendously. Thanks!

Chago
RT v3.0.8

Yes, you need to install the patch in addition to the CPAN install.

-ToddOn Wed, Oct 06, 2004 at 12:28:51PM -0400, Adolfo Santiago wrote:

Like so many others here, we have the issue of a growing database with tons
of deleted tickets we want to get rid of. RTx::Shredder seems to be the
tool of choice for this, so we installed it today using CPAN. Everything
went fine. However, we have a question and a problem:

  1. If we install RTx::Shredder using CPAN, do we still have to apply the
    patch? We did so, but it was only applied in part. Apparently, there was
    an issue patching Tickets_Overlay_SQL.pm. We ended up with a .rej file. To
    stay away from possible trouble, we’ve put the original files back in.

  2. The rtx-shredder script doesn’t seem to work. This is what we get when
    we run it:

[root@system sbin]# ./rtx-shredder 2004-02-10
3 tickets would be wiped out.
Are you shure? [y/N] y
[root@system sbin]# ./rtx-shredder 2004-02-10
3 tickets would be wiped out.
Are you shure? [y/N]

We run it and it identifies the tickets to be deleted. We say yes and it
acts like it deleted the tickets. However, if we run it again with the same
date parameter, it still finds (the same?) tickets. It doesn’t seem to be
deleting anything.

Any help with this would be appreciated tremendously. Thanks!

Chago
RT v3.0.8


The rt-users Archives

Be sure to check out the RT wiki at http://wiki.bestpractical.com

Adolfo Santiago wrote:

Like so many others here, we have the issue of a growing database with tons
of deleted tickets we want to get rid of. RTx::Shredder seems to be the
tool of choice for this, so we installed it today using CPAN. Everything
went fine. However, we have a question and a problem:

  1. If we install RTx::Shredder using CPAN, do we still have to apply the
    patch? We did so, but it was only applied in part. Apparently, there was
    an issue patching Tickets_Overlay_SQL.pm. We ended up with a .rej file. To
    stay away from possible trouble, we’ve put the original files back in.
    Oh. I see you have 3.0.8, I didn’t test patch against it much. I’ll
    review it.
  1. The rtx-shredder script doesn’t seem to work. This is what we get when
    we run it:

[root@system sbin]# ./rtx-shredder 2004-02-10
3 tickets would be wiped out.
Are you shure? [y/N] y
This shouldn’t happen if you didn’t apply patch. If you didn’t apply
patch list of tickets should be empty.

[root@system sbin]# ./rtx-shredder 2004-02-10
3 tickets would be wiped out.
Are you shure? [y/N]

We run it and it identifies the tickets to be deleted. We say yes and it
acts like it deleted the tickets. However, if we run it again with the same
date parameter, it still finds (the same?) tickets. It doesn’t seem to be
deleting anything.
Do you have any reports in RT log? RTx::Shredder uses ‘warning’ level
when delete records from DB.

Ruslan U. Zakirov wrote:

Adolfo Santiago wrote:

Like so many others here, we have the issue of a growing database with
tons
of deleted tickets we want to get rid of. RTx::Shredder seems to be the
tool of choice for this, so we installed it today using CPAN. Everything
went fine. However, we have a question and a problem:

  1. If we install RTx::Shredder using CPAN, do we still have to apply the
    patch? We did so, but it was only applied in part. Apparently, there
    was
    an issue patching Tickets_Overlay_SQL.pm. We ended up with a .rej
    file. To
    stay away from possible trouble, we’ve put the original files back in.

Oh. I see you have 3.0.8, I didn’t test patch against it much. I’ll
review it.
Ok. You can ignore that .rej 3.0.7-3.0.8 have no code in
Tickets_Overlay_SQL.pm that restrict search on deleted tickets, but have
code in other files that doesn’t allow me to step through collection of
the tickets.

[snip]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hello rt-users,

more to this, i also have another problem with RTx::Shredder.

I m using rt3.0.10 and i have succeeded with RTx::Shredder weeks back.
However, i now get the following messages when i try to delete some
useless test tickets :

[root@simba sbin]# ./rtx-shredder 2004-10-06
14 tickets would be wiped out.
Are you shure? [y/N] y
[Thu Oct 7 14:28:46 2004] [crit]: Message: ‘Dependencies list overflow’

Trace begun at /usr/local/rt3/local/lib/RTx/Shredder/Dependencies.pm line
87
RTx::Shredder::Dependencies::_PushDependency(‘RTx::Shredder::Dependencies=HASH(0x8dc4164)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f6b6ac)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Ticket=HASH(0x8dc5a4c)’, ‘TargetObj’,
‘RT::Transaction=HASH(0x8c7457c)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Dependencies.pm line 53
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x8dc4164)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f6b6ac)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Ticket=HASH(0x8dc5a4c)’, ‘TargetObjs’,
‘RT::Transactions=HASH(0x8f6af80)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Dependencies.pm line 59
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x8dc4164)’,
‘BaseObj’, ‘RT::Ticket=HASH(0x8dc5a4c)’, ‘Flags’, 1, ‘TargetObjs’,
‘ARRAY(0x8dc56e0)’, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f6b6ac)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Ticket.pm line 55
RT::ticket::__DependsOn(‘RT::Ticket=HASH(0x8dc5a4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f6b6ac)’, ‘Flags’, 1, ‘Dependencies’,
‘RTx::Shredder::Dependencies=HASH(0x8dc4164)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Record.pm line 39
RT::Record::Dependencies(‘RT::Ticket=HASH(0x8dc5a4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f6b6ac)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Record.pm line 144
RT::Record::_Wipeout(‘RT::Ticket=HASH(0x8dc5a4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f6b6ac)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Record.pm line 134
RT::Record::Wipeout(‘RT::Ticket=HASH(0x8dc5a4c)’) called at ./rtx-shredder
line 57
(/usr/local/rt3/lib/RT.pm:254)

what might be the problem? any sugestions will be appreciated.

regards,

ernest.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iQDVAwUBQWVTYaH3gYhvcd1eAQK93QX5ASBPbybQI+5gQw6iSsKlqSoZnOFO/ou+
pg4kZ8G4Hw+OzOte/c7vAQ7kzr/sJMwk4w9zBkp4utxAjJmiIBb/QG2dVfUpxPBN
Lh7TuUZmDsDZP++WxdVjRFU3V6oXuYBUEayk2yZi+ZpqsMw2K6FjDSfhteREtVcb
GbASuZQCLYEl8GQCdbXchGGjImJakJd6apNYe9puk6lbdUh7jCpvKN1a8rfQpY5I
nbqiPG2rxNV22EgR2LNhAeU3UAJpW4N0
=KHGs
-----END PGP SIGNATURE-----

Hello, Ernest.
It’s not error, but protection from circular dependencies and bugs in my
code. I set limit on object dependencies list, by default it’s 1000.

In most cases ticket or other objects shouldn’t have more then 1000
related objects. It could happen if you have big mail loop(we had one
loop with 6000 transactions).

Could you wait for 0.02. I’ll release it today(really). I’ll add to
release more output of debug info on this problem to be shure that this
isn’t bug in my code.

			Best regards. Ruslan.

Ernest Byaruhanga wrote:

Thanks for the reply!

Do you have any reports in RT log? RTx::Shredder uses ‘warning’ level
when delete records from DB.

I don’t get anything in the logs. Here are my logging settings:

Set($LogToSyslog , ‘warning’);
Set($LogToScreen , ‘error’);
Set($LogToFile , ‘warning’);
Set($LogDir, ‘/var/log’);
Set($LogToFileNamed , “rt.log”); #log to rt.log

The log file is zero-length. No errors are reported anywhere else.

Ok. You can ignore that .rej 3.0.7-3.0.8 have no code in
Tickets_Overlay_SQL.pm that restrict search on deleted tickets, but have
code in other files that doesn’t allow me to step through collection of
the tickets.

So… does this mean I’m out of luck? The patch is not necessary (it
doesn’t do anything anyway), but the script won’t work regardless?

What can I do?

Thanks!

Adolfo Santiago wrote:

Thanks for the reply!

Do you have any reports in RT log? RTx::Shredder uses ‘warning’ level
when delete records from DB.

I don’t get anything in the logs. Here are my logging settings:

Set($LogToSyslog , ‘warning’);
Set($LogToScreen , ‘error’);
Set($LogToFile , ‘warning’);
Set($LogDir, ‘/var/log’);
Set($LogToFileNamed , “rt.log”); #log to rt.log

The log file is zero-length. No errors are reported anywhere else.

Ok. You can ignore that .rej 3.0.7-3.0.8 have no code in
Tickets_Overlay_SQL.pm that restrict search on deleted tickets, but have
code in other files that doesn’t allow me to step through collection of
the tickets.

So… does this mean I’m out of luck? The patch is not necessary (it
doesn’t do anything anyway), but the script won’t work regardless?
No, this mean that you still must apply patch, but you can safely ignore
rejections in Tickets_Overlay_SQL.pm.

Will you be including anything in the next release that may be able to help
me with my problem? Please let me know if I can help you in any way.

Thanks!

Adolfo Santiago wrote:

Will you be including anything in the next release that may be able to help
me with my problem? Please let me know if I can help you in any way.
Ok.

  1. If you didn’t apply patch then apply it(even if it fails on
    Tickets_Overlay_SQL.pm).
  2. run rtx-shredder script
  3. look in logs and see if it deleted any records, if not then it’s bad.
    stop here. report back.
  4. rerun script with same argument. script should report that Tickets
    list is empty.
  5. success, report back.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hi Ruslan,

   Hello, Ernest.

It’s not error, but protection from circular dependencies and bugs in my code.
I set limit on object dependencies list, by default it’s 1000.

In most cases ticket or other objects shouldn’t have more then 1000 related
objects. It could happen if you have big mail loop(we had one loop with 6000
transactions).

you are right, many of these tickets i am trying to delete were actually
mail loops.

Could you wait for 0.02. I’ll release it today(really). I’ll add to release
more output of debug info on this problem to be shure that this isn’t bug in
my code.

okay thanks, i will try to get 0.02 by end of today :slight_smile:

many thanks,

ernest.

   Best regards. Ruslan.

Ernest Byaruhanga wrote:

hello rt-users,

more to this, i also have another problem with RTx::Shredder.

I m using rt3.0.10 and i have succeeded with RTx::Shredder weeks back.
However, i now get the following messages when i try to delete some useless
test tickets :

[root@simba sbin]# ./rtx-shredder 2004-10-06
14 tickets would be wiped out.
Are you shure? [y/N] y
[Thu Oct 7 14:28:46 2004] [crit]: Message: ‘Dependencies list overflow’

Trace begun at /usr/local/rt3/local/lib/RTx/Shredder/Dependencies.pm line 87
RTx::Shredder::Dependencies::_PushDependency(‘RTx::Shredder::Dependencies=HASH
(0x8dc4164)’, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f6b6ac)’, ‘Flags’, 1,
‘BaseObj’, ‘RT::Ticket=HASH(0x8dc5a4c)’, ‘TargetObj’,
‘RT::Transaction=HASH(0x8c7457c)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Dependencies.pm line 53
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HA
SH(0x8dc4164)’, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f6b6ac)’, ‘Flags’, 1,
‘BaseObj’, ‘RT::Ticket=HASH(0x8dc5a4c)’, ‘TargetObjs’,
‘RT::Transactions=HASH(0x8f6af80)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Dependencies.pm line 59
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HA
SH(0x8dc4164)’, ‘BaseObj’, ‘RT::Ticket=HASH(0x8dc5a4c)’, ‘Flags’, 1,
‘TargetObjs’, ‘ARRAY(0x8dc56e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f6b6ac)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Ticket.pm line 55
RT::ticket::__DependsOn(‘RT::Ticket=HASH(0x8dc5a4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f6b6ac)’, ‘Flags’, 1, ‘Dependencies’,
‘RTx::Shredder::Dependencies=HASH(0x8dc4164)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Record.pm line 39
RT::Record::Dependencies(‘RT::Ticket=HASH(0x8dc5a4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f6b6ac)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Record.pm line 144
RT::Record::_Wipeout(‘RT::Ticket=HASH(0x8dc5a4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f6b6ac)’) called at
/usr/local/rt3/local/lib/RTx/Shredder/Record.pm line 134
RT::Record::Wipeout(‘RT::Ticket=HASH(0x8dc5a4c)’) called at ./rtx-shredder
line 57
(/usr/local/rt3/lib/RT.pm:254)

what might be the problem? any sugestions will be appreciated.

regards,

ernest.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iQDVAwUBQWVTYaH3gYhvcd1eAQK93QX5ASBPbybQI+5gQw6iSsKlqSoZnOFO/ou+
pg4kZ8G4Hw+OzOte/c7vAQ7kzr/sJMwk4w9zBkp4utxAjJmiIBb/QG2dVfUpxPBN
Lh7TuUZmDsDZP++WxdVjRFU3V6oXuYBUEayk2yZi+ZpqsMw2K6FjDSfhteREtVcb
GbASuZQCLYEl8GQCdbXchGGjImJakJd6apNYe9puk6lbdUh7jCpvKN1a8rfQpY5I
nbqiPG2rxNV22EgR2LNhAeU3UAJpW4N0
=KHGs
-----END PGP SIGNATURE-----

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iQDVAwUBQWVvXqH3gYhvcd1eAQISAQX/dwCbNS36w2SuqVRwVI8aeJgyuellhTQ5
uwu+9oBgsYh/YUZcXPvnMQhZsTlQQ5qmcjQJMFk774qI3WkUN+oUVNQSfL3O/UKo
+T8Pm9aQE9u7CAU/lxMGUf7tWG2csPNdK9fKLoKvSCoX7EIi4Ya7Be3/8rPxUGtl
tOXxr3v4XKU0+UJWLHCU3d2wxydK0Y6GCdYK325ivuMx+1QtAJNFvon4nD3vSeFa
WT5lQIxbGQu89e/Idet3VESCcdbhcvJD
=qxEc
-----END PGP SIGNATURE-----

OK! Reporting…

  1. Applying the patch generated the following reject file (which you
    requested I ignore but I’m putting here just in case):

*** 387,394 ****
VALUE => ‘ticket’);
}

  • We never ever want to show deleted tickets

  • $self->SUPER::Limit(FIELD => ‘Status’ , OPERATOR => ‘!=’, VALUE =>
    ‘deleted’
    );

    set SB’s dirty flag

— 387,398 ----
VALUE => ‘ticket’);
}

  • We don’t want deleted tickets unless ‘allow_deleted_search’ is set

  • unless( $self->{‘allow_deleted_search’} ) {

  • $self->SUPER::Limit(FIELD => 'Status',
    
  •                     OPERATOR => '!=',
    
  •                     VALUE => 'deleted');
    
  • }

    set SB’s dirty flag

  1. The script seems to work just fine. I ran it once and it told me the
    number of tickets (3 in this case). I answered “y” to delete them and it
    created a bunch of entries in the logs. Then I reran the script with the
    same date and it said “Tickets list is empty.” So, I think we are good!

  2. WOW!! Deleting 3 tickets generated 583 lines in the log file!!
    Deleting ~450 tickets generated 10207 log lines.

  3. Bottom line: it seems to be working!!

  4. Just out of curiosity, what are all these entries in the log that I see?

[Thu Oct 7 19:32:14 2004] [warning]: RT::Principal-3959 deleted
(/opt/rt3/local
/lib/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::CachedGroupMember-8830 deleted
(/opt/r
t3/local/lib/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::Group-3960 deleted
(/opt/rt3/local/lib
/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::Principal-3960 deleted
(/opt/rt3/local
/lib/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::CachedGroupMember-8831 deleted
(/opt/r
t3/local/lib/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::Group-3961 deleted
(/opt/rt3/local/lib
/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::Principal-3961 deleted
(/opt/rt3/local
/lib/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::Attachment-1492 deleted
(/opt/rt3/loca
l/lib/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::Transaction-3286 deleted
(/opt/rt3/loc
al/lib/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::Transaction-3288 deleted
(/opt/rt3/loc
al/lib/RTx/Shredder/Record.pm:167)
[Thu Oct 7 19:32:14 2004] [warning]: RT::Ticket-838 deleted
(/opt/rt3/local/lib
/RTx/Shredder/Record.pm:167)

I can understand “Attachment” and “Ticket”, but what are “Transaction”,
“Group”, “CachedGroupMember”, etc?

Thanks!

Adolfo Santiago wrote:

OK! Reporting…

  1. Applying the patch generated the following reject file (which you
    requested I ignore but I’m putting here just in case):
    Expected result. I did checked that you can ignore it.

[snip]

  1. The script seems to work just fine. I ran it once and it told me the
    number of tickets (3 in this case). I answered “y” to delete them and it
    created a bunch of entries in the logs. Then I reran the script with the
    same date and it said “Tickets list is empty.” So, I think we are good!
    good.
  1. WOW!! Deleting 3 tickets generated 583 lines in the log file!!
    Deleting ~450 tickets generated 10207 log lines.
    this mean that script has deleted 583 and 10207 records in DB.
    How large that tickets was? Number of transactions, Attachements? Could
    you send me log from first run(which is 583 lines and off list)? Just
    want to look on it.
  1. Bottom line: it seems to be working!!

  2. Just out of curiosity, what are all these entries in the log that I see?

[snip]

I can understand “Attachment” and “Ticket”, but what are “Transaction”,
“Group”, “CachedGroupMember”, etc?
Read Request Tracker Wiki
There is description how to delete tickets at the end. Original author
describe most transparent things, but read my notes and you understand
why RTx::Shredder deletes records in Groups, GroupMembers,
CachedGroupMembers, ACL, Principals, Links…

I sent you a .gz version of the log file via e-mail.

One more question, if I may… What does this mean?

[Thu Oct 7 21:58:00 2004] [crit]: Trying to check RT::Ticket rights for an
unspecified RT::Ticket (/opt/rt3/lib/RT/Principal_Overlay.pm:355)

I’ve received a couple of these while running the rtx-shredder script.

Thanks!

I’m attempting to run the script “rtx-validator” from the RTx::Shredder
package, but I’m getting a compile error. Here it is:

Bareword “INVALID” not allowed while “strict subs” in use at ./rtx-validator
line 91.
Execution of ./rtx-validator aborted due to compilation errors.

Line 91 is:

foreach my $record( keys %{ $shredder->{‘Cache’} } ) {
next unless( $record->{‘State’} & INVALID );
<<<<----------------
warn $record->{‘Object’}->_AsString .“is invalid\n”;
warn “\t”. ref($record->{‘Description’}) ?
join( “\n\t”, $record->{‘Description’} ) :
$record->{‘Description’}
."\n";
}

rtx-shredder works fine. I’m trying to run “rtx-validator -o Ticket”.

Any ideas?

Thanks!

I’ve fixed it in upcoming 0.02(working on it right now), but this script
is not well tested yet.

Adolfo Santiago wrote:

Adolfo Santiago wrote:

One more question, if I may… What does this mean?

[Thu Oct 7 21:58:00 2004] [crit]: Trying to check RT::Ticket rights for an
unspecified RT::Ticket (/opt/rt3/lib/RT/Principal_Overlay.pm:355)
Not expected error, but can’t debug without log records around it.
Cat & send records near it from one [warning]: RT::Ticket-XXX deleted
… to another, block should contain this error.

I’ve received a couple of these while running the rtx-shredder script.

Thanks!

Working on dumps of deleted data. So you would be able to restore data
on real errors.

Working on dumps of deleted data. So you would be able to restore data
on real errors.

How about building either a parallel database or differently-named
tables to hold the records at least as a temporary step as they
are removed from the active tables? I’m not as concerned about
database size as the overhead of extra records in selects. In fact
if I were designing a system like this I’d probably try to keep
new/open tickets in a separate table to eliminate the chance that
the SQL server would decide to do a full join on tickets and users
to resolve the most frequent queries and perhaps have an aging
mechanism to push old resolved tickets (and matching users) into
tables that are only searched on demand.

Les Mikesell
les@futuresource.com

Carl Gibbons wrote:

When I try using the rtx-shredder script it complains:

Constant name ‘HASH(0x8141fb4)’ has invalid characters at
/opt/rt3/lcoal/lib/RTx/Shredder/Constants.pm line 37
BEGIN failed–compilation aborted at
/opt/rt3/local/lib/RTx/Shredder/Constants.pm line 40.

I looked back through rt-users list archives, but couldn’t find anybody
else having the same issue with RTx::Shredder. Maybe you know what might
be wrong?
I think you use perl 5.6.x that is not supported by RT 3.0 and higher.
So I didn’t test it under 5.6.x at all.
Problem in constant.pm that is shipped with perl 5.6.x that doesn’t
support “Declare multiple constants at once” feature:
Which Perl Versions Does ActiveState Support?

You can adopt /opt/rt3/local/lib/RTx/Shredder/Constants.pm to use
one line for each constant like in examples on