Koha-kirjastojärjestelmään virheenkorjauksia

Tänä vuonna tuli taas työskenneltyä Kohan virheiden korjailun parissa Fuugin säätiön avustuksella. Tässä pieni katsaus siihen mitä kaikkea tulikaan tehtyä. Ensin lukuja: projektin aikana ehdin tekemään noin 73 koodin katselmointia ja 17 koodimuutosta. Iso osa ajasta tuli käytettyä muiden tekemien korjausten ja refaktorointien katselmointiin.

Iso joukko katselmoimistani bugiraporteista koski vanhasta Kohan C4-nimiavaruudesta uuteen olio-pohjaiseen Koha-avaruuteen siirtämistä, mm. bug 27272, 24295, 29955 ja 30921. Lisäksi paljon muutakin refaktorointia tuli edistettyä, esim. bugissa 30847 yksinkertaistettiiin skriptiä, minkä avulla kirjaston asiakkaat tekevät varauksia niteisiin sekä bugissa 31389 autorisoinnin koodia yksinkertaistettiin – tämä myöskin mahdollistaa paremman testaamisen tietoturvan kannalta kriittisen komponentin osalta. Lisäksi katselmoin raaka-SQL-lauseista eroon pääsemiseen liittyvää pätsiä bugissa 28186.

Paljon tuli myös katselmoitua ihan yksinkertaisia virheiden korjailuita, esimerkiksi kirjatilauksen perumiseen liittyvä virhe bugissa 29658 ja niteiden muokkaamisen estävä virhe bugissa 31223. Maksutapahtumien käsittely muilla kuin yhdysvaltalaisen formaatin hinnoilla antoi erikoisia NaN (Not a number) -virheitä käyttöliittymässä, joten siihen liittyen tein katselmointia bugissa 31513 sekä laitoin pienen follow-up pätsin, joka säilyttää hinnan esitystavan valitun lokaalin mukaisena. Bugissa 30483 katselmoin tietokannan eheyttä parantavan korjauksen.

Sitten koodimuutoksiin. Tietoturvaan liittyen laitoin yhden korjauksen Remote Code Execution (RCE) -haavoittuvaisuuteen, mutta harmillisesti se on vielä katselmoinnissa, joten en enempää avaa sen sisältöä tässä. Toivotaan kuitenkin pikaista katselmointia sille, että korjaus saadaan kaikkien käyttöön mahdollisimman pian! Kausijulkaisujen käsittelyyn liittyen törmäsin yllättävän bugiin, joka on ollut todella pitkään Kohassa: uuden kausijulkaisun numerokaavan lisääminen ei ole käytännössä ollut mahdollista vaan sitä syöttäessä on vain saanut virheen. Laitoin tähän ongelmaan korjauksen bugissa 28012. Sitten lainaukseen: lainauskoodin refaktorointia/yksinkertaistamista tuli tehtyä bugissa 30947 sekä bugin 31112 myötä kirjojen uusiminen estyy silloin kun useampia varauksia oli odottamassa yhdeltä varaajalta. Omasta mielestä myös tämä kirjojen uusintaan liittyvä korjaus yksinkertaistaa kivasti koodia 🙂 Erästä kriittistä regressiota korjasin bugissa 31313 liittyen niteiden saatavuuden tilaan asiakasliittymässä – niteiden saatavuustiedot olivat siis totaalisen väärin. Bugiin 31351 laitoin pätsin, joka poistaa ylimääräisiä UTF-8 transkoodailuita, joka oli aiheuttanut hämmenystä ja bugeja. Onneksi dataa ei ollut päässyt korruptoitumaan, niin pelkkä koodikorjaus ilman datan jälkikäteistä korjailua onnistui. C4-nimiavaruuden koodin siirtoa Koha-nimiavaruuteen tuli tehtyä bugissa 31485 sekä raaka-SQL:stä eroon pääsemistä bugissa 31517. Sitten vielä tuli tehtyä triviaaleja korjauksia, esimerkiksi bugiraportissa 31518 korjataan käyttöliittymästä puuttuva niteiden määrä, joka johtui syntaksivirheestä.

Siinä kaikki tällä erää. Edellä mainitsemistani muutoksista suurin osa pitäisi tulla saataville seuraavassa Kohan julkaisussa 22.11, se julkaistaan tämän vuoden marraskuun lopulla, jos kaikki menee aikataulun mukaisesti. Osa korjauksista saattaa jäädä vielä odottamaan mahdollisia lisäkatselmointeja muilta Koha-yhteisön jäseniltä.

Leave a Comment