Open Andrei5223 opened 7 months ago
Após a reprodução do bug descrito, pode-se reproduzir mais um bug de alocação de memória. Entre novamente no BD e acesse o banco 'banco'. Nos meus testes o banco e a relação 'funcionario' foi criada mesmo após o erro. Execute o código abaixo (copie e cole):
insert into Funcionario values (2158750,'fLucas',20,'Xanxere',2537.00); insert into Funcionario values (2158751,'fRafael',23,'Chapeco',1537.00);
Deverá ocorrer novamente um BUG de alocação de memória: free(): invalid pointer Aborted (core dumped)
Suspeitei que o erro causou uma criação falha da relação 'funcionario', o que poderia ter causado a segunda falha, porém, essa teoria não está correta. Após a reprodução do bug inicial (criação de tabela), acessei o banco novamente, exclui a relação funcionário e criei novamente, dessa vez não ouve erro na criação. Porém, ao executar os dois INSERT descritos acima, a falha de inserção persistiu. Essa explicação pode ser reproduzida com a execução do código abaixo, se executada imediamente ao acessar o banco após a reprodução do bug causado pela criação da tabela.
\c banco drop table funcionario; create table Funcionario ( rg integer primary key, nome varchar(30), idade integer, cidade varchar(30), salario double); insert into Funcionario values (2158750,'fLucas',20,'Xanxere',2537.00); insert into Funcionario values (2158751,'fRafael',23,'Chapeco',1537.00);
O bug consiste numa falha de alocação de memória: free(): invalid pointer Aborted (core dumped) Para a reprodução desse bug, garanta que a pasta 'Data' esteja vazia ou inexistente. A pasta 'Data' é criada na primeira inicialização do BD, portanto, a ausência dela garante um estado inicial consistente. Execute o código abaixo (copie e cole):
create database banco; \c banco create table Funcionario ( rg integer primary key, nome varchar(30), idade integer, cidade varchar(30), salario double);