Attachments are dropped randomly from correspondence

Tilo Villwock <[email protected]>
Newsgroups gmane.comp.bug-tracking.request-tracker.user
Organization codematix GmbH
Message-ID <[email protected]>
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: [email protected]
phone: +49 (0)3641 30 38 58
---------
RT 4.4 and RTIR training sessions, and a new workshop day! https://bestpractical.com/training
* Boston - October 24-26
* Los Angeles - Q1 2017
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.