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

Reply via email to