Problema:

Thu Oct 11 16:02:44 2012
Errors in file /u01/app/oracle/admin/servicos/udump/servicos1_ora_27845.trc:
ORA-00600: internal error code, arguments: [ktfbtgex-7], [1015817], [1024], [1015816], [], [], [], []

Dados adicionais:
#Database UP:
-RedHat 5.6 x86_64
-Oracle 10.2.0.4 64bit
#Aplicação UP – mas ao inserir em uma tabela mostrava o ORA-00600 na tela pro usuário.

Solução:

Segundo a nota ID 178643.1:

“O problema pode ocorrer se o final de um datafile fica no final de um bloco bitmap.
Neste caso, o campo de “primeiro bit livre” pode ficar avançado após o final do arquivo de dados.”
<tradução livre>

Fix: Migrar para 11.x.x.x

Fix é migrar Larry? Tá de sacanagem né? O.o

Workaround que imaginei (não consta na doc e é algo simples… tsc tsc tsc):

1) Criação de nova tablespace para a tabela e outra para os seus indexes;
2) Move da tabela para nova tablespace e rebuild de cada index para a nova tablespace;

16:14:20 banco1> create tablespace aplicacao_data01
16:14:20   2 datafile
16:14:20   3 '+DATA4/banco/datafile/aplicacao_data01.dbf' size 5000m autoextend on next 500m maxsize 10000m
16:14:21   4 /

Tablespace criado.

Decorrido: 00:00:32.55

16:17:28 banco1> create tablespace aplicacao_index01
16:17:28   2 datafile
16:17:28   3 '+DATA4/banco/datafile/aplicacao_index01.dbf' size 7000m autoextend on next 500m maxsize 10000m;

Tablespace criado.

Decorrido: 00:00:45.39
16:18:13 banco1>     
16:18:23 banco1> alter table aplicacao.TABELA_COM_PROBLEMA move nologging tablespace aplicacao_data01;

Tabela alterada.

16:18:33 banco1>select 'alter index aplicacao.'||index_name||' rebuild nologging tablespace aplicacao_index01;'
16:19:53   2        from dba_indexes
16:19:58   3        where owner = 'APLICACAO'
16:20:04   4        and table_name = 'TABELA_COM_PROBLEMA';

'ALTERINDEXaplicacao.'||INDEX_NAME||'REBUILDNOLOGGINGTABLESPACEaplicacao_INDEX01;'
--------------------------------------------------------------------------------------------
alter index aplicacao.INDEX1 rebuild nologging tablespace aplicacao_index01;
alter index aplicacao.INDEX2 rebuild nologging tablespace aplicacao_index01;
alter index aplicacao.INDEX3 rebuild nologging tablespace aplicacao_index01;
alter index aplicacao.INDEX4 rebuild nologging tablespace aplicacao_index01;
alter index aplicacao.INDEX5 rebuild nologging tablespace aplicacao_index01;
alter index aplicacao.INDEX6 rebuild nologging tablespace aplicacao_index01;
alter index aplicacao.INDEX7 rebuild nologging tablespace aplicacao_index01;
alter index aplicacao.INDEX8 rebuild nologging tablespace aplicacao_index01;

8 linhas selecionadas.

Houveram vários locks durante o rebuild dos indexes mas por fim todos ficaram ok.
Após o rebuild conseguimos realizar o insert:

Decorrido: 00:00:00.06
16:45:47 banco1>INSERT INTO aplicacao.TABELA_COM_PROBLEMA(CAMPO1, CAMPO2...) VALUES   (1970014...
16:45:55   2  ;

1 linha criada.

Decorrido: 00:00:00.17
16:45:56 banco1>roll
Rollback concluído.

Nome do banco, aplicação, tabela e index alterados. Aplicação OK, cliente satisfeito e a trilha sonora no fone de ouvido era essa:

Att
Vitor Jr.