Condições de Erro para Driver de Dispositivo USB Tape Client

Além dos erros listados, os subroutines ioctl, open, reade write para dispositivo de fita USB, não são bem sucedidos nas seguintes circunstâncias:

Valor Descrição
EAGAIN Indica que uma tentativa é feita para abrir um dispositivo, que já está aberto.
EBUSY Indica que o dispositivo de destino é reservado por outro iniciador.
EINVAL
  • Indica que o valor O_APPEND é fornecido como o modo no qual o dispositivo deve ser aberto.
  • Indica que o parâmetro nbyte que é fornecido por uma operação read ou write não é um múltiplo do tamanho do bloco.
  • Indica que um parâmetro para uma operação ioctl não é válido.
  • Indica que a operação ioctl solicitada não é suportada no dispositivo atual.
EIO
  • Indica que a unidade de fita é reajustada ou a fita é alterada. Este erro é retornado durante a operação aberta se a fita for posicionada além do início da fita ao fechar como resultado da operação anterior para a fita.
  • Indica que o dispositivo não pode espaço para frente ou reverter o número de registros que é especificado pelo campo st_count antes de encontrar uma extremidade-de-mídia (EOM) ou uma marca de arquivo.
EMEDIA Indica uma operação aberta é tentado para um adaptador que já possui o número máximo permitido de dispositivos abertos.
ENOTREADY Indica que não há fita na unidade ou a unidade não está pronta.
ENXIO Indica que houve uma tentativa de gravar em uma fita, que já atingiu a EOM.
EPERM Indica que a subroutina requer autoridade apropriada.
ETIMEDOUT Indica que um comando cronomeou.
EWRPROTECT
  • Indica que uma operação aberta é tentada para o modo de leitura / gravação em uma fita de leitura.
  • Indica que uma operação ioctl, que afeta a mídia, foi tentada em uma fita de leitura.

Informações de Confiabilidade e Manufabilidade

Os seguintes erros são retornados a partir dos dispositivos de fita:

Erro Descrição
COMANDO ABORTADO Indica que o dispositivo acabou com o comando.
Verificação de espaço em branco Indica que um comando de leitura encontrou uma fita em branco.
PROTEÇÃO DE DADOS Indica que uma operação de gravação foi tentada em uma fita protegida por gravação.
BOA CONCLUSÃO Indica o comando concluído com sucesso.
Erro de Hardware Indica que uma falha de hardware irrecuperável ocorreu durante a execução do comando ou durante um auto-teste.
Pedido ilegal Indica um comando inválido ou um parâmetro de comando inválido.
Erro Médio Indica que o comando terminou com uma condição de erro de mídia irrecuperável. Essa condição pode ser causada por uma falha de fita ou por uma cabeça suja.
Não pronto Indica que a unidade lógica está offline.
Erro Recuperado Indica que o comando é bem-sucedido depois que algumas operações de recuperação foram aplicadas.
Atenção da unidade Indica que o dispositivo é reajuste ou a energia é ligada.

Erros de comando médios, de hardware e sem sucesso da lista precedente devem ser registrados sempre que eles ocorrerem. O erro ABORTED COMMAND pode ser recuperável, mas o erro é registrado se a recuperação falhar. Para os tipos de erro RECOVERED ERROR e recuperados ABORTED COMMAND , os limites são mantidos; quando são excedidos, um erro é registrado. Os limites são então apurados.

/* 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
Nota: Os erros do adaptador relacionados ao dispositivo são registrados a cada vez que os erros ocorrem.

Valores de registro de erro para erros do dispositivo de fita

A tabela a seguir lista os campos definidos no modelo de registro de erro para erros do dispositivo de fita:

ID de erro Descrição
SC_TAPE_ERR1 Erro de fita permanente. Este erro é logado quando erro de fita métrica é encontrado.
SC_TAPE_ERR2 Erro de hardware de fita permanente. Este erro é registrado quando o erro de hardware da fita é encontrado ou o comando é abortado pela unidade e todas as tentativas de resolver o erro falharam.
SC_TAPE_ERR3 Falha na unidade de fita temporária. Este erro não é logado no driver de fita Universal Serial Bus (USB).
SC_TAPE_ERR4 Falha na unidade de fita permanente. Este erro é registrado quando a falha do adaptador é detectada e todas as tentativas falharam.
SC_TAPE_ERR5 Erro de fita desconhecida. Este erro é registrado quando a fita retorna uma condição de verificação mas os dados de sentido não contêm informações válidas.
SC_TAPE_ERR6 Erro de operação de fita temporária. A unidade de fita precisa ser limpa.
SC_TAPE_ERR7 Erro informativo. Logs de erros relacionados ao Serviço de Acesso Remoto (RAS) devido a falhas de verificação de sanidade do driver interno.
SC_TAPE_ERR8 Falha na unidade de fita temporária. Este erro não é logado no driver de fita USB.

Valores de registro de erro para erros de mídia do dispositivo de

A tabela a seguir lista os campos que são definidos no modelo de registro de erro para erros de mídia do dispositivo de fita:

Item Descrição
Comentário O erro da mídia de fita.
Classe Um valor de H que indica um erro de hardware.
Relatório Um valor de True que indica esse erro deve ser incluído quando um relatório de erro é gerado.
Log Um valor de True que indica uma entrada de log de erro deve ser criado quando este erro ocorrer.
Alerta Um valor de False que indica este erro não pode ser alertado.
Err_Type Um valor de Perm que indica uma falha permanente.
Err_Desc Um valor de 1332 que indica uma falha de operação de fita.
Prob_Causas Um valor de 5003 que indica mídia de fita.
User_Causes Um valor de 5100 que indica um erro com o dispositivo de fita e um valor de 7401 que indica um erro com a mídia defeituosa.
User_Ações Um valor de 1601 que indica que a mídia removível deve ser substituída e a operação deve ser julgada novamente.

Ou, é igual a um valor de 0000 que indica que procedimentos de determinação de problemas devem ser executados.

Inst_Causes Nenhum.
Inst_Ações Nenhum.
Fail_Causas Um valor de 5003 que indica mídia de fita.
Fail_Ações Um valor de 1601 que indica que a mídia removível deve ser substituída e a operação deve ser julgada novamente.

Ou, é igual a um valor de 0000 que indica que procedimentos de determinação de problemas devem ser executados.

O campo Detail_Data contém o tipo de comando, o status e o status do adaptador e as informações de sentido de solicitação do dispositivo particular em erro. O campo Detail_Data está contido na estrutura err_rec . Essa estrutura é definida no arquivo /usr/include/sys/errids.h .

Valores de registro de erro para erros de comandos interrompidos por fita ou hardware

Os campos a seguir na estrutura err_hdr são definidos no arquivo /usr/include/sys/erec.h para erros de hardware e erros de comandos abortados:

Item Descrição
Comentário Um valor de hardware de fita ou erro de comando abortado.
Classe Um valor de H que indica um erro de hardware.
Relatório Um valor de True que indica esse erro deve ser incluído quando um relatório de erro é gerado.
Log Um valor de True que indica uma entrada de log de erro deve ser criado quando este erro ocorrer.
Alerta Um valor de FALSE que indica este erro não pode ser alertado.
Err_Type Um valor de Perm que indica uma falha permanente.
Err_Desc Um valor de 1331 que indica uma falha na unidade de fita.
Prob_Causas Um valor de 6314 que indica um erro da unidade de fita.
User_Causes Nenhum.
User_Ações Um valor de 0000 que indica que procedimentos de determinação de problemas devem ser executados.
Inst_Ações Nenhum.
Fail_Causas Um valor de 5003 que indica o caso de falha é a fita e um valor de 6314 que indica o caso de falha é a unidade de fita.
Fail_Ações Um valor de 0000 que indica que procedimentos de determinação de problemas devem ser executados.

O campo Detail_Data contém o tipo de comando, o status e o status do adaptador e as informações de sentido de solicitação do dispositivo particular em erro. O campo Detail_Data está contido na estrutura err_rec . Essa estrutura é definida no arquivo /usr/include/sys/errids.h . A estrutura usbtape_err_rec descreve informações que estão contidas no campo Detail_Data .

Valores de registro de erro para limite de erro recuperado de fita excedido

Os campos a seguir são definidos na estrutura err_hdr que são definidas no arquivo /usr/include/sys/erec.h para erros recuperados que excederam o contador de limite:

Item Descrição
Comentário Indica que o limite para os erros recuperados em fita é excedido.
Classe Um valor de H que indica um erro de hardware.
Relatório Um valor de True que indica esse erro deve ser incluído quando um relatório de erro é gerado.
Log Um valor de True que indica uma entrada de erro-log deve ser criado quando este erro ocorrer.
Alerta Um valor de False que indica este erro não pode ser alertado.
Err_Type Um valor de TEMP que indica uma falha temporária.
Err_Desc Um valor de 1331 que indica uma falha na unidade de fita.
Prob_Causas Um valor de 6314 que indica a causa provável é a unidade de fita.
User_Causes Um valor de 5100 que indica a mídia é defeituoso e um valor de 7401 que indica a cabeça de leitura / gravação está sujo.
User_Ações Um valor de 1601 que indica que a mídia removível deve ser substituída e a operação deve ser julgada novamente.

Ou, é igual a um valor de 0000 que indica que procedimentos de determinação de problemas devem ser executados.

Inst_Causes Nenhum.
Inst_Ações Nenhum.
Fail_Causas Um valor de 5003 que indica a causa de falha é a fita e um valor de 6314 que indica a causa de falha é a unidade de fita.
Fail_Ações Um valor de 0000 que indica procedimentos de determinação de problemas deve ser realizado.

O campo Detail_Data contém o tipo de comando, o status e o status do adaptador e as informações de sentido de solicitação do dispositivo particular em erro. Este campo está contido na estrutura err_rec . A estrutura err_rec é definida no arquivo /usr/include/sys/errids.h . O campo Detail_Data também especifica o tipo de erro do limite excedido. A estrutura usbtape_err_rec descreve informações contidas no campo Detail_Data .

Valores de registro de erro para placa USB de fita-erros detectados

Os campos a seguir na estrutura err_hdr são definidos no arquivo /usr/include/sys/erec.h para erros detectados pelo adaptador:

Item Descrição
Comentário Um adaptador Fibre Channel adaptador-detectado erro.
Classe Um valor de H que indica um erro de hardware.
Relatório Um valor de True que indica esse erro deve ser incluído quando um relatório de erro é gerado.
Log Um valor de True que indica uma entrada de log de erro deve ser criado quando este erro ocorrer.
Alerta Um valor de FALSE que indica este erro não pode ser alertado.
Err_Type Um valor de PERM que indica uma falha permanente.
Err_Desc Um valor de 1331 que indica uma falha na unidade de fita.
Prob_Causas Os valores de 3300 que indicam falha do adaptador e um valor de 6314 que indica falha na unidade de fita.
User_Causes Nenhum.
User_Ações Um valor de 0000 que indica que procedimentos de determinação de problemas devem ser executados.
Inst_Causes Nenhum.
Inst_Ações Nenhum.
Fail_Causas Um valor de 3300 que indica falha do adaptador e um valor de 6314 que indica falha na unidade de fita.
Fail_Ações Um valor de 0000 que indica procedimentos de determinação de problemas deve ser realizado.

O campo Detail_Data contém o tipo de comando e o status do adaptador. Este campo está contido na estrutura err_rec que é definida pelo arquivo /usr/include/sys/err_rec.h . Informações de sentido de solicitação não estão disponíveis com este tipo de erro. A estrutura usbtape_err_rec descreve informações contidas no campo Detail_Data .

Valores de registro de erro para erros de limpeza da unidade de

Algumas fitas de fita retornam erros quando precisam de limpeza. Erros que ocorrem quando a unidade precisa de limpeza são agrupados sob esta classe.

Item Descrição
Comentário Indica que a unidade de fita precisa de limpeza.
Classe Um valor de H que indica um erro de hardware.
Relatório Um valor de True que indica esse erro deve ser incluído quando um relatório de erro é gerado.
Log Um valor de True que indica uma entrada de log de erro deve ser criado quando este erro ocorrer.
Alerta Um valor de FALSE que indica este erro não pode ser alertado.
Err_Type Um valor de TEMP que indica uma falha temporária.
Err_Desc Um valor de 1332 que indica um erro de operação de fita.
Prob_Causas Um valor de 6314 que indica que a causa provável é a unidade de fita.
User_Causes Um valor de 7401 que indica uma cabeça suja de leitura / gravação.
User_Ações Um valor de 0000 que indica que procedimentos de determinação de problemas devem ser executados.
Inst_Causes Nenhum.
Inst_Ações Nenhum.
Fail_Causas Um valor de 6314 que indica que a causa é a unidade de fita.
Fail_Ações Um valor de 0000 que indica procedimentos de determinação de problemas deve ser realizado.

O campo Detail_Data contém o tipo de comando e o status do adaptador, e também as informações de sentido de solicitação do dispositivo particular em erro. Este campo está contido na estrutura err_rec que é definida pelo arquivo /usr/include/sys/errids.h . A estrutura usbtape_err_rec descreve informações contidas no campo Detail_Data .

Erro de registro de valores para erros desconhecidos

Erros que ocorrem por razões desconhecidas são agrupados nesta classe. Erros de proteção de dados caem nessa classe. Esses erros, que são detectados pelo driver do dispositivo de fita, nunca são vistos na unidade de fita.

A estrutura err_hdr para erros desconhecidos descreve os seguintes campos:

Item Descrição
Comentário Um erro desconhecido de fita.
Classe Todas as classes de erro.
Relatório Um valor de True que indica esse erro deve ser incluído quando um relatório de erro é gerado.
Log Um valor de True que indica uma entrada de log de erro deve ser criado quando este erro ocorrer.
Alerta Um valor de FALSE que indica este erro não pode ser alertado.
Err_Type Um valor de UNKN que indica o tipo de erro é desconhecido.
Err_Desc Um valor de 0xFE00 que indica a descrição do erro é desconhecido.
Prob_Causas Especifica os seguintes valores:
  • 3300, que indica uma falha na unidade de fita
  • 5003, que indica uma falha de fita
  • 6314, que indica uma falha do adaptador
User_Causes Nenhum.
User_Ações Nenhum.
Inst_Causes Nenhum.
Inst_Ações Nenhum.
Fail_Causas Um valor de 0xFFFF que indica as causas para falha são desconhecidas.
Fail_Ações Um valor de 0000 que indica que procedimentos de determinação de problemas devem ser executados.

O campo Detail_Data contém o tipo de comando e o status do adaptador, e as informações de sentido de solicitação do dispositivo particular em erro. O campo Detail_Data está contido na estrutura err_rec . Este campo está contido no arquivo /usr/include/sys/errids.h . A estrutura usbtape_err_rec descreve informações que estão contidas no campo Detail_Data .

Consulte a especificação SCSI para o dispositivo aplicável para o formato das informações de solicitação de sentido específico.