crossplatform.ru

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


  Ответ в Забавный баг Postgres
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Гость Дата 22.4.2008, 14:13
  Пасиб огромное
Andrew Selivanov Дата 7.2.2008, 11:21
 
Цитата(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? Вышеназванные программы падают с непонятным диагностическим сообщением, при включенном антивирусе? Как вы думаете, что подумает человек, когда у него упадет база вот с такой диагностикой? В чью службу поддержки (если она доступна) будет он звонить?...
Внимание, вопрос - кто же виноват в подобной работе программы? Программа или антивирус (учитывая, что антивирусный монитор выполняет свою естественную функцию в целом успешно)?

Специально для сомневающихся, я несколько раз в топике описал проблему, из которой даже полному идиоту понятно, в чем дело. Не надо мне тыкать пальцем в википедию (и боже упаси в ее русскую версию), к счастью я еще помню расшифровку слова "баг".
ViGOur Дата 7.2.2008, 10:26
 
Цитата(Serik @ 7.2.2008, 10:18) *
Я думаю, что правильно было бы
"Антивирус под Windows мешает работе PostgreSQL"
Очень даже логично. :)
Serik Дата 7.2.2008, 10:18
  Давайте договоримся о терминах:

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

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

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

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

Я ничего не говорил про ошибку Postgres, просто баг при его использовании с антивирусом. Прямо скажем, из ошибки сразу не понятно, что нужно вырубить антивирус. Запостил на случай, может кому пригодится :)
Serik Дата 6.2.2008, 7:04
  Ну и в чем здесь ошибка PostgreSQL ?
Известный факт, что антивирусы и файерволы мешают работать, при диагностировании проблем, первый совет - отключить их.
Andrew Selivanov Дата 4.2.2008, 12:41
  Да, забыл добавить, характерный текст ошибки: ERROR: could not open relation 1663/856689/856777: Invalid argument
Andrew Selivanov Дата 4.2.2008, 12:04
  При включенном антивирусе может возникать ошибка доступа к базе данных 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        }
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 18.4.2024, 19:24