Downloading objects hangs up around 65kB

Valdis Vītoliņš valdis.vitolins at odo.lv
Sat Sep 17 20:04:55 UTC 2022


Thanks, John, for hints!

That allowed me to find this page:

https://blog.cryptomilk.org/2011/08/04/debugging-cgit/

And I got content returned with these settings (and had to run as root 
user):

CGIT_CONFIG=/etc/cgitrc \
QUERY_STRING="url=JTM/plain/doc/presentations/01_About.odp" \
/usr/lib/cgit/cgit.cgi 1>cgit.odt 2>cgit.log

cgit.log is empty and
cgit.odt is 713K file which starts with content:

X-Content-Type-Options: nosniff
Content-Security-Policy: default-src 'none'
Content-Type: application/octet-stream
Content-Length: 729281
Content-Disposition: inline; filename="01_About.odp"
Last-Modified: Sat, 17 Sep 2022 19:48:19 GMT
Expires: Sat, 17 Sep 2022 19:53:19 GMT
ETag: "7048b4feba4cd80d4d56dcb3ea4b063c93b620bd"

P�CqR3&��/mimetypeapplication/vnd.oasis.opendocument.presentationP�CqRConfigurations2/toolbar/P�CqRConfigurations2/floater/P�CqRConfigurations2/menubar/P�CqR�Configurations2/popupmenu/P�CqRConfigurations2/progressbar/P�CqR�Configurations2/statusbar�CqR'Configurations2/accelerator/current.xmlPP�CqRConfigurations2/images/Bitmaps/P�CqR�Configurations2/toolpanel�CqR
...

So, it may be problem with apache. I have quite many of modules loaded 
for reverse proxy and and url and html link rewrites to shorten URL 
coming from XWiki content management system.

apachectl -M
Loaded Modules:
  core_module (static)
  so_module (static)
  watchdog_module (static)
  http_module (static)
  log_config_module (static)
  logio_module (static)
  version_module (static)
  unixd_module (static)
  access_compat_module (shared)
  alias_module (shared)
  auth_basic_module (shared)
  authn_core_module (shared)
  authn_file_module (shared)
  authz_core_module (shared)
  authz_host_module (shared)
  authz_user_module (shared)
  autoindex_module (shared)
  cache_module (shared)
  cache_disk_module (shared)
  cgi_module (shared)
  deflate_module (shared)
  dir_module (shared)
  env_module (shared)
  filter_module (shared)
  headers_module (shared)
  mime_module (shared)
  mpm_prefork_module (shared)
  negotiation_module (shared)
  php7_module (shared)
  proxy_module (shared)
  proxy_connect_module (shared)
  proxy_html_module (shared)
  proxy_http_module (shared)
  reqtimeout_module (shared)
  rewrite_module (shared)
  setenvif_module (shared)
  socache_shmcb_module (shared)
  ssl_module (shared)
  status_module (shared)
  xml2enc_module (shared)

Question is how I can debug it, knowing that this is production site and 
that I don't have much of experience debugging apache?

Valdis

> On Fri, Sep 16, 2022 at 10:55:39PM +0300, Valdis Vītoliņš wrote:
>> Probably it is issue on 64-bit ARM architecture, because I tested that it
>> works on x86_64 virtual machine.
>>
>> Some time ago (because I haven't used HTTPS protocol for repositories
>> recently) downloading plain objects/blobs hangs up around 65kB of data.
>>
>> You can test it with:
>>
>> wget -O "01_About.odp" -d
>> "https://odo.lv/git/JTM/plain/doc/presentations/01_About.odp"
>>
>> It shows:
>> ...
>> Saving to: ‘01_About.odp’
>>
>> 01_About.odp                        8%[====>                           ]
>> 63,64K  13,0KB/s    in 4,9s
>>
>> 2022-09-16 22:32:33 (13,0 KB/s) - Connection closed at byte 65169. Retrying.
>> ...
>> etc.
> 
> This seems very strange (it also happens with the .../tree/... pages
> showing the hexdump file content).
> 
> My guess is that this is caused by the Apache configuration rather than
> anything CGit is doing itself.
> 
> Have you tested running cgit outside Apache using something like:
> 
> 	CGIT_CONFIG=/path/to/cgitrc \
> 	QUERY_STRING=url=JTM/plain/doc/presentations/01_About.odb \
> 	cgit
> 
> That should give some idea whether CGit itself is returning short data
> or if the response is being truncated downstream.
> 
> 
> Regards,
> John


More information about the CGit mailing list