[rt-users] Attachments are dropped randomly from correspondence

Tilo Villwock tvillwock at codematix.de
Wed Oct 5 05:18:25 EDT 2016


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, '<rt-name>');
Set($LogToFile, 'debug');
Set($LogDir, '/var/log/rt');
Set($LogToFileNamed, "rt.log");
Set($WebPort, 443);
Set($WebPath, '/rt');
Set($WebDomain , '<domain>');
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 , "<org>");
Set($Timezone , 'Europe/Berlin');

Set($DatabaseType , 'Pg');
Set($DatabaseHost   , '<pg-server>');
Set($DatabaseRTHost , '<same-pg-server>');
Set($DatabasePort , '<non-standard-port>');

Set($DatabaseUser, "<user>");
Set($DatabasePassword, "<pw>");

Set($DatabaseName, "<dbname>");

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

Set($UserAutocreateDefaultsOnLogin, 0);

Set($OwnerEmail , '<email>');

Set($MailCommand , 'sendmail');
Set($SendmailArguments , '<args>');

Set($MaxAttachmentSize , 10000000);
Set($RTAddressRegexp , '<regex>');

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 at codematix.de
phone: +49 (0)3641 30 38 58



More information about the rt-users mailing list