8.4 win32 shared memory patch

Started by Kevin Fieldover 16 years ago13 messages
#1Kevin Field
kevinjamesfield@gmail.com

On Win2k3 Std SP2, the service won't start once I've applied the
patch. In the log, I get:

%t LOG: CreateProcess call failed: A blocking operation was
interrupted by a call to WSACancelBlockingCall.

(error code 2)
%t LOG: could not fork autovacuum worker process: A blocking
operation was interrupted by a call to WSACancelBlockingCall.

[ and then 47k worth of that whole message repeated, and then: ]

%t LOG: received fast shutdown request
%t LOG: aborting any active transactions
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t FATAL: terminating connection due to administrator command
%t LOG: autovacuum launcher shutting down
%t FATAL: terminating connection due to administrator command
%t LOG: shutting down
%t LOG: database system is shut down

(BTW, I noticed the %t everywhere in all of my 8.4 logs, whereas in my
8.3 logs there're actual timestamps instead. Bug?)

I put the old binary back and it works fine.

Cheers,
Kev

#2Kevin Field
kevinjamesfield@gmail.com
In reply to: Kevin Field (#1)
Re: 8.4 win32 shared memory patch

I put the old binary back and it works fine.

For the record, "fine" meaning I've never had the shared memory
problem.

Kev

#3Magnus Hagander
magnus@hagander.net
In reply to: Kevin Field (#1)
Re: 8.4 win32 shared memory patch

On Wed, Jul 29, 2009 at 19:52, Kevin Field<kevinjamesfield@gmail.com> wrote:

On Win2k3 Std SP2, the service won't start once I've applied the
patch.  In the log, I get:

%t LOG:  CreateProcess call failed: A blocking operation was
interrupted by a call to WSACancelBlockingCall.

Now, that's just strange :-O

First of all, the code from this patch hasn't even executed when that
error pops up... So it really shouldn't be that one. Second, that
error message just makes no sense in the context. However, the
"errorcode 2" makes a bit more sense - that's a file not found error.
It's still strange that it would show up, but it makes sense in the
context of CreateProcess(). Are you sure that there weren't any old
processes hanging around when you tried it? Would it be possible for
you to test by doing stop -> reboot -> replace file -> start and see
if the issue remains?

--
Magnus Hagander
Self: http://www.hagander.net/
Work: http://www.redpill-linpro.com/

#4Kevin Field
kevinjamesfield@gmail.com
In reply to: Magnus Hagander (#3)
Re: 8.4 win32 shared memory patch

On Wed, Jul 29, 2009 at 19:52, Kevin Field<kevinjamesfield@gmail.com>
wrote:

On Win2k3 Std SP2, the service won't start once I've applied the
patch.  In the log, I get:

%t LOG:  CreateProcess call failed: A blocking operation was
interrupted by a call to WSACancelBlockingCall.

Now, that's just strange :-O

First of all, the code from this patch hasn't even executed when that
error pops up... So it really shouldn't be that one. Second, that
error message just makes no sense in the context. However, the
"errorcode 2" makes a bit more sense - that's a file not found error.
It's still strange that it would show up, but it makes sense in the
context of CreateProcess(). Are you sure that there weren't any old
processes hanging around when you tried it? Would it be possible for
you to test by doing stop -> reboot -> replace file -> start and see
if the issue remains?

I did this last night as requested. This time, nothing about
CreateProcess, perhaps it's a separate issue. All the log said this
time was:

%t LOG: received fast shutdown request
%t LOG: aborting any active transactions
%t LOG: autovacuum launcher shutting down
%t LOG: shutting down
%t LOG: database system is shut down

That's the entire file. Attempting to start the service, I almost
immediately get an error 1067, the process terminated unexpectedly.

Kev

#5Magnus Hagander
magnus@hagander.net
In reply to: Kevin Field (#4)
Re: 8.4 win32 shared memory patch

On Fri, Jul 31, 2009 at 14:41, Kevin Field<kevinjamesfield@gmail.com> wrote:

On Wed, Jul 29, 2009 at 19:52, Kevin Field<kevinjamesfield@gmail.com>
wrote:

On Win2k3 Std SP2, the service won't start once I've applied the
patch.  In the log, I get:

%t LOG:  CreateProcess call failed: A blocking operation was
interrupted by a call to WSACancelBlockingCall.

Now, that's just strange :-O

First of all, the code from this patch hasn't even executed when that
error pops up... So it really shouldn't be that one. Second, that
error message just makes no sense in the context. However, the
"errorcode 2" makes a bit more sense - that's a file not found error.
It's still strange that it would show up, but it makes sense in the
context of CreateProcess(). Are you sure that there weren't any old
processes hanging around when you tried it? Would it be possible for
you to test by doing stop -> reboot -> replace file -> start and see
if the issue remains?

I did this last night as requested.  This time, nothing about
CreateProcess, perhaps it's a separate issue.  All the log said this
time was:

%t LOG:  received fast shutdown request
%t LOG:  aborting any active transactions
%t LOG:  autovacuum launcher shutting down
%t LOG:  shutting down
%t LOG:  database system is shut down

That's the entire file.  Attempting to start the service, I almost
immediately get an error 1067, the process terminated unexpectedly.

If there is nothing in the logfile (make sure you're looking at the
correct one - it may have created a new one), check the Windows
Eventlog. That's where we'll put data if the issues show up before we
have started the logger.

--
Magnus Hagander
Self: http://www.hagander.net/
Work: http://www.redpill-linpro.com/

#6Kevin Field
kevinjamesfield@gmail.com
In reply to: Magnus Hagander (#5)
Re: 8.4 win32 shared memory patch

%t LOG: received fast shutdown request
%t LOG: aborting any active transactions
%t LOG: autovacuum launcher shutting down
%t LOG: shutting down
%t LOG: database system is shut down

That's the entire file. Attempting to start the service, I
almost
immediately get an error 1067, the process terminated
unexpectedly.

If there is nothing in the logfile (make sure you're looking at
the
correct one - it may have created a new one), check the Windows
Eventlog. That's where we'll put data if the issues show up
before we
have started the logger.

The event viewer says:

The description for Event ID ( 0 ) in Source ( PostgreSQL ) cannot be
found. The local computer may not have the necessary registry
information or message DLL files to display messages from a remote
computer. You may be able to use the /AUXSOURCE= flag to retrieve this
description; see Help and Support for details. The following
information is part of the event: pg_ctl: could not find postgres
program executable

And yes, I renamed it correctly...

#7Magnus Hagander
magnus@hagander.net
In reply to: Kevin Field (#6)
Re: 8.4 win32 shared memory patch

On Fri, Jul 31, 2009 at 19:29, Kevin Field<kevinjamesfield@gmail.com> wrote:

    > %t LOG:  received fast shutdown request
    > %t LOG:  aborting any active transactions
    > %t LOG:  autovacuum launcher shutting down
    > %t LOG:  shutting down
    > %t LOG:  database system is shut down
    >
    > That's the entire file.  Attempting to start the service, I

almost

    > immediately get an error 1067, the process terminated

unexpectedly.

    If there is nothing in the logfile (make sure you're looking at
the
    correct one - it may have created a new one), check the Windows
    Eventlog. That's where we'll put data if the issues show up
before we
    have started the logger.

The event viewer says:

The description for Event ID ( 0 ) in Source ( PostgreSQL ) cannot be
found. The local computer may not have the necessary registry
information or message DLL files to display messages from a remote
computer. You may be able to use the /AUXSOURCE= flag to retrieve this
description; see Help and Support for details. The following
information is part of the event: pg_ctl: could not find postgres
program executable

And yes, I renamed it correctly...

Check permissions on it. If you moved it at some point, it may have
the wrong permissions. They should be the same as for the other .EXEs
in that directory.

--
Magnus Hagander
Self: http://www.hagander.net/
Work: http://www.redpill-linpro.com/

#8Kevin Field
kevinjamesfield@gmail.com
In reply to: Magnus Hagander (#7)
Re: 8.4 win32 shared memory patch

On Fri, Jul 31, 2009 at 19:29, Kevin Field<kevinjamesfield@gmail.com>
wrote:

    > %t LOG:  received fast shutdown request
    > %t LOG:  aborting any active transactions
    > %t LOG:  autovacuum launcher shutting down
    > %t LOG:  shutting down
    > %t LOG:  database system is shut down
    >
    > That's the entire file.  Attempting to start the service, I

almost

    > immediately get an error 1067, the process terminated

unexpectedly.

    If there is nothing in the logfile (make sure you're looking
at
the
    correct one - it may have created a new one), check the
Windows
    Eventlog. That's where we'll put data if the issues show up
before we
    have started the logger.

The event viewer says:

The description for Event ID ( 0 ) in Source ( PostgreSQL ) cannot
be
found. The local computer may not have the necessary registry
information or message DLL files to display messages from a remote
computer. You may be able to use the /AUXSOURCE= flag to retrieve
this
description; see Help and Support for details. The following
information is part of the event: pg_ctl: could not find postgres
program executable

And yes, I renamed it correctly...

Check permissions on it. If you moved it at some point, it may have
the wrong permissions. They should be the same as for the other .EXEs
in that directory.

The two files (new and old exe) have identical permissions.

#9Magnus Hagander
magnus@hagander.net
In reply to: Kevin Field (#8)
Re: 8.4 win32 shared memory patch

On Sat, Aug 1, 2009 at 20:30, Kevin Field<kevinjamesfield@gmail.com> wrote:

The event viewer says:

The description for Event ID ( 0 ) in Source ( PostgreSQL ) cannot
be
found. The local computer may not have the necessary registry
information or message DLL files to display messages from a remote
computer. You may be able to use the /AUXSOURCE= flag to retrieve
this
description; see Help and Support for details. The following
information is part of the event: pg_ctl: could not find postgres
program executable

And yes, I renamed it correctly...

Check permissions on it. If you moved it at some point, it may have
the wrong permissions. They should be the same as for the other .EXEs
in that directory.

The two files (new and old exe) have identical permissions.

That's just weird. It could be that the postgres executable won't work
- maybe because of some DLL issue. Can you run "postgres -V" on the
executable, or does that give you some error?

--
Magnus Hagander
Self: http://www.hagander.net/
Work: http://www.redpill-linpro.com/

#10Kevin Field
kevinjamesfield@gmail.com
In reply to: Magnus Hagander (#9)
Re: 8.4 win32 shared memory patch

On Sat, Aug 1, 2009 at 20:30, Kevin Field<kevinjamesfield@gmail.com>
wrote:

The event viewer says:

The description for Event ID ( 0 ) in Source ( PostgreSQL )
cannot
be
found. The local computer may not have the necessary registry
information or message DLL files to display messages from a
remote
computer. You may be able to use the /AUXSOURCE= flag to
retrieve
this
description; see Help and Support for details. The following
information is part of the event: pg_ctl: could not find
postgres
program executable

And yes, I renamed it correctly...

Check permissions on it. If you moved it at some point, it may
have
the wrong permissions. They should be the same as for the other
.EXEs
in that directory.

The two files (new and old exe) have identical permissions.

That's just weird. It could be that the postgres executable won't
work
- maybe because of some DLL issue. Can you run "postgres -V" on the
executable, or does that give you some error?

It reports the version correctly. Sorry...any other ideas?

#11Magnus Hagander
magnus@hagander.net
In reply to: Kevin Field (#10)
Re: 8.4 win32 shared memory patch

On Tue, Aug 4, 2009 at 19:13, Kevin Field<kevinjamesfield@gmail.com> wrote:

On Sat, Aug 1, 2009 at 20:30, Kevin Field<kevinjamesfield@gmail.com>
wrote:

The event viewer says:

The description for Event ID ( 0 ) in Source ( PostgreSQL )
cannot
be
found. The local computer may not have the necessary registry
information or message DLL files to display messages from a
remote
computer. You may be able to use the /AUXSOURCE= flag to
retrieve
this
description; see Help and Support for details. The following
information is part of the event: pg_ctl: could not find
postgres
program executable

And yes, I renamed it correctly...

Check permissions on it. If you moved it at some point, it may
have
the wrong permissions. They should be the same as for the other
.EXEs
in that directory.

The two files (new and old exe) have identical permissions.

That's just weird. It could be that the postgres executable won't
work
- maybe because of some DLL issue. Can you run "postgres -V" on the
executable, or does that give you some error?

It reports the version correctly.  Sorry...any other ideas?

Irrk. I think it's time to break out Process Monitor
(http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) and
get a trace of exactly what call is failing, and how.

--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/

#12Magnus Hagander
magnus@hagander.net
In reply to: Kevin Field (#10)
Re: 8.4 win32 shared memory patch

On Tue, Aug 4, 2009 at 19:13, Kevin Field<kevinjamesfield@gmail.com> wrote:

On Sat, Aug 1, 2009 at 20:30, Kevin Field<kevinjamesfield@gmail.com>
wrote:

The event viewer says:

The description for Event ID ( 0 ) in Source ( PostgreSQL )
cannot
be
found. The local computer may not have the necessary registry
information or message DLL files to display messages from a
remote
computer. You may be able to use the /AUXSOURCE= flag to
retrieve
this
description; see Help and Support for details. The following
information is part of the event: pg_ctl: could not find
postgres
program executable

And yes, I renamed it correctly...

Check permissions on it. If you moved it at some point, it may
have
the wrong permissions. They should be the same as for the other
.EXEs
in that directory.

The two files (new and old exe) have identical permissions.

That's just weird. It could be that the postgres executable won't
work
- maybe because of some DLL issue. Can you run "postgres -V" on the
executable, or does that give you some error?

It reports the version correctly.  Sorry...any other ideas?

For the archives: I worked off-list with Kevin and we noticed that the
issue was that the *old* version was 8.0rc1, thus pg_ctl was looking
for 8.0rc1. Upgrading to 8.0 first and then applying the new
postgres.exe binary appears to have worked.

--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/

#13Magnus Hagander
magnus@hagander.net
In reply to: Magnus Hagander (#12)
Re: 8.4 win32 shared memory patch

On Thu, Aug 6, 2009 at 09:25, Magnus Hagander<magnus@hagander.net> wrote:

On Tue, Aug 4, 2009 at 19:13, Kevin Field<kevinjamesfield@gmail.com> wrote:

On Sat, Aug 1, 2009 at 20:30, Kevin Field<kevinjamesfield@gmail.com>
wrote:

The event viewer says:

The description for Event ID ( 0 ) in Source ( PostgreSQL )
cannot
be
found. The local computer may not have the necessary registry
information or message DLL files to display messages from a
remote
computer. You may be able to use the /AUXSOURCE= flag to
retrieve
this
description; see Help and Support for details. The following
information is part of the event: pg_ctl: could not find
postgres
program executable

And yes, I renamed it correctly...

Check permissions on it. If you moved it at some point, it may
have
the wrong permissions. They should be the same as for the other
.EXEs
in that directory.

The two files (new and old exe) have identical permissions.

That's just weird. It could be that the postgres executable won't
work
- maybe because of some DLL issue. Can you run "postgres -V" on the
executable, or does that give you some error?

It reports the version correctly.  Sorry...any other ideas?

For the archives: I worked off-list with Kevin and we noticed that the
issue was that the *old* version was 8.0rc1, thus pg_ctl was looking
for 8.0rc1. Upgrading to 8.0 first and then applying the new
postgres.exe binary appears to have worked.

Clearly I'm not awake yet. That's obviously 8.4rc1 and 8.4.0.

--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/