Gyorsan patchelnek a vezető nyílt forrású projektek

Címkék

A Coverity egy sajtóhírben közölte, hogy a vezető nyílt forrású projektek minden hatodik percben befoltoztak egy lyukat a cég átvilágítását követő első héten. A cég nemrég közölte azt a listát, amelyben arról tájékoztatott, hogy egyes nyílt forrású projektekben mennyi hibát találtak.

A leggyorsabban a Samba projekt reagált a hibákra. Az első héten 216-ról 18-ra csökkentette a szoftverben a Coverity által talált hibák számát. A Coverity oldalán követni lehet a projektek aktivitásait. Például az AMANDA 108-ról 0-ra csökkentette a hibái számát. A Firefox 108-ról 7-re, a GNOME 896-ról 211-re javított. Volt akinek nem sikerült ilyen eredményesen dolgozni. A FreeBSD például 635-ről 632-re javított, de volt olyan is, aki (Firebird) vizsgálat óta nem csökkentette, hanem növelte a hibák számát.

A bejelentés itt. A lista az eredményekkel itt.

Hozzászólások

"A FreeBSD például 635-ről 632-re javított"
Erről kinek mi a véleménye?

Talán azt is figyelembe kellene venni, hogy az adott projekt kódja hány sorból áll. (ahogy az a táblázatban benne is van) Amúgy egyébként tök jó ez a számháború, de magában a hibák száma nem igazán mérvadó. 2 000 000 sorban és 200 000 sorban ugyanaz a mennyiségű hiba azért szvsz nem ugyanaz a kategória.

FreeBSD-ben ha átlagot gyártok akkor ~2503 soronként van hiba
NetBSD-en pedig ~2515 soronként.
A linuxot szándékosan nem írom ide az állandó idióta linux vs. freebsd flame miatt, de az jobban áll ebben az átlagolásban. Ami persze nem jelent semmit csak zsonglőrködök a számokkal.
Pusztán csak arra szerettem volna rávilágítani, hogy a Firefox 7 hibájával szemben a FreeBSD 632 hibája soknak tűnhet. Csak épp a Firefox kódja ~340 000 sor,míg a FreeBSD 1,6 millió sorból áll. Nagyobb kódot pedig értelemszerűen nehezebb karban tartani és a hiba lehetősége is nagyobb.

Wietse Venema postfix bejelentése:
"Beware: Coverity's claim of "17 original defects" in Postfix includes
14 false positives; that is, 14 are bugs in Coverity, not in Postfix.
Inflated claims like this may make their own product look good, but
they are hamful for the reputation of open source projects."

Ez valóban így van. Nincs mind kijavítva, ha a számokat nézed. De vajon ezek milyen hibák? Csak mezei elírás, szemantikai hiba vagy más? Mennyire kritikusak? Erról nem igazán szól ez a történet. Szóval számháború az egész. Ha megnézed a táblázatot, akkor jól látszik, hogy bonyolultabb kódokban (>1 millió sor) többszáz hiba van és egyikben sincs kijavítva az összes hiba.
Kb. olyan ez az egész mintha csak azt hangoztatnád, hogy XYZ autógyár legyártott 500 selejt autót. Ez ugye így dúrván hangzik, de ha hozzáteszed, hogy mindezt a legyártott 1 millióból, akkor kicsit másképp hangzik. Ha pedig azt is hozzáteszed, hogy azért selejtek az autók, mert gyári hibás mondjuk az elektromos ablak kapcsolója, akkor megintcsak más megvilágításba kerül a dolog.

És azért azt se felejtsük el, hogy ezeket a kódokat emberek gyártják. ÉS valójában mind fejlesztés alatt álló projekt. Ebből következően időbe telik mire kijavítanak valamit. Ezen kívül az sincs benne a felmérésben, hogy a még meglévő hibák közül mennyi van épp javítás alatt.

Szóval ez az egész felmérés meglehetősen hiányos. Engem leginkább a bulvárhírre emlékeztet. És tök mindegy, hogy melyik projektet nézem.

Szia

En maskepp latom, hiba az hiba tessek javitani.
Ugye azert te se gondolod komolyan hogy egy ember fejleszti az fbsd-t?
Szoval az a 6xx hiba szepen eloszlik a jopar emberre.
Igazan ez a hir arrol szol, hogy a felfedezett kissebb nagyobb hibakat mennyi ido alatt koregalja az adott project. Eleg jol latszik ki, hogy reagalt.

York.

------------------------------------------------
"Nyugi! Minden a legnagyobb rendben csúszik ki a kezeim közül..."

A FreeBSD-sek is használnak néha Coverity-t, egy-egy commitlogban láttam már az "Obtained by" sorban, de ezt még azelőtt, mielőtt kikerült volna ez a lista netre, tehát feltételezem valamelyik fejlesztőnek volt Coverity licensze. Az meg, hogy most nem patchelnek, talán annak is betudható, hogy két kiadáson dolgoznak épp, és a show-stopper bugokkal foglalkoznak inkább. Erről jut eszembe, a Coverity vajon a HEAD-et vizsgálja, vagy a brancheket is külön-külön?

ket dolog:
1 poenkodas: akinek fontosabb dolgai vannak, mint a hibajavitas, annak hosszu, sok aldozatot kovetelo harcra kell felkeszulnie a virusokkal, wormokkal, es a trojaiakkal;)

2. mivel dolgozott freeBSD-s a covertynel, valoszinuleg mar regen lefuttattak a progit, es a valodi hibakat javithattak. ezek lehet, hogy mind false riasztasok, vagy a jelenlegi kodszerkezetben nem kihasznalhato hibak. mindenesetre nem kene a FreebSd projektnek kussolni a dologrol, az a nagy hiba.

Anr - http://andrej.initon.hu

mondjuk ha a Te "logikád" szerint nézzük akkor a linuxod
is hasonlóképpen szar, nézd csak meg az arányszámokat.
Mielőtt valaki nekem ugrana szerintem nem szar a linux, csak
ha a Te gondolatmenetedet követnénk, és azokat a bizonyos
számokat, akkor ennyi erővel hasonlóan okoskodva arra is rá
lehetne mondani hogy egy fos, és miért kussolnak, de természetesen
ez épp ésszel teljesen hülyeség lenne.
Nemigaz?

Ez a mérés mi alapján történik?

A coverity saját szoftvere átvizsgálja a teljes forráskódot tipikus programozói hibák nyomaira kutatva. Ennél többet én sem tudok, csak feltételezem, hogy gyakorlatilag valamilyen mintakeresés lehet (pl. létrehozol egy változót, de sehol sem használod, lefoglalsz egy memóriaterületet, de nem szabadítod fel, stb.)

Jó hallani ezeket a híreket. Az OpenSource nagy áldása az ingyenesség és nyíltság mellett a valódi verseny.

Hát ha nyilvánosságra hozzák a hibákat is, akkor gondolom valamennyire motiválja a hiba elkövetőjét is, hogy kijavítsa azt minél gyorsabban, hisz valamennyire "égő" (elnézést a nem megfelelő kifejezésért), ha valaki valamilyen hibát ejt a (saját maga által publikált) kódban. Mondjuk nem értek hozzá, de biztos nem viszik túlzásba a fikázást, hisz a legtöbben ingyen kódolnak egy-egy projekten belül.

Ha hülyeséget írok nyugodtan lehet szólni.

Nem hozzák nyílvánosságra a hibákat, biztonsági okokból csak a fejlesztőknek mutatják meg.
Amúgy szerintem itt az is elég motiváló tényező, hogy valaki rámutat, hogy hol lehetnek hibák. Ha te fejlesztenél, aztán jön valaki és rámutat, hogy a kódodban itt, meg ott talán hiba van, akkor kijavítanád? Tekintve ezt úgy, hogy emberi erővel szinte leellenőrizhetetlen kódmennyiség van, plusz aki fejleszt, annak nincs ideje folyton átellenőrizni az egész programot (és nem is lehet, mert átsiklasz a hiba felett. Volt, hogy egy karakteres elgépelés miatt szívtam 3 napig, a szemem mindig átsiklott felette és pont volt olyan nevű másik változó).
Véleményem szerint a Coverity-zés nagy adomány az opensource közösség számára.

Hmmm...érdekes. Ha jól értem, eszerint a Coverity saját maga vizsgálja meg az adott projektek forráskódját, vagy valamelyik fejlesztőnek a vizsgált projektek közül kell hogy legyen Coverity licence? Mert az előbbi esetben kicsit hiányolom a listáról az OpenBSD-t, és az OpenBSD projekten belüli OpenSSH-t is. Csak úgy a teljesség kedvéért, de végül is ez a hibaszám/kódsor statisztika eléggé relatív, mert lehet egy kódban 100 olyan hiba, ami igazából nagyobb bajt nem okoz, és lehet csupán 2-3 ami annál komolyabb biztonsági/megbízhatósági problémákat generál. Ám egy összehasonlító mérőszámnak használható.

Okozhat kis hiba nagy biztonsági rést és nagy hiba kis biztonsági rést (de mondjuk közben nagy kényelmetlenséget a felhasználónak, amikor előjön). Egy puffer túlcsordulásos hiba ezenfelül még attól is függ, hogy a hibásan kezelt változó után mik vannak a memóriában. Egy projektemmel áttértem C-ről C++ fordítóra (hogy majd a projekt is részben C++-osodjon), más sorrendben jöttek létre a globális változok a memóriában és két olyan súlyos hiba előjött, aminek eddig nyoma sem volt (ha én írtam volna azt a kódrészletet, akkor visszaadnám a diplomám).

Az USA-ban kitalálták nemrég, hogy nemzetbiztonsági szemszögből van néhány nyílt forráskódú projekt és elkezdték ezek megbízhatóságának fejlődését ilyen formán támogatni. Ha rosszul emléxem, akkor javítsatok ki.

Utánakerestem a Firebird listán ennek, de sehol sincs megemlítve. Így nem csodálkozom, hogy ott rosszabb lett az eredmény. Bár számomra nem derül ki melyik verzióról van szó... Mert ugye van a stabil 1.5.3 de a fejlesztés már leginkább a most még RC 2.0-s verzión történik.