growthcharts / james

Joint Automatic Measurement and Evaluation System (JAMES)
https://growthcharts.org/james/
GNU Affero General Public License v3.0
3 stars 0 forks source link

Server error(rq2): must specify only one of `font` and `fontface` #18

Closed stefvanbuuren closed 1 year ago

stefvanbuuren commented 1 year ago

SELF-NOTES (sorry in Dutch).

Allegro Sultum - Incident Incident [#S36307] M2306-03599 - Groei D score werkt niet - 8/9 juni 2023

Initiele probleem: Server error(rq2): must specify only one of "font" and "fontface"

Oorzaak was een security update van groeidiagrammen.nl begin juni die onbedoeld ook de R-versie geupdate heeft. Hierdoor trad het font/fontface probleem op door het grid R package grid. Deze was al twee jaar geleden gefixed. Als herstel nieuwe server: aangemaakt met backup van JAN 2022, en de settings in cloudflare geupdate. Zowel groeidiagrammen.nl als james.groeidiagrammen.nl draait naar behoren.

Overblijvend probleem

http://localhost/ocpu/lib/james/www/?loc=http://localhost/ocpu/tmp/x01383f08e7a503/

Dit moet zijn

http://groeidiagrammen.nl/ocpu/lib/james/www/?loc=http://groeidiagrammen.nl/ocpu/tmp/x01383f08e7a503/

Dag Stef, het gaat waarschijnlijk om de URL die de API teruggeeft na het versturen van de data: Fout in TnoBrowser_NavigationStarting (MLCASjgzAS1_PRD): Site mismatch, doel is https://groeidiagrammen.nl/ocpu/, navigatiesite is http://localhost/ocpu/lib/james/www/?loc=http://localhost/ocpu/tmp/x01383f08e7a503/. Vriendelijke groet, Aad Nienhuis

De bug komt uit het deprecated custom_list() eindpunt. We kunnen als volgt repliceren (NB: gebruikt dataschema versie 1.0 - client3.json)

curl https://groeidiagrammen.nl/ocpu/library/james/testdata/client3.json -O
var=$(jq '.' client3.json | jq -sR '.')
curl https://groeidiagrammen.nl/ocpu/library/james/R/custom_list -d "txt=$var"
curl https://groeidiagrammen.nl//ocpu/tmp/x087a9bd06db2d5/R/.val/json

RESULTAAT:

{
  "UrlGroeicurven": http://localhost/ocpu/lib/james/www/?loc=http://localhost/ocpu/tmp/x0b297bd3928eae/,
  "Resultaten": [
    {
      "Categorie": 1000,
      "CategorieOmschrijving": "Lengte",
      ...
}

Oplossing

De functie james:::get_host() vraagt de hostname op, en checkt of deze gelijk is aan https://groeidiagrammen.nl/. De nieuwe server heeft een andere hostnaam. Met https://linuxize.com/post/how-to-change-hostname-on-ubuntu-18-04/ heb ik de hostnaam gewijzigd in bovenstaande.

Dit lost het probleem op. Geen wijzigingen aan de kant van AS zijn nodig.

RESULTAAT:

{ "UrlGroeicurven": https://groeidiagrammen.nl/ocpu/lib/james/www/?loc=https://groeidiagrammen.nl/ocpu/tmp/x0dac422938b5d1/, "Resultaten": [ { "Categorie": 1000, "CategorieOmschrijving": "Lengte",

}

Lessen

  1. De hostname blijft niet bewaard op de backup
  2. De hacky get_host() functie is reeds vervangen door iets beter, dus dit probleem zal niet opnieuw optreden
  3. De status van groeidiagrammen.nl server is deprecated. Het reguliere upgradepad is gedocumenteerd op https://growthcharts.org/james/articles/oldfriends.html.
stefvanbuuren commented 1 year ago

Customer confirmed that it works again, so we can close.