Thread: 8.4 win32 shared memory patch

8.4 win32 shared memory patch

From
Kevin Field
Date:
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


Re: 8.4 win32 shared memory patch

From
Kevin Field
Date:
> I put the old binary back and it works fine.

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

Kev


Re: 8.4 win32 shared memory patch

From
Magnus Hagander
Date:
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 HaganderSelf: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: 8.4 win32 shared memory patch

From
Magnus Hagander
Date:
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 HaganderSelf: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: 8.4 win32 shared memory patch

From
Magnus Hagander
Date:
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 HaganderSelf: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: 8.4 win32 shared memory patch

From
"Kevin Field"
Date:
> 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


Re: 8.4 win32 shared memory patch

From
"Kevin Field"
Date:
>     > %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...


Re: 8.4 win32 shared memory patch

From
"Kevin Field"
Date:
> 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.


Re: 8.4 win32 shared memory patch

From
Magnus Hagander
Date:
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 HaganderSelf: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: 8.4 win32 shared memory patch

From
"Kevin Field"
Date:
> 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?


Re: 8.4 win32 shared memory patch

From
Magnus Hagander
Date:
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 HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: 8.4 win32 shared memory patch

From
Magnus Hagander
Date:
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 HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/


Re: 8.4 win32 shared memory patch

From
Magnus Hagander
Date:
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 HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/