Hi all I'm hoping someone will have come across this before, but we're getting problems with PDF files in our projects becoming truncated during download. They seem to upload fine to a wiki page or ticket, but on downloading larger ones ( 1Mb+) are becoming truncated, that is, with the raw-attachment link. Normally we run through SSL, and so I've tried it without but no luck. As a sanity check, I tried copying the file out of Trac and in to the Apache document root so it's outside the control of Trac, and it downloads fine. So I took a packet capture and caught the headers
_Apache directly_ Request : GET /test1.pdf HTTP/1.1 Host: X Connection: keep-alive Authorization: Basic X Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2028.0 Safari/537.36 Accept-Encoding: gzip,deflate,sdch Accept-Language: en-GB,en;q=0.8,en-US;q=0.6 Cookie: X HTTP/1.1 200 OK Date: Mon, 04 Aug 2014 10:28:15 GMT Server: Apache/2.2.21 (Win32) DAV/2 mod_ssl/2.2.21 OpenSSL/0.9.8r mod_python/3.3.1 Python/2.5.4 SVN/1.7.2 PHP/5.3.9 mod_wsgi/2.0 mod_perl/2.0.4 Perl/v5.12.4 Last-Modified: Wed, 23 Jul 2014 13:47:29 GMT ETag: "80000000064ac-12032e-4fedc94cdce7c" Accept-Ranges: bytes Content-Length: 1180462 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: application/pdf _Via Trac_ GET /trac/RiskAssessments/raw-attachment/wiki/Warehouse/FoamPackingStation/SPlaner%20Sal13083012170.pdf HTTP/1.1 Host: X:8010 Connection: keep-alive Authorization: Basic X Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2028.0 Safari/537.36 Referer: http://X/trac/RiskAssessments/attachment/wiki/Warehouse/FoamPackingStation/SPlaner%20Sal13083012170.pdf Accept-Encoding: gzip,deflate,sdch Accept-Language: en-GB,en;q=0.8,en-US;q=0.6 Cookie: trac_form_token=f0ec23254cc6bd00730ce86c; HTTP/1.1 200 Ok Date: Mon, 04 Aug 2014 10:29:41 GMT Server: Apache/2.2.21 (Win32) DAV/2 mod_ssl/2.2.21 OpenSSL/0.9.8r mod_python/3.3.1 Python/2.5.4 SVN/1.7.2 PHP/5.3.9 mod_wsgi/2.0 mod_perl/2.0.4 Perl/v5.12.4 ETag: W/"sdelicata/Wed, 23 Jul 2014 13:47:29 GMT/False" Content-Disposition: attachment Content-Length: 1180462 Last-Modified: Wed, 23 Jul 2014 13:47:29 GMT Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: application/pdf; charset=iso-8859-15 Comparing the two, the only difference of significance I see is the "charset" appended to the content-type. So I removed the charset from trac.ini, but all it did was forcibly append "utf-8". Turning on debugging for gave me 2014-08-04 15:28:30,776 Trac[env] INFO: -------------------------------- environment startup [Trac 1.0] -------------------------------- 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading TracSubPages from d:\python25\lib\site-packages\tracsubpages-0.5-py2.5.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading TracXMLRPC from d:\python25\lib\site-packages\tracxmlrpc-1.1.2-py2.5.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading graphviz from d:\python25\lib\site-packages\graphviz-0.7.5dev-py2.5.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading plantuml.macro from d:\python25\lib\site-packages\plantuml-2.0dev-py2.5.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading ticketchangesets.admin from d:\python25\lib\site-packages\tracticketchangesets-1.0dev-py2.5.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading ticketchangesets.commit_updater from d:\python25\lib\site-packages\tracticketchangesets-1.0dev-py2.5.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading ticketchangesets.init from d:\python25\lib\site-packages\tracticketchangesets-1.0dev-py2.5.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading ticketchangesets.web_ui from d:\python25\lib\site-packages\tracticketchangesets-1.0dev-py2.5.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading timingandestimationplugin from d:\python25\lib\site-packages\timingandestimationplugin-1.2.8-py2.5.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.about from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.admin.console from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.admin.web_ui from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.attachment from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.db.mysql from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.db.postgres from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.db.sqlite from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.mimeview.patch from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.mimeview.pygments from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,792 Trac[loader] DEBUG: Loading trac.mimeview.rst from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,822 Trac[loader] DEBUG: Skipping "trac.mimeview.rst = trac.mimeview.rst [rest]": ("DistributionNotFound: docutils>=0.3" not found) 2014-08-04 15:28:30,822 Trac[loader] DEBUG: Loading trac.mimeview.txtl from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,838 Trac[loader] DEBUG: Skipping "trac.mimeview.txtl = trac.mimeview.txtl [textile]": ("DistributionNotFound: textile>=2.0" not found) 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.prefs from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.search from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.ticket.admin from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.ticket.batch from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.ticket.query from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.ticket.report from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.ticket.roadmap from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.ticket.web_ui from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.timeline from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.versioncontrol.admin from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.versioncontrol.svn_authz from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.versioncontrol.web_ui from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,855 Trac[loader] DEBUG: Loading trac.web.auth from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,869 Trac[loader] DEBUG: Loading trac.web.session from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,869 Trac[loader] DEBUG: Loading trac.wiki.admin from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,869 Trac[loader] DEBUG: Loading trac.wiki.interwiki from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,869 Trac[loader] DEBUG: Loading trac.wiki.macros from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,869 Trac[loader] DEBUG: Loading trac.wiki.web_api from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,869 Trac[loader] DEBUG: Loading trac.wiki.web_ui from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,869 Trac[loader] DEBUG: Loading tracopt.mimeview.enscript from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,869 Trac[loader] DEBUG: Loading tracopt.mimeview.php from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,869 Trac[loader] DEBUG: Loading tracopt.mimeview.silvercity from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Skipping "tracopt.mimeview.silvercity = tracopt.mimeview.silvercity [silvercity]": ("DistributionNotFound: SilverCity>=0.9.4" not found) 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading tracopt.perm.authz_policy from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading tracopt.perm.config_perm_provider from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading tracopt.ticket.clone from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading tracopt.ticket.commit_updater from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading tracopt.ticket.deleter from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading tracopt.versioncontrol.git.git_fs from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading tracopt.versioncontrol.svn.svn_fs from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading tracopt.versioncontrol.svn.svn_prop from d:\python25\lib\site-packages\trac-1.0-py2.5-win32.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading wikiprint.formats from d:\python25\lib\site-packages\tracwikiprintplugin-1.9.2-py2.5.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading wikiprint.web_ui from d:\python25\lib\site-packages\tracwikiprintplugin-1.9.2-py2.5.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading wikiprint.wikiprint from d:\python25\lib\site-packages\tracwikiprintplugin-1.9.2-py2.5.egg 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading file plugin ProjectLoop from d:\svn_repo_2\trac_inherited\plugins\ProjectLoop.py 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading file plugin Stack2Uml from d:\svn_repo_2\trac_inherited\plugins\Stack2Uml.py 2014-08-04 15:28:30,885 Trac[loader] DEBUG: Loading file plugin testStack2Uml from d:\svn_repo_2\trac_inherited\plugins\testStack2Uml.py 2014-08-04 15:28:30,901 Trac[default_workflow] DEBUG: Workflow actions at initialization: {u'resolve': {u'operations': [u'set_resolution'], 'name': u'resolve', 'default': 0, 'newstate': u'closed', 'oldstates': [u'new', u'assigned', u'reopened'], u'permissions': [u'TICKET_MODIFY']}, u'testing_reassign': {u'operations': [u'set_owner'], u'name': u'Reassign testing', 'default': 0, 'newstate': u'testing', 'oldstates': [u'testing'], u'permissions': [u'TICKET_MODIFY']}, u'testing': {u'operations': [u'set_owner'], u'name': u'Set tester', 'default': 0, 'newstate': u'testing', 'oldstates': [u'new', u'accepted', u'needs_work', u'assigned', u'reopened', u'waiting'], u'permissions': [u'TICKET_MODIFY']}, u'accept': {u'operations': [u'set_owner_to_self'], 'name': u'accept', 'default': 0, 'newstate': u'assigned', 'oldstates': [u'new'], u'permissions': [u'TICKET_MODIFY']}, u'leave': {u'operations': [u'leave_status'], 'name': u'leave', u'default': 1, 'newstate': u'*', 'oldstates': [u'*'], 'permissions': []}, u'reopen': {u'operations': [u'del_resolution'], 'name': u'reopen', 'default': 0, 'newstate': u'reopened', 'oldstates': [u'closed'], u'permissions': [u'TICKET_CREATE']}, u'reject': {u'operations': [u'set_owner'], u'name': u'Failed testing. Return to developer', 'default': 0, 'newstate': u'assigned', 'oldstates': [u'testing'], u'permissions': [u'TICKET_MODIFY']}, u'reassign': {u'operations': [u'set_owner'], 'name': u'reassign', 'default': 0, 'newstate': u'new', 'oldstates': [u'new', u'assigned', u'reopened', u'waiting'], u'permissions': [u'TICKET_MODIFY']}, u'pass': {u'operations': [u'set_resolution'], u'name': u'Passed testing. Mark', 'default': 0, 'newstate': u'closed', u'set-resolution': u'fixed', 'oldstates': [u'testing'], u'permissions': [u'TICKET_MODIFY']}, '_reset': {'operations': ['reset_workflow'], 'name': 'reset', 'default': 0, 'newstate': 'new', 'oldstates': [], 'permissions': []}, u'wait': {'operations': [], u'name': u'waiting (see depends on)', 'default': 0, 'newstate': u'waiting', 'oldstates': [u'new', u'assigned', u'reopened', u'testing'], u'permissions': [u'TICKET_MODIFY']}} 2014-08-04 15:28:30,901 Trac[env] WARNING: base_url option not set in configuration, generated links may be incorrect 2014-08-04 15:28:30,901 Trac[main] DEBUG: Dispatching <RequestWithSession "GET '/attachment/wiki/AttachmentTest/test1.pdf'"> 2014-08-04 15:28:30,901 Trac[graphviz] INFO: version: 0.7.5dev - id: $Id$ 2014-08-04 15:28:30,917 Trac[svn_fs] DEBUG: Subversion bindings imported 2014-08-04 15:28:30,917 Trac[api] INFO: Synchronized '(default)' repository in 0.02 seconds 2014-08-04 15:28:30,917 Trac[api] DEBUG: action controllers for ticket workflow: ['ConfigurableTicketWorkflow'] 2014-08-04 15:28:30,917 Trac[chrome] DEBUG: Prepare chrome data for request 2014-08-04 15:28:30,917 Trac[session] DEBUG: Retrieving session for ID 'X' 2014-08-04 15:28:30,933 Trac[perm] DEBUG: No policy allowed X performing TRAC_ADMIN on None 2014-08-04 15:28:30,933 Trac[perm] DEBUG: No policy allowed X performing PERMISSION_GRANT on None 2014-08-04 15:28:30,933 Trac[perm] DEBUG: No policy allowed X performing PERMISSION_REVOKE on None 2014-08-04 15:28:30,933 Trac[perm] DEBUG: No policy allowed X performing TICKET_ADMIN on None 2014-08-04 15:28:30,933 Trac[perm] DEBUG: No policy allowed X performing VERSIONCONTROL_ADMIN on None 2014-08-04 15:28:30,933 Trac[perm] DEBUG: No policy allowed X performing WIKIPRINT_ADMIN on None 2014-08-04 15:28:30,933 Trac[perm] DEBUG: No policy allowed X performing WIKIPRINT_BOOK on None 2014-08-04 15:28:30,947 Trac[perm] DEBUG: No policy allowed X performing WIKI_DELETE on <Resource u'wiki:AttachmentTest'> 2014-08-04 15:28:30,947 Trac[attachment] DEBUG: LegacyAttachmentPolicy denied X access to <Resource u'wiki:AttachmentTest, attachment:test1.pdf'>. User needs WIKI_DELETE 2014-08-04 15:28:30,947 Trac[perm] DEBUG: LegacyAttachmentPolicy denies X performing ATTACHMENT_DELETE on <Resource u'wiki:AttachmentTest, attachment:test1.pdf'> I've also tried uploading the file as "file.pdf" and I get the same result. The A/v is disabled. The server & clients are on the same subnet, without a firewall in the way. Everything else is fine. If I put up a smaller PDF ( 70k) it comes down no problem. We were running on 1.0.0, but when I got no joy trying other things to get it working, I upgraded to 1.0.1 and the zip downloader does get the whole thing correctly ( PDF encompassed with a ZIP ). Server is running Win 2003 32bit, Apache 2.2.21 System Information PackageVersionTrac1.0Genshi0.6 (without speedups)Pygments1.5pysqlite2.3.2 Python2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] setuptools0.6c11SQLite3.3.4Subversion1.7.2 (r1207936)jQuery1.7.2 Installed PluginsNameVersionLocationgraphviz <http://trac-hacks.org/wiki/GraphvizPlugin>0.7.5dev d:\python25\lib\site-packages\graphviz-0.7.5dev-py2.5.egg ProjectLoopN/Ad:\svn_repo_2\trac_inherited\plugins\ProjectLoop.pycStack2Uml <https://development.planer.co.uk/trac/GuestTestSite/URL>Rev d:\svn_repo_2\trac_inherited\plugins\Stack2Uml.pyctimingandestimationplugin <http://www.trac-hacks.org/wiki/TimingAndEstimationPlugin>1.2.8 d:\python25\lib\site-packages\timingandestimationplugin-1.2.8-py2.5.egg tracsubpages <http://github.com/jetheis/TracSubPages>0.5 d:\python25\lib\site-packages\tracsubpages-0.5-py2.5.eggtracticketchangesets <http://trac-hacks.org/wiki/TracTicketChangesetsPlugin>1.0dev d:\python25\lib\site-packages\tracticketchangesets-1.0dev-py2.5.egg tracwikiprintplugin <http://trac-hacks.org/wiki/TracWikiPrintPlugin>1.9.2 d:\python25\lib\site-packages\tracwikiprintplugin-1.9.2-py2.5.eggtracxmlrpc <http://trac-hacks.org/wiki/XmlRpcPlugin>1.1.2 d:\python25\lib\site-packages\tracxmlrpc-1.1.2-py2.5.egg >From trac.ini [attachment] max_size = 262144 render_unsafe_content = false Does anyone have any suggestions as to where to look next ? many thanks Simon -- You received this message because you are subscribed to the Google Groups "Trac Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/trac-users. For more options, visit https://groups.google.com/d/optout.
