172 похожих чатов

30 ответов

22 просмотра

SELECT uukey FROM t WHERE id = 1 выдает например xxx UPDATE t SET uukey = yyy WHERE id =1 Тот же селект выдаст ххх, но если вырубить индекс скан, то yyy

Окей, чо тогда это?

P
Окей, чо тогда это?

https://t.me/pgsql/474564 Снимите логи сессии, что ли.

Yaroslav Schekin
https://t.me/pgsql/474564 Снимите логи сессии, что...

Если бы можно было, я бы это сделал)

P
Если бы можно было, я бы это сделал)

Если у Вас нет возможности применять никакие отладочные средства... может быть, этой проблемой должны заниматься не Вы (а тот, кто не даёт Вам такой возможности, например ;) )?

Yaroslav Schekin
Если у Вас нет возможности применять никакие отлад...

Сяп за токсичность. 5к строк заливать сюда смысла ноль. Проблему я описал. Если у вас идей, кроме как потешать своё эго нет, то спасибо вам! Других данных дать физически не могу. База локальная. Нет у нее доступа к сети. Никакого. Вообще. Версия пг 9.6

P
SELECT uukey FROM t WHERE id = 1 выдает например x...

Похоже на битый индекс Попробуйте сделать reindex таблице

Аггей Лоскутников
Похоже на битый индекс Попробуйте сделать reindex ...

О как! Индексы у людей выше не ломаются! А тут оказывается ломаются

Аггей Лоскутников
Похоже на битый индекс Попробуйте сделать reindex ...

Реиндекс в транзакции не сделать, все происходит в одной транзакции

P
О как! Индексы у людей выше не ломаются! А тут ока...

Слова "ломаются" и "сломанный" имеют катастрофически разный смысл.

P
Сяп за токсичность. 5к строк заливать сюда смысла ...

> 5к строк заливать сюда смысла ноль. 5k строк чего? Это там в одной транзакции столько statements? > Если у вас идей, кроме как потешать своё эго нет Причём тут моё эго?! Я Вам написал, что Вам нужно делать — но нет, вместо того все должны гадать, что там у вас происходит. > Никакого. Вообще. Тем не менее, хоть что-то (как-то) Вам показать (или рассказать) придётся, если не хотите, чтобы это превратилось в состязание "чей хрустальный шар лучше". ;) > Версия пг 9.6 Очень давно пора выбросить обновить, кстати.

Роман Жарков
Слова "ломаются" и "сломанный" имеют катастрофичес...

Ну он становится сломанным после апдейта, до этих пор все окей и этого не заметно.

Аггей Лоскутников
Сделайте не в транзакции )

Незя, лог то в транзакции нужно записать

Yaroslav Schekin
> 5к строк заливать сюда смысла ноль. 5k строк ч...

Сейчас дядю в интернете почитаю в телеграмме и побежим всей тимой обновлять пг! Секунду!

P
Сейчас дядю в интернете почитаю в телеграмме и поб...

Щас ты побежишь в другой чат. Это очень серьёзное предупреждение.

P
Незя, лог то в транзакции нужно записать

Кажется вы смешиваете теплое с мягким. Индекс - если он битый - после перестроения будет целым и работать четко. И при следующем вашем апдейте в транзакции - уже все будет работать хорошо.

Это официальная позиция сообщества PostgreSQL, для информации (это давно не поддерживаемая версия PostgreSQL). Если Вы с этой проблемой придёте в официальные mailing lists, то там скажут ровно то же самое (а проблему и разбирать не будут, почти наверняка).

Ярослав как -то вчера был абсолютно несогласен с вами :)

Yaroslav Schekin
Это официальная позиция сообщества PostgreSQL, для...

Я с этим не спорю, просто для чего было эти смешные картинки и язвить ну не ясно было. Я понимаю что я не дал кода и не дал аналайз и инфы с грошь дал, но это тоже не просто так. Старый легаси код тоже кто то поддерживает и этот кто то - я. Поэтому извиняюсь если задел, но я бился с этим ооочень долго,чтобы дойти до этой причины неправильных логов. И я ее описал. Если у кого то был похожий опыт, то буду рад его узнать. Если никто не сталкивался, то ладно.

Владимир Наумов
Ярослав как -то вчера был абсолютно несогласен с в...

Ну так по умолчанию считается, что с "железом" всё нормально, когда подобные вопросы задают... по крайней мере, об этом думают, обычно, в последнюю очередь. ;) Так что тут я согласен с @aggeisoft (хотя (судя по v9.6 в production), там может быть всякое).

P
Я с этим не спорю, просто для чего было эти смешны...

Вы не описали почти ничего, извините (ни транзакций, ни statements, ни обработки ошибок в коде, ни конкретных результатов запросов). > Если никто не сталкивался, то ладно. Я сталкивался с похожим буквально сотни раз, и почти каждый раз причина была именно в том, что код написан некорректно.

Владимир Наумов
Ярослав как -то вчера был абсолютно несогласен с в...

Имел очень интересную проблему с год назад. Правда версия pg была 12.x (но последовательно обновляемая с версии 9.5 еще). Так вот - был битый уникальный индекс - который не был помечен как invalid и СУБД считала его вполне хорошим и рабочим - только при перестроении выяснилось - что есть дубли по полям в индексе. Дублей было немного, но пришлось сделать кучу работы - чтобы их убрать (без потери логической целостности данных). Проверить можно было так: Делаешь запрос который попадает в индекс - выдает 100 записей. Добавляешь псевдоусловие в фильтр (чтобы не сканировало по индексу) или выключаешь indexscan - выдает 102 записи

Аггей Лоскутников
Имел очень интересную проблему с год назад. Правд...

вероятно, был сбой носителя возможно были и др битые объекты

Аггей Лоскутников
Имел очень интересную проблему с год назад. Правд...

Идея с фильтром тоже пришла, буду ковырять. Спасибо!

Петр Егоров
вероятно, был сбой носителя возможно были и др бит...

Возможно - у БД была долгая история с кучей разных ЦОДов, аварий и прочего. Кроме того - все эти последовательные обновления с версии на версию - тоже могли сказаться. В момент воспроизведения проблемы - с железом все было впорядке

А тут "пахнет" тем, что кто-то работает с data_checksums = off. ;) Хотя, на самом деле, это мог быть и bug, но менее вероятно, мне кажется.

Yaroslav Schekin
А тут "пахнет" тем, что кто-то работает с data_che...

И вы абсолютно правы. Кластер изначально был без чексумм - и при обновлении через pg_upgrade их нельзя было включить. Только при обновлении через pg_dump

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта