Another collaboration between Andrew.human and Claude.ai
All times are Sydney time unless marked. Live's clock runs 3 hours behind Sydney (server shows 12:30 when it is 15:30). Clone's clock matches Sydney.
The link is the main variable.
curl (578 KB/s).pathping always stops at 192.0.0.1, your carrier's gateway, which does not answer probe packets. It cannot see past it, so use ping for this link.The server was not the bottleneck.
/etc/httpd, /etc/php.ini or /etc/php.d changed in the last 3 days.Sources/Load.php at 10:40 (unexplained, see section 4).How PDFs are actually delivered.
dlattach. It answered a request for bytes 0–99 with 200 and the whole 5,293,139 bytes, although it advertises Accept-Ranges: bytes. So the viewer always receives the whole file; speed is link plus server, with no chunking.Cache-Control: max-age=31536000, so browsers keep a PDF for a year after one full download.Sources/view_attach.php v1.8 (listatt's script) sent correct headers on a HEAD request, but a GET from Live returned an essentially empty body. Cause not confirmed. The leading theory is an output buffer left open by SSI.php.Link tracking is now in place. Clone's /etc/crontab has a line every 5 minutes writing to /root/linkwatch.log (packet loss, round trip, home page time). Baseline: 0% loss, average 209–219 ms, page 3.3–3.6 s. It only records while the NUC is on, and it restarts itself at each boot.
%. Cron cut the command off. Fixed.urlencode in active code, but the legacy pdf_display_patch.xml does, and the installer only removes the newer block. If Live's Display.template.php still carries the old block, that is the cause. Not yet checked. Run on Live: grep -n "is_pdf0urlencode" /var/www/html/Themes/default/Display.template.php /var/www/html/Sources/Display.phpawk to /root/load_by_hour.txt on Live (last 48 hours, server clock, add 3 hours for Sydney) and send the file./root/pdftest_ping.txt on Clone (real link record), /root/pdftest_load.txt on Live. Ignore the stray pdftest_ping.txt on Live (loopback). Click times were about 17:25.Sources/Load.php changed at 10:40 with no matching backup in Packages/backups. Not necessarily a problem. Worth knowing whether a package install did it.view_attach.php empty-body GET. Unexplained. Left alone.listatt_bbcode_v6.17.zip? Your call and your timing. Nothing depends on it today.| Item | State |
|---|---|
view_attach.php v1.9 (fix plus range support) |
Built, superseded, not deployed |
view_attach_range.php v1.0 (side-by-side copy, original untouched) |
Built; arrives with listatt 6.16 and 6.17 |
listatt_bbcode_v6.16.zip (Viewer dropdown) |
Installed on Live (banner shows v6.16). The dropdown was confusing; replaced by 6.17 |
listatt_bbcode_v6.17.zip ([native] plus [native in chunks] links, no dropdown) |
Built, not installed |
listatt_bbcode_v6.16.1 (layout fix) |
Never sent; not needed |
Release-card gaps carried forward: zips made with plain zip -X (no data descriptors or extra fields), not your legacy zipper; no standalone manual for view_attach_range.php.
ping -n 20 128.199.200.202 from the PC (today: 0% lost, about 200 ms).Chapter 3 CLOSED2.pdf in a private window with a stopwatch (today: about 5–9 s).grep -v " 0% packet loss" /root/linkwatch.log on Clone for the same time.uptime and top -bn1 | head -12.Attach this file, /root/load_by_hour.txt, both test files, and the grep output from item 1. Say which of items 1–6 you want to pursue first.