C2019D07: Software updates februari 2019

Aankondiging: Software onderhoud hosting omgeving

Beste Klant / collega

(Is dit bericht niet goed leesbaar? Bekijk dan hier de online versie.)

Bij deze vragen we aandacht voor het volgende:

  1. Overgang van Oracle java naar AdoptOpenJDK versie
  2. Uitfaseren van oude Maxmind GeoIP databases
  3. Upgrade van ffmpeg-2 en ffmpeg-3 naar ffmpeg-4.
  4. Upgrade van passenger-5 naar passenger-6
  5. Upgrade van Python-3.6 naar Python-3.7
  6. Upgrade van ImageMagick-6 naar ImageMagick-7 en bekende kwetsbaarheden in ghostscript
  7. Upgrade van apache_mod_smooth_streaming-1.7 naar 1.9
  8. End Of Life van PHP-5.3 en PHP-5.6
  9. End Of Life kalender van overige software componenten
  10. Reguliere software updates

Overgang van Oracle java naar AdoptOpenJDK versie

Zoals eerder aangekondigd is Oracle in januari van dit jaar opgehouden met het supporten van java 8. Daarom stappen we over van de oracle variant naar AdoptOpenJDK. Vorige maand is dat met alle instanties in de testomgeving gebeurd. Deze maand is het de beurt aan de productieomgeving. Dat betekent dat zaken als POMS, Elasticsearch en graylog voortaan op basis van AdoptOpenJDK zullen draaien. Omdat beide versies onderling uitwisselbaar zijn verwachten we daar geen problemen mee. Daarnaast bieden we met ingang van heden naast java 8 ook java 11 aan. Op de upload servers is naast een runtime environment (“jre”) ook een volledige development kit (“jdk”) beschikbaar met daarin tools als jar, javac, jdb en jconsole. Dit was op basis van oracle jdk-1.8 en wordt nu OpenJDK-11.

Uitfaseren van oude Maxmind GeoIP databases

Maxmind (het bedrijf achter de geolocation op basis van IP databases) is opgehouden met het aanbieden van een aantal legacy GeoIP versie 1 databases. Dit betreft “GeoIPASNum.dat”, “GeoIPCity.dat” en de IPv6 databases. De belangrijkste database in dit rijtje (“GeoIP.dat”, die een IPv4 adres vertaalt naar een landcode) is nog wél beschikbaar, maar omdat Maxmind bezig is alles om te bouwen naar hun nieuwe versie 2 formaat (“GeoIP2”) raden we gebruikers van de maxmind databases aan om hun code aan te passen naar de nieuwe databases. In PHP kan daar de MaxMind-DB-Reader extension voor gebruikt worden, welke wij bundelen met php-7. Meer informatie over het gebruik van de nieuwe maxmind code staat op de NPO hosting wiki.

Upgrade van ffmpeg-2 en -3 naar ffmpeg-4

In de vorige update ronde heeft een migratie plaatsgevonden van niet meer gesupporte ffmpeg versies naar de dichtsbijzijnde wel gesupporte versie. Nu is het moment aangebroken om de drie versies die nog overbleven (ffmpeg-2, -3 en -4) terug te brengen naar één versie: ffmpeg-4. Omdat de verschillen in API tussen bovenstaande ffmpeg versies klein zijn verwachten we daar geen problemen mee. Het grootste verschil is de zgn “AAC” encoder. In oudere versies van ffmpeg is “libfaac” de aangewezen encoder daarvoor, terwijl in nieuwere versies deze vervangen is door de “aac” encoder. Dat betekent dat aanroepen waarin staat “-c:a libfaac” vervangen dienen te worden door “-c:a aac”

Upgrade van passenger-5 naar passenger-6

In Ruby-on-rails sites zit een stukje middleware genaamd “Passenger” wat dient als verbindingsschakel tussen de webserver en de ruby code. Veel (oude) Ruby-on-rails sites draaien nog met een oudere versie van passenger (versie 4) omdat ze niet met de nieuwere versie 5 kunnen samenwerken. Nieuwere sites maken wel gebruik van versie 5. Deze zullen we upgraden naar passenger-6. Hiervoor zijn geen wijzigingen in de ruby code nodig.

Upgrade van Python-3.6 naar Python-3.7

Wij bieden zowel Python-2.7 als Python-3 aan. De Python-3 tak wordt ge-upgrade van 3.6 naar 3.7 waarmee Python-3.6 verdwijnt. Aangezien 3.7 voldoende backwards compatible is met 3.6 verwachten we daar geen problemen mee. Waar nodig zullen we contact met gebruikers van Python-3.6 opnemen, bijvoorbeeld om even “pip install” voor Python-3.7 modules te doen.

Upgrade van ImageMagick-6 naar ImageMagick-7 en bekende kwetsbaarheden in ghostscript

ImageMagick wordt veel gebruikt om plaatjes te converteren. In php leveren we een gebundelde ImageMagick, maar het is ook mogelijk om op de command line losse ImageMagick commando's aan te roepen. Het bekendste voorbeeld daarvan is een programma genaamd “convert”. Indien dit zonder expliciet pad wordt gedaan is dat de systeem default, /usr/bin/convert. Dat is nu nog op basis van ImageMagick-6, maar wordt ge-upgrade naar ImageMagick-7. Tijdelijk zullen we versie 6 en 7 naast elkaar leveren, waarbij versie 6 nog te bereiken is via /local/ImageMagick6/ en versie 7 (ook) via /local/ImageMagick7/. Er zijn verschillen in aanroep tussen beide versies, dus testen is een goed idee. Een scenario zou kunnen zijn om waar nu gerefereerd wordt aan convert alvast te gaan refereren aan /local/ImageMagick6/bin/convert. Dat geeft dan tijd om rustig te kijken wat er eventueel veranderd moet worden om om te gaan van versie 6 naar 7. ImageMagick-6 bieden we nog aan tot medio 2019.

Los van de versie (6 of 7) wordt ImageMagick ook vaak gebruikt om postscript en pdf naar image formaten als png te converteren. ImageMagick gebruikt daar een tool genaamd “ghostscript” voor. Postscript echter is een volledige programmeertaal, wat het voor de interpreter daarvan, ghostscript, heel lastig maakt om zo'n conversie in alle gevallen goed te doen. Het is soms mogelijk om “kwaadaardige” postscript bestanden te fabriceren die problemen in ghostscript veroorzaken waardoor het kwaadaardige postscript bestand de controle van ghostscript overneemt en zo bijvoorbeeld willekeurige programma's kan executeren. Recent zijn er weer van dit type kwetsbaarheden in ghostscript gevonden. Normaal zorgen wij voor een ghostscript update, waarbij de problemen opgelost zijn. Alleen in dit geval is dat niet mogelijk, omdat er nog geen update beschikbaar is.

Dat betekent dat indien uw website ImageMagick gebruikt om willekeurige postscript of pdf bestanden te converteren er een nu risico is dat dit misbruikt wordt. Wij zien op dit moment 2 mogelijkheden: 1) het risico accepteren of 2) tijdelijk conversie van postscript documenten niet toestaan. Indien u kiest voor optie 2 kunt u contact met ons opnemen voor een configuratiewijziging om deze conversies tijdelijk niet meer toe te staan.

We verwachten dat voor de volgende software update ronde (maart 2019) er een gefixte ghostscript beschikbaar zal zijn, waar deze problemen in opgelost zijn. Maar, omdat er in het verleden meer van dit soort problemen gevonden zijn is dat geen garantie voor de toekomst en is het heel goed denkbaar dat er in de toekomst nog meer problemen in ghostscript gevonden gaan worden.

Upgrade van apache_mod_smooth_streaming-1.7 naar 1.9

Het NPO streaming platform maakt gebruikt van een een module waarme het bron signaal on-the-fly vertaald wordt naar een aantal verschillende adaptive streaming formaten. Deze module wordt ge-upgrade naar een up-to-date versie.

End Of Life van PHP-5.3 en PHP-5.6

Zoals eerder aangekondigd zijn zowel PHP-5.3 als PHP-5.6 End-Of-Life. We zullen we per 31 maart ophouden met het aanbieden van php-5.3. PHP-5.6 blijft nog op het platform beschikbaar tot 30 september 2019. We verzoeken alle PHP-5 gebruikers zo snel mogelijk te upgraden naar PHP-7 en/of energie te steken in een migratie naar ons nieuwe Community Hosting Platform op basis van OpenShift.

End Of Life kalender van overige software componenten

Beniewd tot wanneer een bepaalde software component nog beschikbaar is? Deze informatie staat nu overzichtelijk bij elkaar in onze End Of Life kalender

Reguliere software updates

In de vorige ronde hebben we aangekondigd dat Icecast (audio streaming) en Keepalived (loadbalancers) ge-update zouden worden. Omdat daar in de testfase nog wat problemen in zijn gevonden zijn beide updates uitgesteld naar deze ronde. De eerder aangekondigde Elasticsearch upgrades van hele oude naar up-to-date versies stuiten nog steeds op problemen en zijn tot nader order uitgesteld. In de periode van 18–21 februari worden de volgende updates doorgevoerd:

wat van naar changelog
keepalived 1.2.15 2.0.11 1
icecast 2.4.0-kh8 2.4.0-kh10 1
mod_smooth_streaming 1.7.6 1.9.5 1
passenger 5/6 5.3.7 6.0.1 1
ruby 2.1 2.1.8 2.1.9 1
python 3.6.8 3.7.2 1
OpenJDK8U-jre 8u192b12 8u202b08 vervanging van Oracle jre-1.8
OpenJDK11U-jre - 11.0.2_9 nieuw!
OpenJDK11U-jdk 11.0.1_13 11.0.2_9 vervanging van Oracle jdk-1.8
Elastic Search 6.5/6.6 6.5.4 6.6.0 1
mysql 5.7.24 5.7.25 1
ImageMagick 6 6.9.10-23 6.9.10-25 1
ImageMagick 7 7.0.8-23 7.0.8-25 1
ffmpeg 2.x 4.1 we discontinueren ffmpeg-2
ffmpeg 3.x 4.1 we discontinueren ffmpeg-3
postfix 3.2.7 3.3.2 1

De updates worden voor 11 februari op het testcluster doorgevoerd. zodat er gelegenheid is om de nieuwe versies te testen.

Het schema voor de productie clusters is als volgt:

wat actie impact wanneer
mod_smooth_streaming herstart origins encoding sessies worden herstart 18 februari 8:00 – 12:00
passenger herstart Ruby-on-Rails applicaties geen 18 februari 8:00 – 12:00
ruby herstart Ruby-on-Rails applicaties geen 18 februari 8:00 – 12:00
python herstart applicatieservers geen 18 februari 8:00 – 12:00
ImageMagick nieuwe versie wordt actief geen 18 februari 8:00 – 12:00
ffmpeg nieuwe versie wordt actief geen 18 februari 8:00 – 12:00
postfix herstart mailservers geen 19 februari 8:00 – 12:00
tomcat herstart java ongeveer 1-5 min downtime per instantie 20 februari 1:00 – 6:00
graylog herstart java 1 korte onderbreking naar de Graylog instanties 20 februari 1:00 – 6:00
ActiveMQ herstart java 1 korte onderbreking naar de ActiveMQ instanties 20 februari 1:00 – 6:00
mysql herstart databases 2 korte onderbrekingen naar de database instanties 20 februari 1:00 – 6:00
Elastic Search herstart java geen 20 februari 13:00 – 17:00
keepalived herstart loadbalancers geen 18–21 februari 13:00 – 17:00
icecast herstart streamservers geen 18–21 februari 13:00 – 17:00
  • aankondigingen/2019/c2019d07-software-updates-201902.txt
  • Last modified: 2019/05/28 10:47
  • (external edit)