crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Забавный баг Postgres
Andrew Selivanov
  опции профиля:
сообщение 4.2.2008, 12:04
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


При включенном антивирусе может возникать ошибка доступа к базе данных Postgres (да и вообще общая деградация производительности). Интересный фикс предложили авторы системы:
https://projects.commandprompt.com/public/p...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        }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 4.2.2008, 12:41
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Да, забыл добавить, характерный текст ошибки: ERROR: could not open relation 1663/856689/856777: Invalid argument
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Serik
  опции профиля:
сообщение 6.2.2008, 7:04
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 1.2.2008
Пользователь №: 80

Спасибо сказали: 0 раз(а)




Репутация:   0  


Ну и в чем здесь ошибка PostgreSQL ?
Известный факт, что антивирусы и файерволы мешают работать, при диагностировании проблем, первый совет - отключить их.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 6.2.2008, 11:58
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Цитата(Serik @ 6.2.2008, 7:04) *
Ну и в чем здесь ошибка PostgreSQL ?
Известный факт, что антивирусы и файерволы мешают работать, при диагностировании проблем, первый совет - отключить их.

Я ничего не говорил про ошибку Postgres, просто баг при его использовании с антивирусом. Прямо скажем, из ошибки сразу не понятно, что нужно вырубить антивирус. Запостил на случай, может кому пригодится :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Serik
  опции профиля:
сообщение 7.2.2008, 10:18
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 1.2.2008
Пользователь №: 80

Спасибо сказали: 0 раз(а)




Репутация:   0  


Давайте договоримся о терминах:

Баг (англ.bug - жук) - жаргонное слово, обозначающее ошибку в программе. (http://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B3)

Теперь заголовок топика по-русски:
"Забавная ошибка в программе PostgreSQL"

Я думаю, что правильно было бы
"Антивирус под Windows мешает работе PostgreSQL"

А так, как написали вы, у людей, не читающих топик, но просматривающих форум,
перед глазами рядом будут слова "ошибка в программе" и "PostgreSQL",
что в корне не верно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 7.2.2008, 10:26
Сообщение #6


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Serik @ 7.2.2008, 10:18) *
Я думаю, что правильно было бы
"Антивирус под Windows мешает работе PostgreSQL"
Очень даже логично. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 7.2.2008, 11:21
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Цитата(Serik @ 7.2.2008, 10:18) *
Давайте договоримся о терминах:

Баг (англ.bug - жук) - жаргонное слово, обозначающее ошибку в программе. (http://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B3)

Теперь заголовок топика по-русски:
"Забавная ошибка в программе PostgreSQL"

Я думаю, что правильно было бы
"Антивирус под Windows мешает работе PostgreSQL"

А так, как написали вы, у людей, не читающих топик, но просматривающих форум,
перед глазами рядом будут слова "ошибка в программе" и "PostgreSQL",
что в корне не верно.


Хорошо, давайте подумаем вместе - как часто сканер файлов антивируса мешает работе программ? Он мешает работе MS SQL? MySql? Sqlite? Вышеназванные программы падают с непонятным диагностическим сообщением, при включенном антивирусе? Как вы думаете, что подумает человек, когда у него упадет база вот с такой диагностикой? В чью службу поддержки (если она доступна) будет он звонить?...
Внимание, вопрос - кто же виноват в подобной работе программы? Программа или антивирус (учитывая, что антивирусный монитор выполняет свою естественную функцию в целом успешно)?

Специально для сомневающихся, я несколько раз в топике описал проблему, из которой даже полному идиоту понятно, в чем дело. Не надо мне тыкать пальцем в википедию (и боже упаси в ее русскую версию), к счастью я еще помню расшифровку слова "баг".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 22.4.2008, 14:13
Сообщение #8





Гости








    


Пасиб огромное
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 16:03