Custom scrip: Ticket created, but commit fails

Badly needing help. This is a script to call a binary that sends data
to a webservice. The binary simply accepts the data and returns.

rt version: 3.8.1
OS version CentOS 5.2

First, here is the error message:

Jun 24 10:51:32 helpdesk RT: Ticket 9261 created in queue
’ClusterSupport’ by johns276 (/opt/rt3/bin/…/lib/RT/Ticket_Overlay.pm:
659)
Jun 24 10:51:32 helpdesk RT: Attempted to commit a transaction with
none in progress at /usr/lib/perl5/site_perl/5.8.8/DBIx/SearchBuilder/
Handle.pm line 747
DBIx
::SearchBuilder::Handle::EndTransaction(‘RT::Handle=HASH(0xba695a0)’,
‘Action’, ‘commit’, ‘Force’, ‘undef’) called at /usr/lib/perl5/
site_perl/5.8.8/DBIx/SearchBuilder/Handle.pm line 780
DBIx::SearchBuilder::Handle::Commit(‘RT::Handle=HASH(0xba695a0)’)
called at /opt/rt3/bin/…/lib/RT/Ticket_Overlay.pm line 675
RT::ticket::Create(‘RT::Ticket=HASH(0xc8b8798)’, ‘Requestor’,
‘ARRAY(0xc8a4df4)’, ‘DependsOn’, ‘ARRAY(0xc8bb6b8)’, ‘Cc’,
‘ARRAY(0xc8c1034)’, ‘RefersTo’, ‘ARRAY(0xc8bb7f0)’, …) called at /
opt/rt3/bin/…/local/lib/RT/Interface/Email/Filter/TakeAction.pm line
501
RT::Interface::email::Filter::TakeAction::GetCurrentUser(‘Message’,
‘MIME::Entity=HASH(0xc8af7fc)’, ‘RawMessageRef’, ‘SCALAR(0xc8afdc0)’,
‘CurrentUser’, ‘RT::CurrentUser=HASH(0xc862d80)’, ‘AuthLevel’, 1,
‘Action’, …) called at /opt/rt3/bin/…/lib/RT/Interface/Email.pm
line 1274 RT::

The ticket is created but the commit fails. An attempt to view the
ticket produces this error message: “Could not load ticket 9261”

Here is the scrip. It is attached to a particular queue
(CustomerSupport).

Condition: User defined

if ($self->TransactionObj->Type eq ‘Create’) {
return (1);
}

Action: User Defined

Custom action preparation code: Do nothing with the ticket

1;

Custom action cleanup code:

{
my $myId = $self->TicketObj->EffectiveId;
my $mySubject = $self->TicketObj->Subject;

my $binary = '/home/alarmpoint/alarmpointsystems/integrationagent/ 

bin/APClient.bin’;
system($binary, ‘–map-data’, ‘vanderbilt’, ‘Cluster Group’,
$mySubject, ‘RT’, “RT $myId”);

1;
}

#Template: Global Template: Blank

Any suggestions would be appreciated. The message is actually send to
the webservice, since we can log in to the remote server and see that
the data was sent appropriately. However, RT balks.

Thanks.

~Charles~

Charles Johnson, Vanderbilt University
Advanced Computing Center for Research and Education
Office: 615-343-4134
Cell: 615-478-5743

Badly needing help. This is a script to call a binary that sends
data to a webservice. The binary simply accepts the data and
returns.

rt version: 3.8.1
OS version CentOS 5.2

If you’re using mod_perl, Ruslan found some really excellent bugs with
running system commands under it. If you can come up to 3.8.8, that
may fix it for you

-kevin

Pardon the top posting, but I feel that I have worked around the
problem we had with failing commits on ticket creation. Here is what I
did.

We first upgraded to the latest stable version of mod_perl for CentOS
5.2.

Second, we changed to custom cleanup code to use IPC::System::Simple
and usied a systemx() call, rather than system(). The advantage is
that systemx() does not invoke a new shell and swallows all stdout/
stderr and return values from the invoked binary. This seems to keep
mod_perl happy as well as RT. Here is the new custom cleanup code:

{
use IPC::System::Simple qw(system systemx);
my $myId = $self->TicketObj->EffectiveId;
my $mySubject = $self->TicketObj->Subject;

my $binret = '';
my $binary = '/home/alarmpoint/alarmpointsystems/integrationagent/ 

bin/APClient.bin’;

$binret = systemx($binary, '--map-data', 'vanderbilt', 'Cluster  

Group’, $mySubject, ‘RT’, “RT $myId”);

1;
}

I hope this helps someone else. It works for us.

Cheers–

CharlesOn Jun 24, 2010, at 2:38 PM, Kevin Falcone wrote:

On Thu, Jun 24, 2010 at 11:19:00AM -0500, Charles Johnson wrote:

Badly needing help. This is a script to call a binary that sends
data to a webservice. The binary simply accepts the data and
returns.

rt version: 3.8.1
OS version CentOS 5.2

If you’re using mod_perl, Ruslan found some really excellent bugs with
running system commands under it. If you can come up to 3.8.8, that
may fix it for you

-kevin

First, here is the error message:

Jun 24 10:51:32 helpdesk RT: Ticket 9261 created in queue
’ClusterSupport’ by johns276
(/opt/rt3/bin/…/lib/RT/Ticket_Overlay.pm:659)
Jun 24 10:51:32 helpdesk RT: Attempted to commit a transaction with
none in progress at
/usr/lib/perl5/site_perl/5.8.8/DBIx/SearchBuilder/Handle.pm line 747
DBIx
::SearchBuilder::Handle::EndTransaction(‘RT::Handle=HASH(0xba695a0)’,
‘Action’, ‘commit’, ‘Force’, ‘undef’) called at /usr/lib/perl5/
site_perl/5.8.8/DBIx/SearchBuilder/Handle.pm line 780
DBIx::SearchBuilder::Handle::Commit(‘RT::Handle=HASH(0xba695a0)’)
called at /opt/rt3/bin/…/lib/RT/Ticket_Overlay.pm line 675
RT::ticket::Create(‘RT::Ticket=HASH(0xc8b8798)’, ‘Requestor’,
‘ARRAY(0xc8a4df4)’, ‘DependsOn’, ‘ARRAY(0xc8bb6b8)’, ‘Cc’,
‘ARRAY(0xc8c1034)’, ‘RefersTo’, ‘ARRAY(0xc8bb7f0)’, …) called at /
opt/rt3/bin/…/local/lib/RT/Interface/Email/Filter/TakeAction.pm
line 501
RT::Interface::email::Filter::TakeAction::GetCurrentUser(‘Message’,
‘MIME::Entity=HASH(0xc8af7fc)’, ‘RawMessageRef’,
‘SCALAR(0xc8afdc0)’, ‘CurrentUser’,
‘RT::CurrentUser=HASH(0xc862d80)’, ‘AuthLevel’, 1, ‘Action’, …)
called at /opt/rt3/bin/…/lib/RT/Interface/Email.pm line 1274 RT::

The ticket is created but the commit fails. An attempt to view the
ticket produces this error message: “Could not load ticket 9261”

Here is the scrip. It is attached to a particular queue
(CustomerSupport).

Condition: User defined

if ($self->TransactionObj->Type eq ‘Create’) {
return (1);
}

Action: User Defined

Custom action preparation code: Do nothing with the ticket

1;

Custom action cleanup code:

{
my $myId = $self->TicketObj->EffectiveId;
my $mySubject = $self->TicketObj->Subject;

my $binary =
’/home/alarmpoint/alarmpointsystems/integrationagent/
bin/APClient.bin’;
system($binary, ‘–map-data’, ‘vanderbilt’, ‘Cluster Group’,
$mySubject, ‘RT’, “RT $myId”);

1;
}

#Template: Global Template: Blank

Any suggestions would be appreciated. The message is actually send
to the webservice, since we can log in to the remote server and see
that the data was sent appropriately. However, RT balks.

Thanks.

~Charles~


Charles Johnson, Vanderbilt University
Advanced Computing Center for Research and Education
Office: 615-343-4134
Cell: 615-478-5743

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

Charles Johnson, Vanderbilt University
Advanced Computing Center for Research & Education
Mailing Address: Peabody #34, 230 Appleton Place, Nashville, TN 37203
Shipping Address: 1231 18th Avenue South, Hill Center, Suite 143,
Nashville, TN 37212
Office: 615-343-4134
Cell: 615-478-5743
Fax: 615-343-7216