Tester les noyaux candidats à la mise à jour
Un article de Wiki de la communauté Mandriva.
Si vous voulez aider à sa traduction, cliquez simplement sur l'onglet modifier. Vous pouvez contacter le traducteur en cliquant sur son nom et en modifiant sa page de discussion.
Consultez également les autres pages à traduire.
Sommaire |
[modifier] Qu'est ce qu'un noyau candidat ?
Un noyau (ou kernel) candidat (connu sous le nom de -uc ou UC) est une version de test du prochain noyau stable de la version 200x.x de mandriva.
[modifier] Règles de base
- Ne tester ce nouveau noyau que si vous accepter la possibilité d'une régression de votre système. Si votre environnement doit être très stable, ce kernel n'est pas pour vous.
- Les paquets sont disponibles dans le répertoire main/testing
[modifier] Rapport de bug
Avant tout, si vous rencontrez un bogue, faites un rapport comme il est expliqué ici : Comment rapporter un bug pour le noyau
[modifier] Comment l'utiliser
La méthode la plus simple pour tester n'importe quel programme est simple : il faut juste l'utiliser.
Le noyau n'est pas une exception, il suffit d'installer un paquet RPM et redémarrer la machine. (Un des rares cas où l'on doit redémarrer sous Linux est la mise à jour du noyau.)
Si quelque chose ne fonctionne plus (ou mal), c'est-à-dire qu'un bogue a été introduit, vous pouvez le rencontrer de divers manières. Les plus courantes :
- Le nouveau noyau ne démarre pas
- Votre ordinateur se gèle
- Un matériel qui fonctionnait auparavant (par exemple : clef USB, carte réseau/WIFI, carte son...) cesse de fonctionner.
- Un programme que vous utilisiez auparavant sans problème avec le précédent kernel affiche maintenant une erreur de segmentation (segmentation fault) et se ferme.
[modifier] Vérifier les bogues résolus
Vous pouvez aider la communauté en vérifiant que les bogues qui sont considérés comme résolus le sont vraiment. Essayez de les reproduire sur une version du noyau pre- et post- résolution du bug.
En résumé, vous avez à :
- Lire le changelog (c'est un fichier qui comporte les changements qui ont été fait avec la version précédente), et trouver des problèmes reproductibles. Bugzilla est un bon point de départ pour cela.
- A partir des bogues que vous avez choisi, essayez de les reproduire avec un noyau défaillant (c'est à dire la version juste avant la version -uc).
- Si vous réussissez, essayer de le refaire avec le nouveau noyau (c'est à dire la version actuelle -uc)
- Si vous n'y parvenez pas, c'est que tout va bien !
Donnons nous un exemple : prenons le changelog -18uc2mdk
$ rpm -q --changelog kernel-smp-2.6.12.18.uc2mdk-1-1mdk | less
* Thu Mar 02 2006 Luiz Capitulino <lcapitulino@mandriva.com> 2.6.12-18.uc2mdk
o Samir Bellabes <sbellabes@mandriva.com>
- Support of the Acer Aspire 5xxx/3xxx series in the acerhk module
(patch from Olivier Blin <oblin@mandriva.com>)
o Luiz Capitulino <lcapitulino@mandriva.com>
- Adds the corresponding CVE entry number for ZZ93 patch by renaming
ZZ93_mlodable_protocols_refcnt_fix.patch to
ZZ93_CVE-2005-3359_mlodable_protocols_refcnt_fix.patch
- Rediffed RS02_rsbac-2.6.11-v1.2.4.patch, the current patch has a very
wierd line which probably got in due to a mistake while making the
diff (closes #20307)
- USB storage: remove info sysfs file as it violates the sysfs 1 value per
file rule (fixes #21245)
- Fix OOPS in sysfs_hash_and_remove_file()
- USB: pl2303 driver, makes pl2303HX chip work correctly
- Security fixes:
* ZZ95_CVE-2006-0554_xfs_ftruncate_could_expose_stale_data.patch
* ZZ96_CVE-2006-0555_nfs_local_dos_fix.patch
* ZZ97_CVE-2006-0741_x86_64_check_bad_elf_entry_addr.patch
Les lignes comportant des numéros comme #1234 sont des références de bugs sur le site Bugzilla ([[1]]). Prenons :
- USB storage: remove info sysfs file as it violates the sysfs 1 value per file rule (fixes #21245)
Avec le noyau possédant le bug, vous aurez une erreur de segmentation et un OOPS dans les fichiers log du système. Par contre, avec le kernel patché, vous obtiendrez une jolie liste d'information dans le sysfs.
[modifier] Chasse aux régressions
Un autre test à effectuer est de vérifier si un changement spécifique a introduit une régression.
Vous devez vérifier le changelog comme décrit à la section précédente et vérifier aussi le patch correspondant.
Par exemple, le patch suivant a été ajouté dans le kernel 2.6.12-18uc2mdk :
ZZ95_CVE-2006-0554_xfs_ftruncate_could_expose_stale_data.patch
Vous pouvez voir que c'est un problème de XFS' ftruncate()
Un bonne manière de trouver une régression peut être de :
- Créer une partition XFS et de la mettre à l'épreuve...
- Comprendre comment la fonction modifiée est utilisée et essayer de la mettre à l'épreuve.
- Essayez d'écrire un programme de test pour vérifier si le nouveau comportement de la fonction modifiée est celui attendu.
Il est bien évident que si vous n'avez pas un Oups ou un comportement étrange (comme des fichiers corrompus), vous aurez besoin de savoir ce que vous faites afin de déterminer ce qui a donné (ou pas) la régression.
[modifier] Outils de test
Il existe plusieurs outils pour tester le noyau Linux. Cette partie en donne quelques-un.
Autotest
- Description : A framework to run Linux kernel tests
- Lien du projet : http://test.kernel.org/autotest/
Linux Test Project (LTP)
- Description : Suite comprenant des tests divers du noyau Linux.
- Lien du projet : http://ltp.sourceforge.net/
- Paquet Mandriva : ltp
dbench
- Description : Outil de mise à l'épreuve de fichiers système
- Lien du projet : http://samba.org/ftp/tridge/dbench/
- Paquet Mandriva : dbench
Cerberus
- Description : Test control-system, lance beaucoup d'autres tests...
- Lien du projet : http://sourceforge.net/projects/va-ctcs

