При включенном антивирусе может возникать ошибка доступа к базе данных Postgres (да и вообще общая деградация производительности). Интересный фикс предложили авторы системы:
https://projects.commandprompt.com/public/pgsql/changeset/29853
И привожу текст, на случай если ссылка побъется:
while ((h = CreateFile(fileName,
75 80 /* cannot use O_RDONLY, as it == 0 */
76 81 (fileFlags & O_RDWR) ? (GENERIC_WRITE | GENERIC_READ) :
… …
89 94 NULL)) == INVALID_HANDLE_VALUE)
90 95 {
91 _dosmaperr(GetLastError());
96 /*
97 * Sharing violation or locking error can indicate antivirus, backup
98 * or similar software that's locking the file. Try again for 30 seconds
99 * before giving up.
100 */
101 DWORD err = GetLastError();
102 if (err == ERROR_SHARING_VIOLATION ||
103 err == ERROR_LOCK_VIOLATION)
104 {
105 pg_usleep(100000);
106 loops++;
107
108 #ifndef FRONTEND
109 if (loops == 50)
110 ereport(LOG,
111 (errmsg("could not open file \"%s\": %s", fileName,
112 (err == ERROR_SHARING_VIOLATION)?_("sharing violation"):_("lock violation")),
113 errdetail("Continuing to retry for 30 seconds."),
114 errhint("You may have antivirus, backup or similar software interfering with the database.")));
115 #endif
116
117 if (loops < 300)
118 continue;
119 }
120
121 _dosmaperr(err);
92 122 return -1;
93 123 }
Да, забыл добавить, характерный текст ошибки: ERROR: could not open relation 1663/856689/856777: Invalid argument
Ну и в чем здесь ошибка PostgreSQL ?
Известный факт, что антивирусы и файерволы мешают работать, при диагностировании проблем, первый совет - отключить их.
Давайте договоримся о терминах:
Баг (англ.bug - жук) - жаргонное слово, обозначающее ошибку в программе. (http://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B3)
Теперь заголовок топика по-русски:
"Забавная ошибка в программе PostgreSQL"
Я думаю, что правильно было бы
"Антивирус под Windows мешает работе PostgreSQL"
А так, как написали вы, у людей, не читающих топик, но просматривающих форум,
перед глазами рядом будут слова "ошибка в программе" и "PostgreSQL",
что в корне не верно.
Пасиб огромное
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)