Bug 1605

Summary: selta: падение 1С при попытке прервать проведение документа
Product: SELTA@Etersoft Reporter: Антон Азанов (Djelf) <aae>
Component: ODBC-драйверAssignee: Станислав Коробейников <stas>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P5 CC: lav, leonid, Oleg.Eremeev, shan, triada123
Version: 1.0.2   
Target Milestone: ---   
Hardware: PC   
OS: SUSE   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 2054    
Attachments: Лог postgres

Description Антон Азанов (Djelf) 2008-04-05 23:13:04 MSD
Created attachment 372 [details]
Лог postgres

Ubuntu 7.04, wine@etersoft.sql 1.0.8, selta@etersoft 1.0.2 (03/04/08), 1C 7.7.027

При попытке прервать проведение документа (по ESC, после нажатия ОК) 1С падает с сообщением:
SQL State: 25P02
Native: 7
Message: ERROR: current transaction is aborted, command ignored until end of transaction block;
Error while executing the query

Лог postgres с момента начала проведения по момент выпадения 1С приложен.
Comment 1 Andrey Abramov 2008-04-07 00:11:14 MSD
Проблема не воспроизводится.
Либо она уже исправлена в 1.0.2.test, которая сейчас выложена на ftp, либо это что-то спецефическое.
Не могли бы вы переслать полный лог проблемной операции, если ошибка повторяется с новыми файлами:
утилита c:\windows\system32 -> настройки ODBC драйвера в разделе Пользовательский DNS или системный DNS -> кнопка Global -> первая галочка в диалоговом окне.
Спасибо.
Comment 2 Andrey Abramov 2008-04-07 00:21:50 MSD
Похоже проблема как-то обрисовалась:
при отмене проведения документа вызывается откат транзакции и уничтожение курсора, который был в ней создан, а потом попытка закрытия курсора средствами ODBC, что и вызывает ошибку.
Будем исправлять.
Comment 3 Антон Азанов (Djelf) 2008-04-07 20:36:24 MSD
Я так понимаю что если ошибка локализована дополнительные логи уже не нужны?
Comment 4 Andrey Abramov 2008-04-07 23:25:29 MSD
Да, как только я исправлю ошибку - вышлю Вам файлы и проверим, повторяется ли ошибка.
Comment 5 Михаил Карпухин 2008-04-10 00:26:03 MSD
Сори не прочитал, задублировал ошибку...
Comment 6 Andrey Abramov 2008-04-10 20:53:24 MSD
*** Bug 1666 has been marked as a duplicate of this bug. ***
Comment 7 Leonid Shadevsky 2008-05-17 14:06:13 MSD
Вот кстати похожий случай, система FreeBSD (№6383):

"При формировании тяжелых отчетов один за другим подряд) вылетает (порой!) ошибка вида: "25P02, current transaction is aborted, commands ignored until end of transaction block" и 1С:Предприятие 7.7 SQL захлопывается.
 
На сайте POstgresql http://archives.postgresql.org/pgsql-jdbc/2006-04/msg00002.php проблема затрагивается и предлагаются меры, но как это применить в 
нашем случае.... право не ведаю."
Comment 8 Andrey Abramov 2008-05-19 00:13:21 MSD
На данный момент вся проблема заключается в том, что я не могу сделать конструкцию вида:
IF курсор_существует THEN закрыть_его
PostgreSQL не имеет в своем языке никаких IF, а имитация через Хранимые процедуры, как я это делал для других случаев, приводит к ошибке: "внутри хранмиых процедур нельзя манипулировать курсорами".
Похоже придется при закрытии курсора предварительно делать запрос о его существовании, обрабатывать его в ODBC и только после этого закрывать, будет работать чуть-чуть медленнее чем в MS SQL Server.
Comment 9 Oleg Eremeev 2008-05-19 08:19:17 MSD
Андрей, приветствую.
Мои извинения за некоторую бестактность, но таким образом получается, что ожидаем обновления релиза SELTA@Etersoft применяем его и вероятно проблема "25P02, current transaction is aborted, commands ignored until end of transaction block" отпадет?
Ибо в остальном тестирование SELTA в предверии миграции 1С 7.7 на СУБД PostgreSQL нареканий не вызвало. 
Comment 10 Vitaly Lipatov 2008-07-04 11:02:52 MSD
Что-то можно сделать?
Comment 11 Антон Азанов (Djelf) 2008-07-07 02:35:44 MSD
selta 1.0.3 релиз от 04.07.08 Комплексная конфигурация "Демо" 4.5 релиз 7.70.483 
1С вылетает по той же причине (попытка уничтожения несуществующего курсора) при попытке провести документ "Приказ о приеме на работу СТ00000002 от 11.01.01"
Открыть документ. Нажать "Провести", 1С сообщит что документ не проводится, нажать "Закрыть", на запрос о сохранении документа ответить "Да". 1С вылетит по ошибке 25P02
Comment 12 Шильников Андрей 2008-10-16 17:06:56 MSD
Большая просьба отписываться о результатах здесь
Comment 13 Станислав Коробейников 2008-10-21 13:40:11 MSD
В связи с http://bugs.etersoft.ru/show_bug.cgi?id=2231#c10, мне кажется все работает.