Conditions d'erreur du pilote de périphérique du client de bande USB

Outre les erreurs répertoriées, les sous-routines ioctl, open, readet write de l'unité de bande USB échouent dans les cas suivants:

Valeur Descriptif
ENCORE UNE FOIS Indique qu'une tentative est effectuée pour ouvrir un périphérique, qui est déjà ouvert.
EBUSY Indique que l'unité cible est réservée par un autre initiateur.
EINVAL
  • Indique que la valeur O_APPEND est fournie en tant que mode dans lequel l'unité doit être ouverte.
  • Indique que le paramètre nbyte fourni par une opération read ou write n'est pas un multiple de la taille de bloc.
  • Indique qu'un paramètre d'une opération ioctl n'est pas valide.
  • Indique que l'opération ioctl demandée n'est pas prise en charge sur l'unité en cours.
EIO
  • Indique que l'unité de bande est réinitialisée ou que la bande est modifiée. Cette erreur est renvoyée lors de l'opération d'ouverture si la bande est positionné au-delà du début de la bande lors de la fermeture en raison de l'opération précédente sur la bande.
  • Indique que l'unité ne peut pas avancer ou inverser le nombre d'enregistrements spécifié par la zone st_count avant de rencontrer une fin de support (EOM) ou une marque de fichier.
EMEDIA Indique qu'une opération d'ouverture est tenta pour un adaptateur qui possède déjà le nombre maximal autorisé d'unités ouvertes.
ENOTREADY Indique qu'il n'y a pas de bande dans l'unité ou que l'unité n'est pas prête.
ENXIO Indique qu'il y a eu une tentative d'écriture sur une bande, qui a déjà atteint EOM.
EPERM Indique que le sous-programme requiert les droits appropriés.
ETIMEDOUT Indique qu'une commande a expiré.
EWRPROTECT
  • Indique qu'une opération d'ouverture est effectuée pour le mode lecture / écriture sur une bande en lecture seule.
  • Indique qu'une opération ioctl, qui affecte le support, a été tentés sur une bande en lecture seule.

Fiabilité et facilité de maintenance

Les erreurs suivantes sont renvoyées par les unités de bande:

Erreur Descriptif
COMMANDE ABANDONNÉ Indique que l'unité a mis fin à la commande.
Vérification à vide Indique qu'une commande de lecture a rencontré une bande vierge.
PROTECTION DES DONNÉES Indique qu'une opération d'écriture a été tenté sur une bande protégée en écriture.
BON ACHÈVEMENT Indique que la commande a abouti.
Erreur matérielle Indique qu'une erreur matérielle irrémédiable s'est produite lors de l'exécution de la commande ou lors d'un autotest.
Illegal request Indique une commande non valide ou un paramètre de commande non valide.
Erreur de support Indique que la commande s'est terminée avec une condition d'erreur de support irrémédiable. Cette condition peut être causée par une bande magnétique ou une tête sale.
Non prêt Indique que l'unité logique est hors ligne.
Erreur récupérée Indique que la commande a abouti après l'application de certaines opérations de reprise.
Attention unité Indique que l'unité est réinitialisée ou que la puissance est activée.

Les erreurs de commande moyenne, matérielle et infructueuse de la liste précédente doivent être consignées chaque fois qu'elles se produisent. L'erreur ABORTED COMMAND peut être remédiable, mais elle est consignée en cas d'échec de la reprise. Pour les types d'erreur RECOVERED ERROR et ABORTED COMMAND récupérés, les seuils sont conservés ; lorsqu'ils sont dépassés, une erreur est consignée. Les seuils sont ensuite supprimés.

/* Bulk transfer cmd and status blocks */
typedef struct mstor_cbw {
    uint32_t cbw_signature;     /* Always "USBC" little endian */
    uint32_t cbw_tag;           /* Command identification  */
    fld32_t cbw_dlen;           /* Data length  */
    uchar cbw_flags;            /* Indicates data in or data out */
    uchar cbw_lun;              /* Logical unit number, 0-15  */
    uchar cbw_cblen;            /* Significant bytes of the cmd blk */
    uchar cbw_cb[16];           /* Command block itself  */
    uchar cbw_rsvd;
} mstor_cbw_t;
 
/* For error logging */
struct usbtape_err_rec {
    struct err_rec0 log;
    uint cmd_error;
    mstor_cbw_t cbw;
    char sense_data[168];
    uint dd1;                    /* reserved for dd use */
    uint dd2;                    /* reserved for dd use */
    uint dd3;                    /* reserved for dd use */
    uint dd4;                    /* reserved for dd use */
    uint dd5;                    /* reserved for dd use */
    uint dd6;                    /* reserved for dd use */
    uint dd7;                    /* reserved for dd use */
    uint dd8;                    /* reserved for dd use */
};
 
LABEL:          SC_TAPE_ERRx
IDENTIFIER:     xxxxxxxx
Date/Time:       Thu Mar 12 05:20:27 CDT 2009
Sequence Number: 3829
Machine Id:      0000097AD400
Node Id:         sitar04
Class:           H
Type:            PERM
Resource Name:   rmt0
Resource Class:  tape
Resource Type:   0806500c
Location:         
 
Description
Probable Causes
Failure Causes
 
       Recommended Actions
 
Detail Data
 
SENSE DATA
1111 1111 2222 2222 3333 3333 4444 4444 5566 7788 8888 8888 8888 8888 8888 8888 
8888 8899 aaaa kkaa aaaa aaaa aaaa aaaa ccqq aaaa aaaa aaaa aaaa aaaa aaaa aaaa 
aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa 
aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa 
aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa bbbb bbbb cccc cccc dddd dddd
 
 
Data Representation Legend
--------------------------
   cmd_error              1    Command Error Value 
(cmd_error values can be negative which are logged as 2's complement. 
  For these USB specific error values refer below or /usr/include/sys/usbdi.h.
  For error values which are positive Please refer to /usr/include/sys/errno.h file for error description)
 
Bulk transfer Command and Status Blocks
   cbw_signature          2    Always .USBC. in ASCII - “5553 4243”
   cbw_tag                3    Command Identification
   cbw_dlen               4    Data Length
   cbw_flags              5    Indicates Data IN or OUT
   cbw_lun                6    LUN Id
   cbw_cblen              7    CDB (Command Descriptor Bytes) length
   cbw_cb                 8    CDB
   cbw_rsvd               9    Reserved
 
Sense data
   Sense data             a
   Sense key              k          
   ASC                    c
   ASCQ                   q
   Read Transfer Count    b   In bytes
   Write Transfer Count   c   In bytes
   Location               d   Device Driver log location
Remarque: Les erreurs d'adaptateur liées à l'unité sont consignées chaque fois que les erreurs se produisent.

Valeurs d'enregistrement d'erreur pour les erreurs de l'unité de bande

Le tableau suivant répertorie les zones définies dans le modèle d'enregistrement d'erreur pour les erreurs d'unité de bande:

ID d'erreur Descriptif
SC_TAPE_ERR1 Erreur de bande permanente. Cette erreur est consignée lorsque le support de bande a rencontré une erreur.
SC_TAPE_ERR2 Erreur matérielle de bande permanente. Cette erreur est consignée lorsque l'erreur matérielle de bande est détectée ou que la commande est abandonnée par l'unité et que toutes les tentatives de résolution de l'erreur ont échoué.
SC_TAPE_ERR3 Echec de l'unité de bande temporaire. Cette erreur n'est pas consignée dans le pilote de bande USB (Universal Serial Bus).
SC_TAPE_ERR4 Echec de l'unité de bande permanente. Cette erreur est consignée lorsque l'échec de l'adaptateur est détecté et que toutes les tentatives ont échoué.
SC_TAPE_ERR5 Erreur de bande inconnue. Cette erreur est consignée lorsque la bande renvoie une condition de vérification, mais les données de détection ne contiennent pas d'informations valides.
SC_TAPE_ERR6 Erreur d'opération de bande temporaire. L'unité de bande doit être nettoyée.
SC_TAPE_ERR7 Erreur d'information. Les journaux d'erreurs liés au service d'accès distant (RAS) sont dus à des échecs de vérification de l'intégrité du pilote interne.
SC_TAPE_ERR8 Echec de l'unité de bande temporaire. Cette erreur n'est pas consignée dans le pilote de bande USB.

Valeurs d'enregistrement d'erreur pour les erreurs de support de l'unité de bande

Le tableau suivant répertorie les zones définies dans le modèle d'enregistrement d'erreur pour les erreurs de support de l'unité de bande:

Article Descriptif
Commentaire Erreur de support de bande.
Classe Valeur H indiquant une erreur matérielle.
Rapport La valeur True indique que cette erreur doit être incluse lorsqu'un rapport d'erreur est généré.
Journal Une valeur True indique qu'une entrée de journal des erreurs doit être créée lorsque cette erreur se produit.
Alerte La valeur False qui indique cette erreur ne peut pas être mise en alerte.
Type_Err Valeur de Perm qui indique un échec permanent.
Desc. Valeur de 1332 indiquant une défaillance d'une opération de bande.
Prob_Causes Une valeur de 5003 qui indique un support de bande.
Causes utilisateur Une valeur de 5100 indiquant une erreur avec l'unité de bande et une valeur 7401 indiquant une erreur avec le support défectueux.
Actions utilisateur Valeur de 1601 indiquant que le support amovible doit être remplacé et que l'opération doit être à nouveau essayable.

Ou, elle correspond à une valeur de 0000 qui indique que des procédures d'identification des incidents doivent être exécutées.

Inst_Causes Aucun(e).
Actions-Inst_instance Aucun(e).
Echecs Une valeur de 5003 qui indique un support de bande.
Actions Echecs Valeur de 1601 indiquant que le support amovible doit être remplacé et que l'opération doit être à nouveau essayable.

Ou, elle correspond à une valeur de 0000 qui indique que des procédures d'identification des incidents doivent être exécutées.

La zone Detail_Data contient le type de commande, l'unité et le statut de l'adaptateur, ainsi que les informations de détection de demande provenant de l'unité en erreur. La zone Detail_Data est contenue dans la structure err_rec . Cette structure est définie dans le fichier /usr/include/sys/errids.h .

Valeurs d'enregistrement d'erreur pour les erreurs de la commande d'annulation de bande ou de matériel

Les zones suivantes de la structure err_hdr sont définies dans le fichier /usr/include/sys/erec.h pour les erreurs matérielles et les erreurs de commande abandonnées:

Article Descriptif
Commentaire Valeur du matériel de bande ou erreur de commande abandonnée.
Classe Valeur H indiquant une erreur matérielle.
Rapport La valeur True indique que cette erreur doit être incluse lorsqu'un rapport d'erreur est généré.
Journal Une valeur True indique qu'une entrée de journal des erreurs doit être créée lorsque cette erreur se produit.
Alerte La valeur FALSE qui indique cette erreur ne peut pas être mise en alerte.
Type_Err Valeur de Perm qui indique un échec permanent.
Desc. Valeur de 1331 indiquant une défaillance de l'unité de bande.
Prob_Causes Valeur de 6314 indiquant une erreur d'unité de bande.
Causes utilisateur Aucun(e).
Actions utilisateur Valeur 0000 indiquant que des procédures d'identification des incidents doivent être exécutées.
Actions-Inst_instance Aucun(e).
Echecs Une valeur de 5003 indiquant le cas d'échec est la bande et une valeur de 6314 indiquant le cas d'échec est l'unité de bande.
Actions Echecs Valeur 0000 indiquant que des procédures d'identification des incidents doivent être exécutées.

La zone Detail_Data contient le type de commande, l'unité et le statut de l'adaptateur, ainsi que les informations de détection de demande provenant de l'unité en erreur. La zone Detail_Data est contenue dans la structure err_rec . Cette structure est définie dans le fichier /usr/include/sys/errids.h . La structure usbtape_err_rec décrit les informations contenues dans la zone Detail_Data .

Valeurs d'enregistrement d'erreur pour le seuil d'erreur de récupération de bande dépassé

Les zones suivantes sont définies dans la structure err_hdr définie dans le fichier /usr/include/sys/erec.h pour les erreurs récupérées qui ont dépassé le compteur de seuil:

Article Descriptif
Commentaire Indique que le seuil des erreurs de récupération de bande est dépassé.
Classe Valeur H indiquant une erreur matérielle.
Rapport La valeur True indique que cette erreur doit être incluse lorsqu'un rapport d'erreur est généré.
Journal Une valeur True indique qu'une entrée de journal des erreurs doit être créée lorsque cette erreur se produit.
Alerte La valeur False qui indique cette erreur ne peut pas être mise en alerte.
Type_Err Valeur de TEMP indiquant un incident temporaire.
Desc. Valeur de 1331 indiquant une défaillance de l'unité de bande.
Prob_Causes Une valeur de 6314 indiquant la cause probable est l'unité de bande.
Causes utilisateur Une valeur de 5100 indique que le support est défectueux et une valeur de 7401 indiquant que la tête de lecture / écriture est sale.
Actions utilisateur Valeur de 1601 indiquant que le support amovible doit être remplacé et que l'opération doit être à nouveau essayable.

Ou, elle correspond à une valeur de 0000 qui indique que des procédures d'identification des incidents doivent être exécutées.

Inst_Causes Aucun(e).
Actions-Inst_instance Aucun(e).
Echecs Une valeur de 5003 indiquant la cause de l'échec est la bande et une valeur de 6314 indiquant que la cause de l'échec est l'unité de bande.
Actions Echecs Une valeur de 0000 qui indique des procédures de détermination des incidents doit être effectuée.

La zone Detail_Data contient le type de commande, l'unité et le statut de l'adaptateur, ainsi que les informations de détection de demande provenant de l'unité en erreur. Cette zone est contenue dans la structure err_rec . La structure err_rec est définie dans le fichier /usr/include/sys/errids.h . La zone Detail_Data indique également le type d'erreur du seuil dépassé. La structure usbtape_err_rec décrit les informations contenues dans la zone Detail_Data .

Valeurs d'enregistrement d'erreur pour les erreurs détectées par l'adaptateur USB de bande magnétique

Les zones suivantes de la structure err_hdr sont définies dans le fichier /usr/include/sys/erec.h pour les erreurs détectées par l'adaptateur:

Article Descriptif
Commentaire Une erreur détectée par l'adaptateur Fibre Channel de bande magnétique.
Classe Valeur H indiquant une erreur matérielle.
Rapport La valeur True indique que cette erreur doit être incluse lorsqu'un rapport d'erreur est généré.
Journal Une valeur True indique qu'une entrée de journal des erreurs doit être créée lorsque cette erreur se produit.
Alerte La valeur FALSE qui indique cette erreur ne peut pas être mise en alerte.
Type_Err Valeur de PERM qui indique un échec permanent.
Desc. Valeur de 1331 indiquant une défaillance de l'unité de bande.
Prob_Causes Les valeurs de 3300 qui indiquent une défaillance de l'adaptateur et une valeur de 6314 indiquant l'échec de l'unité de bande.
Causes utilisateur Aucun(e).
Actions utilisateur Valeur 0000 indiquant que des procédures d'identification des incidents doivent être exécutées.
Inst_Causes Aucun(e).
Actions-Inst_instance Aucun(e).
Echecs Une valeur de 3300 indique une défaillance de l'adaptateur et une valeur de 6314 indiquant l'échec de l'unité de bande.
Actions Echecs Une valeur de 0000 qui indique des procédures de détermination des incidents doit être effectuée.

La zone Detail_Data contient le type de commande et le statut de l'adaptateur. Cette zone est contenue dans la structure err_rec définie par le fichier /usr/include/sys/err_rec.h . Les informations de détection des demandes ne sont pas disponibles avec ce type d'erreur. La structure usbtape_err_rec décrit les informations contenues dans la zone Detail_Data .

Valeurs d'enregistrement d'erreur pour les erreurs de nettoyage de l'unité de bande

Certaines unités de bande renvoient des erreurs lorsqu'elles ont besoin d'être nettoyages. Les erreurs qui se produisent lorsque l'unité a besoin d'être nettoyant sont regroupées sous cette classe.

Article Descriptif
Commentaire Indique que l'unité de bande a besoin d'être nettoyant.
Classe Valeur H indiquant une erreur matérielle.
Rapport La valeur True indique que cette erreur doit être incluse lorsqu'un rapport d'erreur est généré.
Journal Une valeur True indique qu'une entrée de journal des erreurs doit être créée lorsque cette erreur se produit.
Alerte La valeur FALSE qui indique cette erreur ne peut pas être mise en alerte.
Type_Err Valeur de TEMP indiquant un incident temporaire.
Desc. Valeur de 1332 indiquant une erreur d'opération de bande.
Prob_Causes Une valeur de 6314 indique que la cause probable est l'unité de bande.
Causes utilisateur Valeur 7401 indiquant une tête de lecture / écriture sale.
Actions utilisateur Valeur 0000 indiquant que des procédures d'identification des incidents doivent être exécutées.
Inst_Causes Aucun(e).
Actions-Inst_instance Aucun(e).
Echecs Une valeur de 6314 indique que la cause est l'unité de bande.
Actions Echecs Une valeur de 0000 qui indique des procédures de détermination des incidents doit être effectuée.

La zone Detail_Data contient le type de commande et le statut de l'adaptateur, ainsi que les informations de détection de demande de l'unité concernée par l'erreur. Cette zone est contenue dans la structure err_rec définie par le fichier /usr/include/sys/errids.h . La structure usbtape_err_rec décrit les informations contenues dans la zone Detail_Data .

Erreur lors de l'enregistrement des valeurs pour les erreurs inconnues

Les erreurs qui se produisent pour des raisons inconnues sont regroupées dans cette classe. Les erreurs de protection des données entrent dans cette catégorie. Ces erreurs, détectées par le pilote de périphérique de bande, ne sont jamais visibles sur l'unité de bande.

La structure err_hdr pour les erreurs inconnues décrit les zones suivantes:

Article Descriptif
Commentaire Erreur de bande inconnue.
Classe Toutes les classes d'erreur.
Rapport La valeur True indique que cette erreur doit être incluse lorsqu'un rapport d'erreur est généré.
Journal Une valeur True indique qu'une entrée de journal des erreurs doit être créée lorsque cette erreur se produit.
Alerte La valeur FALSE qui indique cette erreur ne peut pas être mise en alerte.
Type_Err Une valeur UNKN indiquant le type d'erreur est inconnue.
Desc. Une valeur de 0xFE00 qui indique la description de l'erreur est inconnue.
Prob_Causes Indique les valeurs suivantes:
  • 3300, ce qui indique une défaillance de l'unité de bande
  • 5003, qui indique un incident de bande
  • 6314, ce qui indique un échec de l'adaptateur
Causes utilisateur Aucun(e).
Actions utilisateur Aucun(e).
Inst_Causes Aucun(e).
Actions-Inst_instance Aucun(e).
Echecs Une valeur de 0xFFFF qui indique les causes de l'échec est inconnue.
Actions Echecs Valeur 0000 indiquant que des procédures de détermination des incidents doivent être exécutées.

La zone Detail_Data contient le type de commande et le statut de l'adaptateur, ainsi que les informations de détection de demande provenant de l'unité en erreur. La zone Detail_Data est contenue dans la structure err_rec . Cette zone est contenue dans le fichier /usr/include/sys/errids.h . La structure usbtape_err_rec décrit les informations contenues dans la zone Detail_Data .

Reportez-vous à la spécification SCSI de l'unité applicable pour le format des informations de détection des demandes particulières.