Summary: | Ошибка "LOCK TABLE can only be used in transaction blocks" и postgresql 8.4 | ||
---|---|---|---|
Product: | Postgres@Etersoft | Reporter: | Александр <tuxmaniacster> |
Component: | выполнение запросов | Assignee: | Юрий Филь <yurifil> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | critical | ||
Priority: | P2 | CC: | boris, lav |
Version: | не указана | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Attachments: |
снятие запрета на блокировки таблиц вне транзакций
очистка временых таблиц даже при наличии ссылок Revert "Disallow LOCK TABLE outside a transaction block (or function), since this case" |
Description
Александр
2010-06-15 11:00:41 MSD
Created attachment 1728 [details]
снятие запрета на блокировки таблиц вне транзакций
Created attachment 1729 [details]
очистка временых таблиц даже при наличии ссылок
Выложил 2 патча: 1. Отменяет запрет на блокировку таблиц вне транзакций 2. Разрешает очистку временных таблиц даже при наличии ссылок (1С чистит их через fasttrun) Стас, будут комментарии, или можно просто патчи включать? Второй патч(1729) можно так и приложить. Ничего в нем плохого не вижу, если 1с это не нравится. Только хочется узнать, как воспроизвести ошибку на 1с. А первый(1728), я сделал бы в виде отката коммита fc5af261e545646848ba8b0ce5b45115a76dc77b (хотя не принципиально). Created attachment 1740 [details]
Revert "Disallow LOCK TABLE outside a transaction block (or function), since this case"
Откат коммита ограничевающего использование блокировок вне транзакций.
(In reply to comment #5) > Только хочется узнать, как > воспроизвести ошибку на 1с. У меня такая конфигурация: бухгалтерия предприятия 1.6, платформа 8.1.15, postgresql 8.4.3. Легко и непринужденно воспроизводится на документах по основным средствам. Например, создаем и проводим документ "Списание ОС", затем снова открываем документ и перепроводим его, получаем ошибку "основное средство уже списано документом №.... от ............". Самое смешное - что уже списано этим самым документом. При этом у документа снимается признак проведения, но его старые движения не вычищаются, а так и остаются висеть в таблице проводок. Далее все попытки провести документ бесполезны, ибо выскакивает все та же ошибка "основное средство уже списано документом №.... от ............". Это мы видим со стороны пользователя. Если же заглянуть в лог postgresql, то видим кучу ошибок о невозможности очистить временные таблицы, видимо 1с от этого паникует и останавливается на пол-пути, сняв признак проведения документа но не очистив движения. Хотя проведение документа должно выполняться в транзакции (BEGIN, удаляем старые движения, записываем новые, COMMIT), но видимо это не совсем так (да да, совсем не так как написано в желтых книжках от 1с :) В общем, ничего не изменилось с тех пор, как я осенью тестировал версию postgresql 8.4.1 с патчами от 1с, правда тогда еще был статус беты и я особо не заморачивался, ибо считал, что разработчики из 1с все оттестируют и поправят недоделки. Зря я так считал :) Пришлось самому поправить и теперь все работает. Остался только один странный баг - при формировании очень большого отчета (что-нить типа карточки счета на 5000 страниц печатного текста) postgresql 8.4.3 может призадуматься минут на 30-40, тогда как с версией postgresql 8.3.8 на формирование подобного отчета уходило 1-2 минуты. Приложил патчи, собрал srpm и запустил на сборку. Версия 8.4.2. Пока можно протестировать на системах, для которых есть пакет. (In reply to comment #8) > Приложил патчи, собрал srpm и запустил на > сборку. Версия 8.4.2. > Пока можно протестировать на системах, для > которых есть пакет. > 8.4.2? Так ведь последние патчи к postgresql 8.4.3 уже есть. Правда 1С их почему-то в открытый доступ не выложила. Если у Вас нет доступа к ним, могу здесь выложить. От себя могу добывить: за последние пару недель активного тестирования postgresql на sles11, opensolaris b134 и mac os 10.6 ошибок пока не наблюдаю Собрал 8.4.4 с двумя патчами, о которых шла речь выше. Если можно, пришлите последние патчи. (In reply to comment #10) > Если можно, пришлите последние патчи. отправил Вам на e-mail (In reply to comment #11) > отправил Вам на e-mail > Спасибо, но от старых они почти не отличаются. Можно качать 8.4.4. Закрываю. |