Attachments are dropped randomly from correspondence

Hello,

we’re struggling with a problem where attachments get randomly dropped
from a submitted correspondence in a ticket.

we’re using RT 4.4.1 in production on a RHEL 6 server with a PostgreSQL
9.1 backend on another server. The application is NOT configured with
external storage for attachments and as such - as per your documentation

  • everything is being base64 encoded and inserted into the database.

It also seems that uploading the attachments to the RT server works just
fine because the previews (where applicable) work perfectly. However, on
submit only a subset of the attachments apparently make it into the
database. I’ve double checked this in the actual table in the database.

A few more observations:

  • there is absolutely no error message in the logs (the level is set to
    debug) when files are being uploaded or the correspondence is submitted

  • there seems no correlation whatsoever to the file type, file size or
    number of files that have been attached as we’ve tested multiple
    scenarios (pdfs, zip archives, images, text files) and they all randomly
    failed to be included

  • there was one subscriber mail delivery error that occurred when
    attaching 8 images with a total size of ~20Mb (the error was reported as
    critical in the log, however, no further explanation)

We’ve upgraded from a previous version (4.2.10) and it worked perfectly
before with the same setup. The following is our RT_SiteConfig.pm with
credentials redacted:

Set( $rtname, ‘’);
Set($LogToFile, ‘debug’);
Set($LogDir, ‘/var/log/rt’);
Set($LogToFileNamed, “rt.log”);
Set($WebPort, 443);
Set($WebPath, ‘/rt’);
Set($WebDomain , ‘’);
my $port = RT->Config->Get(‘WebPort’);
Set($WebBaseURL,
($port == 443? ‘https’: ‘http’) .’://’
. RT->Config->Get(‘WebDomain’)
. ($port != 80 && $port != 443? “:$port” : ‘’)
);

Set($WebURL , $WebBaseURL . $WebPath . “/”);
Set($Organization , “”);
Set($Timezone , ‘Europe/Berlin’);

Set($DatabaseType , ‘Pg’);
Set($DatabaseHost , ‘’);
Set($DatabaseRTHost , ‘’);
Set($DatabasePort , ‘’);

Set($DatabaseUser, “”);
Set($DatabasePassword, “”);

Set($DatabaseName, “”);

Set($WebRemoteUserAuth, 1);
Set($WebRemoteUserEnv, “HTTP_REMOTE_USER”);
Set($WebRemoteUserContinuous, 1);
Set($WebFallbackToRTLogin, 1);
Set($WebRemoteUserAutocreate, 0);

Set($UserAutocreateDefaultsOnLogin, 0);

Set($OwnerEmail , ‘’);

Set($MailCommand , ‘sendmail’);
Set($SendmailArguments , ‘’);

Set($MaxAttachmentSize , 10000000);
Set($RTAddressRegexp , ‘’);

Set($CorrespondAddress , ‘RT::CorrespondAddress.not.set’);
Set($CommentAddress , ‘RT::CommentAddress.not.set’);

Set($TrustHTMLAttachments, 1);
Set($RecordOutgoingEmail, 0);

Set( %FullTextSearch,
Enable => 1,
Indexed => 1,
Column => ‘ContentIndex’,
Table => ‘Attachments’,
);

Set($SearchResultsAutoRedirect, 1);
Set($MaxInlineBody, 100000);

You must install Plugins on your own, this is only an example

of the correct syntax to use when activating them.

Plugin( “RT::Extension::QuickDelete” );

Plugin( “RT::Extension::CommandByMail” );

Plugin(‘RT::Extension::JSGantt’);

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

  # Configurable JSGantt options

https://code.google.com/p/jsgantt/wiki/Documentation#4.Instantiate_JSGantt_using()
# CaptionType => ‘Resource’,
# ShowStartDate => 1,
# ShowEndDate => 1,
# DateInputFormat => ‘mm/dd/yyyy’,
# DateDisplayFormat => ‘mm/dd/yyyy’,
# FormatArr => q|‘day’,‘week’,‘month’,‘quarter’|,

  # 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,

);

1;

The config variable ‘WebRemoteUserEnv’ is a modification of ours that
simply allows us to use a different variable name than the previously
hardcoded ‘REMOTE_USER’.

I also realize that setting MaxAttachmentSize has currently no effect
since neither TruncateLongAttachments nor DropLongAttachments are set. I
believe this is simply a remainder of an older config iteration.

Has anyone run into the same difficulties? Am I missing something in the
configuration? I wonder if this is somehow related to the new uploader
component.

Any pointers would be greatly appreciated.

Thanks in advance.

Best Regards

Tilo Villwock

codematix GmbH
Felsbachstr. 5-7
07745 Jena

email: tvillwock@codematix.de
phone: +49 (0)3641 30 38 58

Hi,

We have the same problem.
Best regards,
Robbo