Обсуждение: "Permission denied" failures occurring on Windows

Поиск
Список
Период
Сортировка

"Permission denied" failures occurring on Windows

От
"Zubkovsky, Sergey"
Дата:
Hello.

=20

In spite of the fact that as it was outlined in the "change log" to Postgre=
SQL 8.2.2, the bug of the periodical "permission denied" error occurrence w=
as fixed:

=20

=9A "Fix bogus "permission denied" failures occurring on Windows due to att=
empts to fsync already-deleted files (Magnus, Tom)"

=20

I still can observe such erroneous behavior in the latest release of Postgr=
eSQL:

=20

=9A select version();

=9A "PostgreSQL 8.2.3 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4=
.2 (mingw-special)"

=9A

Typical error message is the following:

=9A 2007-03-16 22:21:08 ERROR:=9A could not open relation 16405/16406/2609:=
 Permission denied

=20

It seems that it occurs when DDL operator is performed.

This error occurs irrespective of option "fsync" value, though it seems tha=
t if "fsync=3Doff" than the frequency error occurrence is less a little bit=
 comparing to "fsync=3Don" case.

=9A

All other parameters in file postgresql.conf were not changed.

I have made a "clean" install of the latest release of PostgreSQL.

OS: Windows XP Pro SP2

=9A

As I can suppose, the problem which was discussed in the "[HACKERS] Idea fo=
r fixing the Windows fsync problem" has not been fixed yet.

=20

Here are some typical error messages in files pg_log/*:

=20

---------------------------------------------------------------------------=
----------------------------------

2007-03-19 18:57:22 LOG:=9A could not open temporary statistics file

"global/pgstat.tmp": Permission denied

2007-03-19 18:58:28 NOTICE:=9A Table does not exist:

part_MsgRoot_(2000-01-01 01:00)

2007-03-19 18:58:28 CONTEXT:=9A SQL statement "SELECT "andbDoPrepareView_sp=
"(=9A $1 ,=9A $2 ,=9A $3=9A )"

=9A

---------------------------------------------------------------------------=
----------------------------------

2007-03-19 19:08:39 ERROR:=9A could not open relation 16405/16406/21745:

Permission denied

2007-03-19 19:08:39 CONTEXT:=9A SQL statement "

=9A=9A=9A CREATE UNIQUE=9A INDEX "part_MsgPos2_(2007-01-01 02:00)_UTC_UID" =
ON

"part_MsgPos2_(2007-01-01 02:00)"

=9A=9A=9A (

=9A=9A=9A=9A=9A=9A=9A "UTC",

=9A=9A=9A=9A=9A=9A=9A "UID"

=9A=9A=9A );

=9A=9A=9A "

=9A=9A=9A PL/pgSQL function "andbCreatePartitionsForGroup_sp" line 32 at ex=
ecute statement

=9A

---------------------------------------------------------------------------=
----------------------------------

2007-03-19 19:25:54 ERROR:=9A could not open relation 16405/16406/22479:

Permission denied

2007-03-19 19:25:54 CONTEXT:=9A SQL statement "ALTER TABLE

"part_MsgRoot_(2007-01-01 03:00)" ADD CHECK( "UTC" >=3D '2007-01-01 03:00:0=
0' and "UTC" < '2007-01-01 04:00:00' )"

=9A

---------------------------------------------------------------------------=
----------------------------------

2007-03-19 19:25:56 ERROR:=9A could not open relation 16405/16406/22603:

Permission denied

2007-03-19 19:25:56 CONTEXT:=9A SQL statement "

=9A=9A=9A CREATE UNIQUE=9A INDEX "part_MsgOther2_(2007-01-01 03:00)_UTC_UID=
" ON

"part_MsgOther2_(2007-01-01 03:00)"

=9A=9A=9A (

=9A=9A=9A=9A=9A=9A=9A "UTC",

=9A=9A=9A=9A=9A=9A=9A "UID"

=9A=9A=9A );

=9A=9A=9A "

=9A=9A=9A PL/pgSQL function "andbCreatePartitionsForGroup_sp" line 32 at ex=
ecute statement

=9A

---------------------------------------------------------------------------=
----------------------------------

2007-03-20 17:21:46 ERROR:=9A could not open relation 16405/16406/26881:

Permission denied

2007-03-20 17:21:46 CONTEXT:=9A SQL statement "ALTER TABLE "Billing" ADD CH=
ECK( "UTC" IS NULL )"

=9A=9A=9A PL/pgSQL function "andbRegisterPartitionedTable_sp" line 6 at exe=
cute statement

=9A

---------------------------------------------------------------------------=
----------------------------------

=20

Regards

Sergey Zubkovsky

Re: "Permission denied" failures occurring on Windows

От
Magnus Hagander
Дата:
Zubkovsky, Sergey wrote:
> Hello.
>
>
>
> In spite of the fact that as it was outlined in the "change log" to
> PostgreSQL 8.2.2, the bug of the periodical "permission denied" error
> occurrence was fixed:
>
>
>
>   “Fix bogus "permission denied" failures occurring on Windows due to
> attempts to fsync already-deleted files (Magnus, Tom)”
>
>
>
> I still can observe such erroneous behavior in the latest release of
> PostgreSQL:
>
>
>
>   select version();
>
>   "PostgreSQL 8.2.3 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC)
> 3.4.2 (mingw-special)"
>
>
>
> Typical error message is the following:
>
>   2007-03-16 22:21:08 ERROR:  could not open relation 16405/16406/2609:
> Permission denied
>

The obvious question before we even think about anything else - any
antivirus, antispyware or any other third party software on the machine
that may be using a filter driver?

//Magnus

Re: "Permission denied" failures occurring on Windows

От
Dave Page
Дата:
Magnus Hagander wrote:
>
> The obvious question before we even think about anything else - any
> antivirus, antispyware or any other third party software on the machine
> that may be using a filter driver?

Any idea how easy would it be to log the installed filter drivers at
startup? If we can gather more info over the long term we could get a
better idea of what products have iffy drivers.

Regards Dave

Re: "Permission denied" failures occurring on Windows

От
Magnus Hagander
Дата:
On Wed, Mar 28, 2007 at 08:36:15AM +0100, Dave Page wrote:
> Magnus Hagander wrote:
> >
> > The obvious question before we even think about anything else - any
> > antivirus, antispyware or any other third party software on the machine
> > that may be using a filter driver?
>
> Any idea how easy would it be to log the installed filter drivers at
> startup? If we can gather more info over the long term we could get a
> better idea of what products have iffy drivers.

Seems not to be entirely easy. There are functions to do it in the DDK
(IoEnumerateRegisteredFiltersList() and FltEnumerateFilters()), but those
are kernel level functions.

Check this thread, for example:

http://groups.google.se/group/microsoft.public.development.device.drivers/browse_frm/thread/9affce7b16730526/7b8ab594d408da8e?lnk=st&q=enumerate+filter+drivers&rnum=2&hl=en#7b8ab594d408da8e

IRIC they should be in the registry under CurrentControlSet, but I'm unsure
if you can actually find out which are filter drivers from there.

//Magnus

Re: "Permission denied" failures occurring on Windows

От
"Zubkovsky, Sergey"
Дата:
It was Kaspersky antivirus with its on-fly "*:KAVICHS" NTFS-streams.

Thanks.

-----Original Message-----
From: Dave Page [mailto:dpage@postgresql.org]=20
Sent: Wednesday, March 28, 2007 11:36 AM
To: Magnus Hagander
Cc: Zubkovsky, Sergey; pgsql-bugs@postgresql.org
Subject: Re: [BUGS] "Permission denied" failures occurring on Windows

Magnus Hagander wrote:
>=20
> The obvious question before we even think about anything else - any
> antivirus, antispyware or any other third party software on the
machine
> that may be using a filter driver?

Any idea how easy would it be to log the installed filter drivers at
startup? If we can gather more info over the long term we could get a
better idea of what products have iffy drivers.

Regards Dave