Odd number of elements

Hello,

when restarting Apache I get the mistakes

Restarting web server: apache2
Odd number of elements in anonymous hash at
/usr/share/request-tracker4/lib/RT/Config.pm line 1072.
Odd number of elements in hash assignment at
/usr/share/request-tracker4/lib/RT/Config.pm line 1073.
… waiting .
Odd number of elements in anonymous hash at
/usr/share/request-tracker4/lib/RT/Config.pm line 1072.
Odd number of elements in hash assignment at
/usr/share/request-tracker4/lib/RT/Config.pm line 1073.

According to the wiki etc. the error should be in my

[…] config file. Somewhere you set a hash option
(key-value pairs), but misses key or value and number of elements in
assignment is odd

But I just can’t find the error. I even commented out one setting after
another to try it out, but that didn’t work either. I also made, as
recommended, all changes via /RT_SiteConfig.d and not in the original
RT_SiteConfig.pm.

I’m running RT4 on Debian Squeeze (backports) without an upgrade from an
earlier 3.8.

My custom changes are (*=anonymized):

######## GENERAL #######################################################
#Organisation
Set($rtname, ‘****’);

Set($LogToSysLog, ‘’); #disable syslog
Set($LogToFile, ‘debug’); #alles loggen
Set($LogDir, ‘/var/log/request-tracker4’); #pfad
Set($LogToFileNamed, ‘rt4.log’); #dateiname

Email Loops verhindern

Set($RTAddressRegexp,
‘^(rt@.de|rt-comment@.de|sysadmin@****.de)$’);

Webdomain override

Set($WebDomain, ‘...’);
Set($WebPort, 443);
Set($WebPath , “/rt”);
Set($WebBaseURL , “https://...”);

auto-create users for unknown incoming mails

Set($AutoCreate, {Privileged => 0});

#Disable GnuPG
Set($GnuPG, {‘Enable’ => 0});

#Default Theme
Set($WebDefaultStylesheet, ‘web2’);

#Passwortlï¿œnge
Set($MinimumPasswordLength, 8);

#Sort Order
Set($OldestTransactionsFirst, 0);

#Volltextsuche
Set(%FullTextSearch, Enable => 1, Indexed => 0,);

######## CUSTOM STATUS #################################################
[…]

######## PLUGINS #######################################################

Plugins

Set(@Plugins,(qw(
RTx::Calendar
RT::Extension::JSGantt
)));

Calendar Plugin

Set($HomepageComponents, [qw(QuickCreate Quicksearch MyCalendar
MyAdminQueues MySupportQueues MyReminders RefreshHomepage)]);

#Refresh global
Set($HomePageRefreshInterval, “900”);
Set($SearchResultsRefreshInterval, “60”);

#JSGantt

add RT::Extension::JSGantt to @Plugins: e.g.

Set(@Plugins,‘RT::Extension::JSGantt’);

customize JSGantt as you wish:

 Set(
     %JSGanttOptions,
     DefaultFormat => 'week', # day or week or month or quarter
     ShowOwner     => 1,
     ShowProgress  => 1,
     ShowDuration  => 1,

     # define your own color scheme:
     # ColorScheme => ['ff0000', 'ffff00', 'ff00ff', '00ff00', 

‘00ffff’, ‘0000ff’],

     # we color owners consistently by default, you can disable it via:
     # ColorSchemeByOwner => 0,

     # you can specify colors to use, unspecified owners will be
    # assigned to some color automatically:
    # ColorSchemeByOwner => { root => 'ff0000', foo => '00ff00' },

     # if can't find both start and end dates, use this color
     NullDatesColor => 333,

     # to caculate day length
     WorkingHoursPerDay => 8,

     # used to set start/end if one exists but the other does not
     DefaultDays => 7,
 );

#EOF

Any ideas, reccomendations, hints?

Thanks in advance, Patrick

Restarting web server: apache2
Odd number of elements in anonymous hash at
/usr/share/request-tracker4/lib/RT/Config.pm line 1072.
Odd number of elements in hash assignment at
/usr/share/request-tracker4/lib/RT/Config.pm line 1073.
######## CUSTOM STATUS #################################################
[…]

You deleted this part, which I assume is a custom Lifecycles config and
is the #1 place where people accidentally mess up and have a bad data
format.

-kevin

oh! you’re right - so i’m gonna check that out and give feedback here.
in a few days, actually.

regards, patrickAm 12.04.2013 16:28, schrieb Kevin Falcone:

On Fri, Apr 12, 2013 at 02:43:31PM +0200, Patrick G. Stoesser wrote:

Restarting web server: apache2
Odd number of elements in anonymous hash at
/usr/share/request-tracker4/lib/RT/Config.pm line 1072.
Odd number of elements in hash assignment at
/usr/share/request-tracker4/lib/RT/Config.pm line 1073.
######## CUSTOM STATUS #################################################
[…]

You deleted this part, which I assume is a custom Lifecycles config and
is the #1 place where people accidentally mess up and have a bad data
format.

-kevin

[…]

######## CUSTOM STATUS #################################################
[…]

You deleted this part, which I assume is a custom Lifecycles config and
is the #1 place where people accidentally mess up and have a bad data
format.

Hello,

I just cheked my custom Lifecycles but could not find any error.
“returned” is my added status.

Here the original config:

Set(%Lifecycles,
default => {
initial => [ ‘new’ ],
active => [ ‘open’, ‘stalled’ ],
inactive => [ ‘resolved’, ‘rejected’, ‘deleted’ ],

     defaults => {
         on_create => 'new',
         on_merge  => 'resolved',
         approved  => 'open',
         denied    => 'rejected',
         reminder_on_open     => 'open',
         reminder_on_resolve  => 'resolved',
     },

     transitions => {
         ''       => [qw(new open resolved)],

         # from   => [ to list ],
         new      => [qw(open stalled resolved rejected deleted)],
         open     => [qw(new stalled resolved rejected deleted)],
         stalled  => [qw(new open rejected resolved deleted)],
         resolved => [qw(new open stalled rejected deleted)],
         rejected => [qw(new open stalled resolved deleted)],
         deleted  => [qw(new open stalled rejected resolved)],
     },
     rights => {
         '* -> deleted'  => 'DeleteTicket',
         '* -> *'        => 'ModifyTicket',
     },
     actions => [
         'new -> open'      => {
             label  => 'Open It', # loc
             update => 'Respond',
         },
         'new -> resolved'  => {
             label  => 'Resolve', # loc
             update => 'Comment',
         },
         'new -> rejected'  => {
             label  => 'Reject', # loc
             update => 'Respond',
         },
         'new -> deleted'   => {
             label  => 'Delete', # loc
         },

         'open -> stalled'  => {
             label  => 'Stall', # loc
             update => 'Comment',
         },
         'open -> resolved' => {
             label  => 'Resolve', # loc
             update => 'Comment',
         },
         'open -> rejected' => {
             label  => 'Reject', # loc
             update => 'Respond',
         },

         'stalled -> open'  => {
             label  => 'Open It', # loc
         },
         'resolved -> open' => {
             label  => 'Re-open', # loc
             update => 'Comment',
         },
         'rejected -> open' => {
             label  => 'Re-open', # loc
             update => 'Comment',
         },
         'deleted -> open'  => {
             label  => 'Undelete', # loc
         },
     ],
 },

and here is mine:

Set(%Lifecycles,
default => {
initial => [ ‘new’ ],
active => [ ‘open’, ‘stalled’, ‘returned’ ],
inactive => [ ‘resolved’, ‘rejected’, ‘deleted’ ],

     defaults => {
         on_create => 'new',
         on_merge  => 'resolved',
         approved  => 'open',
         denied    => 'rejected',
         reminder_on_open     => 'open',
         reminder_on_resolve  => 'resolved',
     },

     transitions => {
         ''       => [qw(new open resolved)],

         # from   => [ to list ],
         new      => [qw(open stalled returned resolved rejected 

deleted)],
open => [qw(new stalled returned resolved rejected
deleted)],
stalled => [qw(new open rejected returned resolved deleted)],
returned => [qw(new open stalled rejected deleted)],
resolved => [qw(new open stalled rejected deleted)],
rejected => [qw(new open stalled returned resolved deleted)],
deleted => [qw(new open stalled rejected resolved)],
},
rights => {
‘* → deleted’ => ‘DeleteTicket’,
‘* → *’ => ‘ModifyTicket’,
},
actions => [
‘new → open’ => {
label => ‘Open It’, # loc
update => ‘Respond’,
},
‘new → resolved’ => {
label => ‘Resolve’, # loc
update => ‘Comment’,
},
‘new → rejected’ => {
label => ‘Reject’, # loc
update => ‘Respond’,
},
‘new → deleted’ => {
label => ‘Delete’, # loc
},
‘new → returned’ => {
label => ‘Return’, # loc
},
‘open → stalled’ => {
label => ‘Stall’, # loc
update => ‘Comment’,
},
‘open → resolved’ => {
label => ‘Resolve’, # loc
update => ‘Comment’,
},
‘open → rejected’ => {
label => ‘Reject’, # loc
update => ‘Respond’,
},
‘open → returned’ => {
label => ‘Return’, # loc
},
‘stalled → open’ => {
label => ‘Open It’, # loc
},
‘resolved → open’ => {
label => ‘Re-open’, # loc
update => ‘Comment’,
},
‘rejected → open’ => {
label => ‘Re-open’, # loc
update => ‘Comment’,
},
‘deleted → open’ => {
label => ‘Undelete’, # loc
},
],
},

That’s all.

Regards, Patrick