I upgraded RT last week from 4.0.19 to 4.4.1 with no problem.
When we reply to a ticket and attach more than 1 file the mail usually
drop some attachments.
We drop 5 files in the box ‘attach’ below the answer. The files seams to
be downloaded as we see no more progress bar and the OK logo appear for
3 seconds on the file. Then we write the answer and click the ‘Update
Ticket’.
On the correspondence history and the outgoing mail there is only 3
files, same 3 files for the ‘attachment’ info on that ticket. We have to
write another answer with the 2 missing files.
We have no problem if the files are already on the server and we just
select them with the checkbox in the ‘Include attachments’ below the
’attach’ window.
we upgraded RT to 4.4.1 also last fall and also we have had the same problems with new attachments. I still haven’t found any reason why some files disappear when attaching them. There’s no error messages and I can’t find anything on logs.
I get this problem with RT 4.4.1 installed on Ubuntu LTS 14 or 16 (I
don’t remember exactly). I’m not an expert on Ubuntu so I decided to
reinstall everything from scratch on Slackware 14.2 (I know this distro
better).
Now everything works fine, but we upload file only one by one. We never
select many files to upload together, because from time to time rt
forget one or more file.
I don’t know what was the problem, perhaps a module’s version compatibility?
I have advised our RT users to upload files to our organization’s file download service and add a download link to RT ticket. This works quite well but I would like to know what causes the problem.
We’ve identified the cause as being a missing feature in Apache::Session::Postgres and Apache::Session::Oracle. They don’t lock the session, and so concurrent requests (most commonly attaching multiple files at once) suffer from a race condition. MySQL using Apache::Session::MySQL, which does support locking, is unaffected.
The best workaround we have right now is to switch to another session store which does support locking, such as Apache::Session::File.
We are now using Apache::Session::Oracle to store sessions (Set($WebSessionClass, ‘Apache::Session::Oracle’);). I will change it to Apache::Session::File. Let’s hope it will fix the problem. .