On my private instance, plus most public instances, I'm seeing truncated
responses from breezewiki.
Examples:
* https://bw.artemislena.eu/arknights/wiki/Exusiai
* https://breeze.hostux.net/arknights/wiki/Exusiai
* https://breezewiki.pussthecat.org/arknights/wiki/Exusiai
* https://bw.projectsegfau.lt/arknights/wiki/Exusiai
At least for me, these all end abruptly mid-article (in slightly
different places?). On my (docker) instance, the logs show:
breezewiki | Connection error: flush-output: output port is closed
breezewiki | output port: #<output-port:tcp-accepted>
breezewiki | context...:
breezewiki |
/usr/share/racket/collects/racket/private/more-scheme.rkt:163:2:
select-handler/no-breaks
breezewiki | [repeats 8 more times]
breezewiki |
/root/.local/share/racket/8.9/pkgs/web-server-lib/web-server/private/dispatch-server-with-connect-unit.rkt:141:2
curl'ing the URLs gives the error "transfer closed with outstanding read
data remaining". I get the same error when curling locally, bypassing
the reverse proxy.
Page loads correctly on Fandom itself.
(This message is more for programmers who want to try tackling this bug since
I don't want my attempt to be entirely in vain)
You can reproduce this bug by setting `page-html` in src/page-wiki.rkt to:
<html><body><div class="mw-collapsible-content">–</div></body></html>
Printing `page` and `(update-tree-wiki page wikiname)` gives you:
'(*TOP* (html (body (div (@ (class "mw-collapsible-content")) (& ndash)))))
'(*TOP* (html (body (div (@ (class "mw-collapsible-content")) (& (@))))))
I hypothesise that this is caused by lib/tree-updater.rkt line 156, but I can
barely read the thing.
I fixed the bug in the code, so you should see the fix appear on your
private instance after you update, and public instances whenever they
decide to update.
https://breezewiki.com/arknights/wiki/Exusai has already been updated and
you can see the page is no longer truncated. Yay!