Crash of Postgresql on Windows
Hello,
I am sending this email since I am hitting a snag with postgresql. I
am currently running the following version of postgresql:
Postgresql 8.3.5 on Windows XP Pro 32bits
I am getting a crash whenever I try to perform an update on some rows.
More precisely, I have recently imported a dataset and managed to work
through it easily. However, when performing one update I am getting
the following error:
GMT PANIC: could not write to log file 40, segment 44 at offset
8929280, length 1744896: Invalid argument
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
2009-02-04 12:02:34 GMT LOG: WAL writer process (PID 2916) exited
with exit code 3
2009-02-04 12:02:34 GMT LOG: terminating any other active server processes
2009-02-04 12:02:34 GMT WARNING: terminating connection because of
crash of another server process
2009-02-04 12:02:34 GMT 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.
2009-02-04 12:02:34 GMT HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2009-02-04 12:02:34 GMT WARNING: terminating connection because of
crash of another server process
2009-02-04 12:02:34 GMT 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.
2009-02-04 12:02:34 GMT HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2009-02-04 12:02:34 GMT WARNING: terminating connection because of
crash of another server process
2009-02-04 12:02:34 GMT 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.
2009-02-04 12:02:34 GMT HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2009-02-04 12:02:34 GMT LOG: all server processes terminated; reinitializing
2009-02-04 12:02:35 GMT FATAL: pre-existing shared memory block is still in use
2009-02-04 12:02:35 GMT HINT: Check if there are any old server
processes still running, and terminate them.
I am a bit lost on what to do next. I have tried running the query
several times even changing the parameters to make sure if it wasn't
something in the sql.
UPDATE gtable AS g
SET code = '00' -- 04
WHERE g.code = '04'
AND g.cc = 'TW';
UPDATE gtable AS g
SET code = '00' -- 04
WHERE g.d IN (6724652, 1673813);
Those two queries do exactly the same thing but they both crash with
the same information, except for the length between the two queries.
What should I do?
Emilie Laffray
On Wed, Feb 4, 2009 at 6:18 AM, Emilie Laffray <emilie.laffray@gmail.com>wrote:
Hello,
I am sending this email since I am hitting a snag with postgresql. I
am currently running the following version of postgresql:
Postgresql 8.3.5 on Windows XP Pro 32bitsI am getting a crash whenever I try to perform an update on some rows.
More precisely, I have recently imported a dataset and managed to work
through it easily. However, when performing one update I am getting
the following error:GMT PANIC: could not write to log file 40, segment 44 at offset
8929280, length 1744896: Invalid argument
This application has requested the Runtime to terminate it in an unusual
way.
Please contact the application's support team for more information.
2009-02-04 12:02:34 GMT LOG: WAL writer process (PID 2916) exited
with exit code 3
2009-02-04 12:02:34 GMT LOG: terminating any other active server processes
2009-02-04 12:02:34 GMT WARNING: terminating connection because of
crash of another server process
2009-02-04 12:02:34 GMT 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.
2009-02-04 12:02:34 GMT HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2009-02-04 12:02:34 GMT WARNING: terminating connection because of
crash of another server process
2009-02-04 12:02:34 GMT 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.
2009-02-04 12:02:34 GMT HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2009-02-04 12:02:34 GMT WARNING: terminating connection because of
crash of another server process
2009-02-04 12:02:34 GMT 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.
2009-02-04 12:02:34 GMT HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2009-02-04 12:02:34 GMT LOG: all server processes terminated;
reinitializing
2009-02-04 12:02:35 GMT FATAL: pre-existing shared memory block is still
in use
2009-02-04 12:02:35 GMT HINT: Check if there are any old server
processes still running, and terminate them.I am a bit lost on what to do next. I have tried running the query
several times even changing the parameters to make sure if it wasn't
something in the sql.
UPDATE gtable AS g
SET code = '00' -- 04
WHERE g.code = '04'
AND g.cc = 'TW';UPDATE gtable AS g
SET code = '00' -- 04
WHERE g.d IN (6724652, 1673813);Those two queries do exactly the same thing but they both crash with
the same information, except for the length between the two queries.
What should I do?Emilie Laffray
What does '--' do?
Thanks,
Andrew
Andrew Gould wrote:
What does '--' do?
-- Is an SQL comment
--
Tommy Gildseth
DBA, Gruppe for databasedrift
Universitetet i Oslo, USIT
m: +47 45 86 38 50
t: +47 22 85 29 39
Andrew Gould wrote:
On Wed, Feb 4, 2009 at 6:18 AM, Emilie Laffray <emilie.laffray@gmail.com>wrote:
UPDATE gtable AS g
SET code = '00' -- 04
WHERE g.code = '04'
AND g.cc = 'TW';
What does '--' do?
It's a comment delimeter
--
Richard Huxton
Archonet Ltd
Emilie Laffray wrote:
Hello,
I am sending this email since I am hitting a snag with postgresql. I
am currently running the following version of postgresql:
Postgresql 8.3.5 on Windows XP Pro 32bitsI am getting a crash whenever I try to perform an update on some rows.
More precisely, I have recently imported a dataset and managed to work
through it easily. However, when performing one update I am getting
the following error:GMT PANIC: could not write to log file 40, segment 44 at offset
8929280, length 1744896: Invalid argument
1. Can you run any other queries
a. A SELECT
b. A different UPDATE
2. Do you have any reason to think the filesystem may have become corrupted?
3. Do you have an antivirus scanner that might be interfering with
PostgreSQL? That frequently causes strange problems.
--
Richard Huxton
Archonet Ltd
Hello,
1) I can perform a query on the rows that I am trying to update. I have
also successfully updated rows before in the same table and also after.
2) I have no reason to believe that the filesystem got corrupted. I have
started a scan before you asked the question wondering if it could be
the problem. So far, no problem has been found.
3) I have an antivirus running, but again this antivirus has been
running for months and I have worked on postgresql also for months.
There has been an update yesterday to that antivirus, but I don't think
it had an impact.
4) The disk space is not a problem with more than 160GB free.
I tried also in the meantime to run a vacuum, and I got some messages
that the indexes had a problem and it was working to fix it. It crashed.
I restarted my pc and could perform the vacuum just fine afterwards.
Richard Huxton wrote:
Show quoted text
Emilie Laffray wrote:
Hello,
I am sending this email since I am hitting a snag with postgresql. I
am currently running the following version of postgresql:
Postgresql 8.3.5 on Windows XP Pro 32bitsI am getting a crash whenever I try to perform an update on some rows.
More precisely, I have recently imported a dataset and managed to work
through it easily. However, when performing one update I am getting
the following error:GMT PANIC: could not write to log file 40, segment 44 at offset
8929280, length 1744896: Invalid argument1. Can you run any other queries
a. A SELECT
b. A different UPDATE2. Do you have any reason to think the filesystem may have become corrupted?
3. Do you have an antivirus scanner that might be interfering with
PostgreSQL? That frequently causes strange problems.
Emilie Laffray wrote:
3) I have an antivirus running, but again this antivirus has been
running for months and I have worked on postgresql also for months.
There has been an update yesterday to that antivirus, but I don't think
it had an impact.
I tried also in the meantime to run a vacuum, and I got some messages
that the indexes had a problem and it was working to fix it. It crashed.
I restarted my pc and could perform the vacuum just fine afterwards.
I don't run PG on Windows other than to test, but this definitely sounds
like antivirus problems to me. They're quite sophisticated nowadays and
it might be that it takes a certain pattern of activity to trigger it.
Try (1) turning your antivirus off and running the update and if that
works, (2) excluding all the data directories and PostgreSQL from it's
checking.
--
Richard Huxton
Archonet Ltd
Hello,
well Icouldn't turn off my antivirus since it is controlled by our IT
management team. However, since I rebuilt the indexes, the query has
been running fine. I don't understand what happpened. Before asking for
help, I made sure I could repeat the problem over several reboots.
Emilie Laffray
Richard Huxton wrote:
Show quoted text
Emilie Laffray wrote:
3) I have an antivirus running, but again this antivirus has been
running for months and I have worked on postgresql also for months.
There has been an update yesterday to that antivirus, but I don't think
it had an impact.I tried also in the meantime to run a vacuum, and I got some messages
that the indexes had a problem and it was working to fix it. It crashed.
I restarted my pc and could perform the vacuum just fine afterwards.I don't run PG on Windows other than to test, but this definitely sounds
like antivirus problems to me. They're quite sophisticated nowadays and
it might be that it takes a certain pattern of activity to trigger it.Try (1) turning your antivirus off and running the update and if that
works, (2) excluding all the data directories and PostgreSQL from it's
checking.
Emilie Laffray wrote:
Hello,
well Icouldn't turn off my antivirus since it is controlled by our IT
management team. However, since I rebuilt the indexes, the query has
been running fine. I don't understand what happpened. Before asking for
help, I made sure I could repeat the problem over several reboots.
It's not impossible you have found a bug in PostgreSQL's code. However,
I can't think of a situation where rebuilding an index would fail once
then work fine after a reboot. Not if your hardware is working OK.
I would contact your IT team and ask them to add an exclusion for your
PostgreSQL directories though. Otherwise you'll never be sure what is
causing any crashes.
--
Richard Huxton
Archonet Ltd