Caros, Estou criando uma extensão para nosso grande banco de dados, Postgres, mas estou tendo problemas.
Na verdade ela ja´está pronta e funciona perfeitamente no linux (ubuntu + postgres). O problema é que quando fui gerar a versão para Rwindows está dando erro de acesso violado. O código é exatamente o mesmo, sem alterar uma linha que seja. Compila sem problemas, mas na hora de executar junto com o postgres dá erro! Estou usando o postgres 8.3.9; Rwindows XP SP3; Eclipse + MinGW 5.1.6 (compilador). Eis os log: No eclipse (compilação sem problemas): **** Rebuild of configuration Release for project postmind **** **** Internal Builder is used for build **** gcc -IC:\pgSQL\include -IC:\Arquivos de programas\GnuWin32\include -IC:\pgSQL\include\server -IC:\pgSQL\include\server\port\win32 -O3 -Wall -c -fmessage-length=0 -osrc\mind\geneticalMind.o ..\src\mind\geneticalMind.c gcc -IC:\pgSQL\include -IC:\Arquivos de programas\GnuWin32\include -IC:\pgSQL\include\server -IC:\pgSQL\include\server\port\win32 -O3 -Wall -c -fmessage-length=0 -osrc\genesis\allocator\allocator.o ..\src\genesis\allocator\allocator.c gcc -IC:\pgSQL\include -IC:\Arquivos de programas\GnuWin32\include -IC:\pgSQL\include\server -IC:\pgSQL\include\server\port\win32 -O3 -Wall -c -fmessage-length=0 -osrc\genesis\darvin.o ..\src\genesis\darvin.c gcc -LC:\pgSQL\lib -shared -olibpostmind.dll src\mind\geneticalMind.o src\genesis\darvin.o src\genesis\allocator\allocator.o -lpostgres Build complete for project postmind Time consumed: 984 ms. Ao executar a função via postgres dá erro: LOG: processo servidor (PID 10100) foi terminado pela exceção 0xC0000005 DICA: Veja o arquivo de cabeçalho C "ntstatus.h" para obter uma descrição do valor hexadecimal. LOG: terminando quaisquer outros processos servidor ativos WARNING: terminating connection because of crash of another server process DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. HINT: In a moment you should be able to reconnect to the database and repeat your command. WARNING: terminating connection because of crash of another server process DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. HINT: In a moment you should be able to reconnect to the database and repeat your command. LOG: todos os processos servidor foram terminados; reinicializando LOG: database system was interrupted; last known up at 2010-01-21 13:56:05 GMT LOG: database system was not properly shut down; automatic recovery in progress LOG: redo starts at 0/818522C0 LOG: record with zero length at 0/81859A18 LOG: redo done at 0/818599E8 LOG: last completed transaction was at log time 2010-01-21 18:31:27.582+00 LOG: autovacuum launcher started LOG: sistema de banco de dados está pronto para aceitar conexões ------------------- 0xC0000005 é erro de acesso violado, como se houvesse uma tentativa de acessar um ponteiro nulo. Certamente o código da função está correto, pois funciona no ubuntu, esse erro só acontece no windows e em tempo de execução. Minhas suspeitas: 1 - No ubuntu, a instalação do postgres foi feita via código fonte, baixado, compilado e instalado, com isso ao compilar minha extensão no ubuntu "eles se entendem melhor"; 2 - No windows a versão foi baixada com os binários (apenas executáveis sem instalação). Em tese isso não era pra ser problema. 3 - Gerenciamento de memória ridículo no Rwindows!!! Essa é certeza!!! Alguém já passou por isso ou tem alguma dica. Grato. _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
