Ошибка во время исполнения транзакции

Последнее время при обновлении и установке программ выпадает ошибка: E: Ошибка во время исполнения транзакции
Как избавиться?


Записан


Какой дистрибутив, какой бренч, откуда обновляетесь, полный лог обновления. Поподробнее пожалуйста!


Записан


Информика Мастер. 6.
[root@host100 ~]# apt-get dist-upgrade
Чтение списков пакетов… Завершено
Построение дерева зависимостей… Завершено
Подсчет обновлений… Завершено
Следующие пакеты будут ОБНОВЛЕНЫ:
  apt-repo chromium chromium-kde kernel-headers-modules-std-def libv8
Следующие пакеты будут ЗАМЕНЕНЫ:
  lazarus-docs (by lazarus)  lazarus-examples (by lazarus)
Следующие НОВЫЕ пакеты будут установлены:
  fpc lazarus libspeechd
5 будет обновлено, 3 новых установлено, 2 пакетов будет заменено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/163MB архивов.
После распаковки потребуется дополнительно 563MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения…
Preparing…                 ################################################################### [100%]
installing package libspeechd-0.8-alt0.M60P.1 needs 88Kb on the / filesystem
installing package libv8-3.16.14.10-alt0.M60P.1 needs 6Mb on the / filesystem
installing package chromium-26.0.1410.57-alt0.r191765.M60P.1 needs 5Mb on the / filesystem
installing package apt-repo-1.1.4-alt1 needs 5Mb on the / filesystem
installing package chromium-kde-26.0.1410.57-alt0.r191765.M60P.1 needs 5Mb on the / filesystem
installing package kernel-headers-modules-std-def-3.0.79-alt0.M60P.1 needs 41Mb on the / filesystem
installing package lazarus-1.0.8-alt0.M60P.1 needs 600Mb on the / filesystem
E: Ошибка во время исполнения транзакции
Обновляться пробовал с разных зеркал. С Яндекса, с киевского сервера, с родного альтовского.


Записан


У вас место на / закончилось.
Сделайте

# apt-get cleanи попробуйте ещё раз обновиться.


Записан

Сноси Винду, переходи на Линукс ! :)


Также можно удалить старые ядра (если они вам не нужны):

# remove-old-kernels


Записан

Сноси Винду, переходи на Линукс ! :)


Не думал, что проблема на поверхности. Работает.


Записан


Последнее время при обновлении и установке программ выпадает ошибка: E: Ошибка во время исполнения транзакции
Как избавиться?


Записан


Какой дистрибутив, какой бренч, откуда обновляетесь, полный лог обновления. Поподробнее пожалуйста!


Записан


Информика Мастер. 6.
[root@host100 ~]# apt-get dist-upgrade
Чтение списков пакетов… Завершено
Построение дерева зависимостей… Завершено
Подсчет обновлений… Завершено
Следующие пакеты будут ОБНОВЛЕНЫ:
  apt-repo chromium chromium-kde kernel-headers-modules-std-def libv8
Следующие пакеты будут ЗАМЕНЕНЫ:
  lazarus-docs (by lazarus)  lazarus-examples (by lazarus)
Следующие НОВЫЕ пакеты будут установлены:
  fpc lazarus libspeechd
5 будет обновлено, 3 новых установлено, 2 пакетов будет заменено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/163MB архивов.
После распаковки потребуется дополнительно 563MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения…
Preparing…                 ################################################################### [100%]
installing package libspeechd-0.8-alt0.M60P.1 needs 88Kb on the / filesystem
installing package libv8-3.16.14.10-alt0.M60P.1 needs 6Mb on the / filesystem
installing package chromium-26.0.1410.57-alt0.r191765.M60P.1 needs 5Mb on the / filesystem
installing package apt-repo-1.1.4-alt1 needs 5Mb on the / filesystem
installing package chromium-kde-26.0.1410.57-alt0.r191765.M60P.1 needs 5Mb on the / filesystem
installing package kernel-headers-modules-std-def-3.0.79-alt0.M60P.1 needs 41Mb on the / filesystem
installing package lazarus-1.0.8-alt0.M60P.1 needs 600Mb on the / filesystem
E: Ошибка во время исполнения транзакции
Обновляться пробовал с разных зеркал. С Яндекса, с киевского сервера, с родного альтовского.


Записан


У вас место на / закончилось.
Сделайте

# apt-get cleanи попробуйте ещё раз обновиться.


Записан

Сноси Винду, переходи на Линукс ! :)


Также можно удалить старые ядра (если они вам не нужны):

# remove-old-kernels


Записан

Сноси Винду, переходи на Линукс ! :)


Не думал, что проблема на поверхности. Работает.


Записан


Модератор: Модераторы разделов

Аватара пользователя

M31

Сообщения: 59
ОС: OpenSUSE
Контактная информация:

Ошибки при apt-get dist-upgrade

Выдаёт следующее:

Код: Выделить всё


Checking GPG signatures...
Unsigned /var/cache/apt/archives/cups-devel_1.2.0-0.1_i586.rpm: sha1 md5 OK
Unsigned /var/cache/apt/archives/cups_1.2.0-0.1_i586.rpm: sha1 md5 OK
Unsigned /var/cache/apt/archives/cups-client_1.2.0-0.1_i586.rpm: sha1 md5 OK
Unsigned /var/cache/apt/archives/cups-libs_1.2.0-0.1_i586.rpm: sha1 md5 OK
Unknown signature /var/cache/apt/archives/libsndfile_1.0.16-0.oc2pus.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#1dfa8f0c)
Unknown signature /var/cache/apt/archives/jack_0.101.1-0.jacklab.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#225c78bc)
Unknown signature /var/cache/apt/archives/jack-devel_0.101.1-0.jacklab.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#225c78bc)
Unknown signature /var/cache/apt/archives/libgpod_0.3.2-4_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5f6842a4)
Unsigned /var/cache/apt/archives/openldap2-devel_2.3.23-0.1.20060524_i586.rpm: sha1 md5 OK
Unsigned /var/cache/apt/archives/openldap2-client_2.3.23-0.1.20060524_i586.rpm: sha1 md5 OK
Unknown signature /var/cache/apt/archives/libmp4v2_1.4.1-2_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#3ab2ce5e)
Unknown signature /var/cache/apt/archives/speex_1.1.12-0.pm.0_i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unknown signature /var/cache/apt/archives/libsmbclient_3.0.22-13.9.21_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#414a57c3)
Unknown signature /var/cache/apt/archives/w32codec-all_20060501-0.pm.0_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unknown signature /var/cache/apt/archives/libxine1_1.1.1-16.pm.0_i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unknown signature /var/cache/apt/archives/opal_2.2.1-1.pm.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#3ab2ce5e)
Unknown signature /var/cache/apt/archives/pwlib_1.10.0-1.pm.2_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#3ab2ce5e)
Unknown signature /var/cache/apt/archives/ekiga_2.0.1-1.pm.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#3ab2ce5e)
Unknown signature /var/cache/apt/archives/imlib2_1.2.2-0.pm.0_i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unknown signature /var/cache/apt/archives/kdesvn-svnqt_0.8.4-0.pm.0_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#1be4d89e)
Unknown signature /var/cache/apt/archives/lash-libs_0.5.1-0.jacklab.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#225c78bc)
Unknown signature /var/cache/apt/archives/lash_0.5.1-0.jacklab.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#225c78bc)
Unknown signature /var/cache/apt/archives/libdvdread_0.9.6-0.pm.0_i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unknown signature /var/cache/apt/archives/liblo_0.23-0.oc2pus.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#1dfa8f0c)
Unknown signature /var/cache/apt/archives/mjpegtools_1.8.0-18.pm.0_i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unsigned /var/cache/apt/archives/openldap2_2.3.23-0.1.20060524_i586.rpm: sha1 md5 OK
Unknown signature /var/cache/apt/archives/cifs-mount_3.0.22-13.9.21_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#414a57c3)
Unknown signature /var/cache/apt/archives/samba-client_3.0.22-13.9.21_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#414a57c3)
Unknown signature /var/cache/apt/archives/samba_3.0.22-13.9.21_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#414a57c3)
Unknown signature /var/cache/apt/archives/samba-winbind_3.0.22-13.9.21_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#414a57c3)
Unknown signature /var/cache/apt/archives/tomboy_0.3.5-2.1_i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#f071d27d)
Unknown signature /var/cache/apt/archives/totem_1.5.1-0.pm.1_i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unknown signature /var/cache/apt/archives/xmms-lib_1.2.10-103.pm.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5f6842a4)
Unknown signature /var/cache/apt/archives/xmms_1.2.10-103.pm.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5f6842a4)
Unknown signature /var/cache/apt/archives/imlib2-loaders_1.2.2-0.pm.0_i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unknown signature /var/cache/apt/archives/kdesvn_0.8.4-0.pm.0_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#1be4d89e)
Unknown signature /var/cache/apt/archives/pwlib-devel_1.10.0-1.pm.2_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#3ab2ce5e)
Unknown signature /var/cache/apt/archives/opal-devel_2.2.1-1.pm.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#3ab2ce5e)
Unsigned /var/cache/apt/archives/pan_0.95-1_i586.rpm: sha1 md5 OK
Unknown signature /var/cache/apt/archives/qjackctl_0.2.20-0.jacklab.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#225c78bc)
Unknown signature /var/cache/apt/archives/rar_3.5.1-0.pm.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unknown signature /var/cache/apt/archives/samba-vscan_0.3.6b-42.9.21_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#414a57c3)
Unknown signature /var/cache/apt/archives/seq24_0.8.4-0.jacklab.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#225c78bc)
Unknown signature /var/cache/apt/archives/xine-ui_0.99.4cvs-20060423.pm.0_i686.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5277a2fa)
Unknown signature /var/cache/apt/archives/xmms-devel_1.2.10-103.pm.1_i586.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#5f6842a4)
E: Error(s) while checking package signatures:
8 unsigned package(s)
37 package(s) with unknown signatures
0 package(s) with illegal/corrupted signatures
E: Handler silently failed

что эот означает? что делать?

Аватара пользователя

k0da

Бывший модератор
Сообщения: 6043
Статус: SuSE QA Engineer
ОС: Factory
Контактная информация:

Re: Ошибки при apt-get dist-upgrade

Сообщение

k0da » 26.05.2006 10:40

Подписи не знает…
Надо запустить с ключом игнора подписей

Fury in my eyes, sword on my side
Afro on my head, I’m a black Samurai
Number One, I bring my whole nation alive
Escape death, to become immortalized

Аватара пользователя

void_false

Сообщения: 198
Статус: Sergeant of Operations, IDF
ОС: Arch x86_32
Контактная информация:

Re: Ошибки при apt-get dist-upgrade

Сообщение

void_false » 26.05.2006 12:59

Для этого надо в файле /etc/apt/apt.conf.d/gpg-checker.conf надо изменить строку GPG::Check yes; на GPG::Check no;
И больше он уже никогда не будет ругаться на ключи :P

Аватара пользователя

M31

Сообщения: 59
ОС: OpenSUSE
Контактная информация:

Re: Ошибки при apt-get dist-upgrade

Сообщение

M31 » 26.05.2006 22:08

сенкс заработало, но теперь другая ошибка:

Код: Выделить всё

Совершаем изменения...
Preparing...                ########################################### [100%]
        file /opt/kde3/share/mimelnk/image/x-raw.desktop from install of kdelibs3-3.5.2-9 conflicts with file from package digikam-0.8.1-23
        file /usr/lib/liblash.so.2.0.0 conflicts between attempted installs of lash-0.5.1-1.oc2pus.cvs20060524 and lash-libs-0.5.1-0.jacklab.1
E: Ошибка во время исполнения транзакции
E: Handler silently failed

что делать?

Аватара пользователя

k0da

Бывший модератор
Сообщения: 6043
Статус: SuSE QA Engineer
ОС: Factory
Контактная информация:

Re: Ошибки при apt-get dist-upgrade

Сообщение

k0da » 26.05.2006 23:56

M31
обчный конфликт зависимостей

Fury in my eyes, sword on my side
Afro on my head, I’m a black Samurai
Number One, I bring my whole nation alive
Escape death, to become immortalized

Аватара пользователя

k0da

Бывший модератор
Сообщения: 6043
Статус: SuSE QA Engineer
ОС: Factory
Контактная информация:

Re: Ошибки при apt-get dist-upgrade

Сообщение

k0da » 27.05.2006 14:35

M31
исправить конфликт

Fury in my eyes, sword on my side
Afro on my head, I’m a black Samurai
Number One, I bring my whole nation alive
Escape death, to become immortalized

Аватара пользователя

k0da

Бывший модератор
Сообщения: 6043
Статус: SuSE QA Engineer
ОС: Factory
Контактная информация:

Re: Ошибки при apt-get dist-upgrade

Сообщение

k0da » 27.05.2006 16:52

M31
вместе с kdelibs3-3.5.2-9 обновить digicam

Fury in my eyes, sword on my side
Afro on my head, I’m a black Samurai
Number One, I bring my whole nation alive
Escape death, to become immortalized

Аватара пользователя

vidliks

Сообщения: 250
Статус: Carpe diem
ОС: Kubuntu 9.04
Контактная информация:

Re: Ошибки при apt-get dist-upgrade

Сообщение

vidliks » 28.05.2006 20:59

<pt-get install —yes ‘OpenOffice_org’ ;echo RESULT=$?
Reading Package Lists… Done
Building Dependency Tree… Done
The following packages will be upgraded
OpenOffice_org
1 upgraded, 0 newly installed, 0 removed and 109 not upgraded.
Need to get 0B/10.7MB of archives.
After unpacking 470kB disk space will be freed.
Committing changes…
Preparing… ########################################### [100%]
1:OpenOffice_org ########################################### [100%]
error: unpacking of archive failed: cpio: Bad magic
apt executing: /sbin/SuSEconfig
Starting SuSEconfig, the SuSE Configuration Tool…
Running in full featured mode.
Reading /etc/sysconfig and updating the system…
Executing /sbin/conf.d/SuSEconfig.desktop-file-utils…
Executing /sbin/conf.d/SuSEconfig.fonts…
Creating cache files for Xft ……………………..
Creating fonts.{scale,dir} files ………
generating java font setup
writing /usr/lib/jvm/java-1.5.0-sun-1.5.0_03/jre/lib/fontconfig.SuSE.properties
writing /etc/fonts/suse-hinting.conf
writing /etc/fonts/suse-bitmaps.conf
Executing /sbin/conf.d/SuSEconfig.groff…
Executing /sbin/conf.d/SuSEconfig.gtk2…
Executing /sbin/conf.d/SuSEconfig.kde…
Executing /sbin/conf.d/SuSEconfig.kdm3…
Executing /sbin/conf.d/SuSEconfig.libxml2…
Executing /sbin/conf.d/SuSEconfig.news…
Executing /sbin/conf.d/SuSEconfig.pango…
Executing /sbin/conf.d/SuSEconfig.perl…
Executing /sbin/conf.d/SuSEconfig.permissions…
Executing /sbin/conf.d/SuSEconfig.postfix…
Setting up postfix local as MDA…
Setting SPAM protection to «off»…
Executing /sbin/conf.d/SuSEconfig.prelink…
skip prelink while running on battery
Executing /sbin/conf.d/SuSEconfig.scpm…
Executing /sbin/conf.d/SuSEconfig.sortpasswd…
Executing /sbin/conf.d/SuSEconfig.susehelp…
DOCALLOW: localhost
Executing /sbin/conf.d/SuSEconfig.syslog-ng…
Executing /sbin/conf.d/SuSEconfig.xdm…
Executing /sbin/conf.d/SuSEconfig.xpdf…
Executing /sbin/conf.d/SuSEconfig.zmessages…
Finished.
apt executing: /sbin/ldconfig

в чём может быть проблема?

Sibi imperare maximum imperum est

Прерывает ли ошибка транзакцию в постгрес? Я использую libpq, открываю транзакцию, пытаюсь вставить запись, если запись уже существуе, делаю селект, но на селекте вылетает следующая ошабка

ОШИБКА: текущая транзакция прервана, команды до конца блока транзакции игнорируются
in_failed_sql_transaction(25P02)

Значит ли это, что ошибка прерывает транзакцию, и есть ли способ обойти это не прибегая к проверке существования записи до вставки?

задан 31 мая 2021 в 18:03

Denver Toha's user avatar

Denver TohaDenver Toha

2,4461 золотой знак8 серебряных знаков22 бронзовых знака

Да, в постгрес после возникновения ошибки новые операторы в транзакции выполнять нельзя.

Проверку перед вставкой непросто реализовать правильно. Простой select запрос проблему не решит, так как после проверки другая транзакция может вставить запись до того, как это успеет. Правильный способ так сделать, то есть делать проверку во время вставки — описан ниже.

Можно только сделать откат всей транзакции или до заранее созданной точки сохранения (англ. Savepoint). С помощью них можно отменять часть операций сделанных в транзакции до комита.

Так что последовательность действий такая:

  1. перед операцией, которая потенциально может пройти неуспешно, создаете точку сохранения командой SAVEPOINT имя-точки-сохранения
  2. выполняете операцию
  3. если операция завершилась успешно, отпускаете точку сохранения (если нет необходимости к ней возвращаться) командой RELEASE SAVEPOINT имя-точки-сохранения
  4. если операция завершилась неуспешно, используете команду ROLLBACK TO SAVEPOINT имя-точки-сохранения.

Как правильно отметил Мелкий savepoint-ы небесплатны по производительности и в этом случае имеет смысл рассмотреть использование insert .. on conflict do nothing и анализировать количество измененных строк.

ответ дан 31 мая 2021 в 18:42

Roman-Stop RU aggression in UA's user avatar

1

Я получил эту ошибку, используя Java и PostgreSQL, выполняющие вставку в таблицу. Я проиллюстрирую, как вы можете воспроизвести эту ошибку:

org.postgresql.util.PSQLException: ERROR: 
current transaction is aborted, commands ignored until end of transaction block

Резюме:

Причина, по которой вы получаете эту ошибку, заключается в том, что вы ввели транзакцию, и один из ваших SQL-запросов не удался, и вы проглотили этот сбой и проигнорировали его. Но этого было недостаточно, ТОГДА вы использовали то же самое соединение, используя ТУ ЖЕ ТРАНЗАКЦИЮ для запуска другого запроса. Исключение возникает при втором правильно сформированном запросе, потому что вы используете неработающую транзакцию для выполнения дополнительной работы. PostgreSQL по умолчанию запрещает вам это делать.

Я использую: PostgreSQL 9.1.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2), 64-bit".

Мой драйвер PostgreSQL: postgresql-9.2-1000.jdbc4.jar

Использование версии Java: Java 1.7

Вот оператор создания таблицы, иллюстрирующий исключение:

CREATE TABLE moobar
(
    myval   INT
);

Java-программа вызывает ошибку:

public void postgresql_insert()
{
    try  
    {
        connection.setAutoCommit(false);  //start of transaction.
        
        Statement statement = connection.createStatement();
        
        System.out.println("start doing statement.execute");
        
        statement.execute(
                "insert into moobar values(" +
                "'this SQL statement fails, and it " +
                "is gobbled up by the catch, okfine'); ");
     
        //The above line throws an exception because we try to cram
        //A string into an Int.  I Expect this, what happens is we gobble 
        //the Exception and ignore it like nothing is wrong.
        //But remember, we are in a TRANSACTION!  so keep reading.

        System.out.println("statement.execute done");
        
        statement.close();
        
    }
    catch (SQLException sqle)
    {
        System.out.println("keep on truckin, keep using " +
                "the last connection because what could go wrong?");
    }
    
    try{
        Statement statement = connection.createStatement();
        
        statement.executeQuery("select * from moobar");

        //This SQL is correctly formed, yet it throws the 
        //'transaction is aborted' SQL Exception, why?  Because:
        //A.  you were in a transaction.
        //B.  You ran a SQL statement that failed.
        //C.  You didn't do a rollback or commit on the affected connection.
        
    }
    catch (SQLException sqle)
    {
        sqle.printStackTrace();
    }   

}

Приведенный выше код выводит для меня этот вывод:

start doing statement.execute

keep on truckin, keep using the last connection because what could go wrong?

org.postgresql.util.PSQLException: 
  ERROR: current transaction is aborted, commands ignored until 
  end of transaction block

Обходные пути:

У вас есть несколько вариантов:

  1. Самое простое решение: не участвовать в транзакции. Установить connection.setAutoCommit(false); в connection.setAutoCommit(true);. Это работает, потому что тогда неудачный SQL просто игнорируется как неудачный оператор SQL. Вы можете сколько угодно ошибаться в операторах SQL, и PostgreSQL вас не остановит.

  2. Оставайтесь в транзакции, но когда вы обнаружите, что первый SQL не удался, либо откатите/перезапустите, либо зафиксируйте/перезапустите транзакцию. Затем вы можете продолжить сбоить столько SQL-запросов к этому соединению с базой данных, сколько захотите.

  3. Не перехватывайте и не игнорируйте исключение, возникающее при сбое оператора SQL. Затем программа остановится на неверно сформированном запросе.

  4. Вместо этого получите Oracle, Oracle не выдает исключение, когда вы не можете выполнить запрос к соединению внутри транзакции и продолжаете использовать это соединение.

В защиту решения PostgreSQL поступить таким образом… Oracle был делая вас мягким посередине, позволяя вам делать глупости и не обращая на это внимания.

Содержание:

1.       Причина ошибки в 1С Предприятие 8.3

2.       Почему ошибку «В данной транзакции уже происходили ошибки» надо устранить

3.       Как устранить ошибку в программе 1С Предприятие 8

Довольно часто пользователи программы 1С Предприятие 8 сталкиваются с ошибкой «В данной транзакции уже происходили ошибки».

В данной транзакции уже происходили ошибки

В данной транзакции уже происходили ошибки

Документ не записывается, а понять, в чем причина невозможно, т.к. текст сообщения об ошибке ни чего конкретного не сообщает.

Давайте разберемся в чем причина.  

1.    Причина ошибки в 1С Предприятие 8.3

С технической точки зрения эта ошибка в 1С:Предприятие 8.3 возникает в транзакции в момент первого обращения к базе данных после обработки исключительной ситуации операторами (Попытка-Исключение).

Ниже на рисунке продемонстрирован пример, когда при записи объекта «Объект_1» вызывается исключительная ситуация, при этом ошибка возникает в строке «Ссылка_2.Наименование», т.к. осуществляется запрос к базе данных в объектной модели данных. И не важно, запись это или чтение.

Возникновение ошибки в 1С Предприятие 8.3 при записи объекта

Возникновение ошибки в 1С Предприятие 8.3 при записи объекта

Причем в попытке-исключении обрабатываться операция, которая также выполняется в транзакции. Чаще всего это сочетание явных и неявных транзакций, т.е. транзакций, вызванных оператором НачатьТранзакцию явно и транзакций, вызванных платформой неявно (например, при записи объекта).

Как известно, система 1С:Предприятие 8.3 не поддерживает вложенных транзакций, но допускает организацию вложенной конструкции нескольких транзакций. В нашем примере явный вызов транзакции оператором НачатьТранзакцию – транзакция 1 уровня, а неявная транзакция записи – транзакция 2 уровня и т.д. Возникновение ошибки на нижних уровнях запрещает успешное завершение транзакции 1 уровня. Другими словами, откатывается все «дерево транзакций».

В чем же здесь проблема?  

2.    Почему ошибку «В данной транзакции уже происходили ошибки» надо устранить

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

Во-вторых, воспроизведение ошибки и ее отладка администратором тоже будет не простым занятием. Дело в том, что ошибка возникает в момент первого обращения к базе данных, т.е. в журнале регистрации будет зафиксирована именно эта строка. Хотя сама причина этой ошибки находиться в коде на самом нижнем уровне. В нашем примере «Объект_1» может содержать различные проверки перед записью, «завернутые» в конструкцию «Попытка-Исключение», которые, в свою очередь, могут также иметь глубокую иерархию вызовов процедур и функций. Попробуй разберись.

В-третьих, суть этой ошибки – некорректный код. А если быть более точным – несоблюдение требований к написанию кода с использованием транзакций.

Как решить эту проблему в 1С:Предприятие?  

3.    Как устранить ошибку в программе 1С Предприятие 8

Основным требованием к написанию кода с использованием транзакций, непосредственно связанным с ошибкой «В данной транзакции уже происходили ошибки» в 1С:Предприятие, являются правила использования обработки исключения:

1. Метод НачатьТранзакцию должен находиться за пределами блока Попытка-Исключение;

2. Все действия, выполняемые после вызова метода НачатьТранзакцию, должны находиться в одном блоке Попытка, в том числе чтение, блокировка и обработка данных;

3. Метод ЗафиксироватьТранзакцию должен идти последним в блоке Попытка перед оператором Исключение;

4. В блоке Исключение нужно сначала вызвать метод ОтменитьТранзакцию, а затем выполнять другие действия;

5. При использовании вложенных транзакций в конце блока Исключение рекомендуется добавить оператор ВызватьИсключение. Это позволит перенаправить исключение выше по стеку. В этом случае в журнале регистрации мы получим именно ту строку, которая привела к ошибке;

6. В блоке исключения рекомендуется сделать запись об ошибке средствами встроенного языка.

Общая схема во вложенной транзакции:

Схема вложенной транзакции в системе 1С:Предприятие 8.3

Пример:

Пример вложенной транзакции для решения ошибки «В данной транзакции уже происходили ошибки»

Пример вложенной транзакции для решения ошибки «В данной транзакции уже происходили ошибки»

Не следует использовать метод НачатьТранзакцию внутри неявной транзакции, вызванной платформой. В этом нет никакого смысла. Не стоит также «оборачивать» в явную транзакцию операцию записи коллекции объектов, которые не требуют согласованной записи. Если в блоке исключения, вложенной транзакции не используется оператор ВызватьИсключение, а используется, например, сообщение или запись в журнал регистрации, то нужно избегать явного или неявного обращения к базе данных после обработки исключения в конфигурациях 1С Предприятие 8.

Специалист компании «Кодерлайн»

Игорь Торба


Description


Egor Zotov



2018-02-02 17:40:07 MSK

https://bugzilla.altlinux.org/show_bug.cgi?id=34319

При обновлении apt и rpm с p8 до Sisyphus ошибка транзакции

# apt-get install apt rpm lua5.3 liblua5.1- lua5.1-alt-compat-
liblua5.1-preinstall- lua-module-luasocket
Выдает следующее:
Пакет liblua5.1-preinstall не установлен, и не может быть удалён.
Следующие дополнительные пакеты будут установлены:
  chrpath libapt liblua5.3 libquvi0.9 librpm7 luarocks synaptic
Следующие пакеты будут ОБНОВЛЕНЫ:
  apt libapt libquvi0.9 lua-module-luasocket luarocks rpm synaptic
Следующие пакеты будут УДАЛЕНЫ:
  liblua5.1 lua5 lua5.1-alt-compat
Следующие НОВЫЕ пакеты будут установлены:
  chrpath liblua5.3 librpm7 lua5.3
7 будет обновлено, 4 новых установлено, 3 пакетов будет удалено и 1144 не будет
обновлено.
...
file /usr/lib/rpm/macros from install of librpm7-4.13.0.1-alt1 conflicts with
file from package librpm-4.0.4-alt101.M80P.1
file /usr/lib/rpm/rpmrc from install of librpm7-4.13.0.1-alt1 conflicts with
file from package librpm-4.0.4-alt101.M80P.1
E: Ошибка во время исполнения транзакции


Comment 1


Gleb F-Malinovskiy



2018-02-02 17:52:00 MSK

Это связано с тем, что в p8 был увеличен релиз пакета librpm до такого, который не подпадает под конфликт, который проставлен в пакете librpm7.

Придётся изменить конфликт в пакете librpm7 таким образом, чтобы под него подпадал пакет из p8 и не поднимать релизы в бранчах таким образом если переносятся не все изменения.


Comment 2


Gleb F-Malinovskiy



2018-02-02 18:05:13 MSK

Попробуйте, пожалуйста, сделать такое обновление с подключённым таском:
 #198937 AWAITING #1 [test-only] sisyphus rpm4.git=4.13.0.1-alt2
когда он соберётся.


Comment 3


Egor Zotov



2018-02-02 19:08:46 MSK

[root@test /]# apt-get install apt rpm
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  apt-rsync libapt libicu60 liblua5.3 libpcre2 librpm librpm7 librpmbuild synaptic
Следующие пакеты будут ОБНОВЛЕНЫ:
  apt apt-rsync libapt librpm librpmbuild rpm synaptic
Следующие пакеты будут УДАЛЕНЫ:
  apt-indicator
Следующие НОВЫЕ пакеты будут установлены:
  libicu60 liblua5.3 libpcre2 librpm7
7 будет обновлено, 4 новых установлено, 1 пакетов будет удалено и 1047 не будет обновлено.
Необходимо получить 757kB/11,7MB архивов.
После распаковки потребуется дополнительно 37,0MB дискового пространства.
Продолжить? [Y/n] 
Получено: 1 http://git.altlinux.org repo/198937/x86_64/task librpm7 4.13.0.1-alt2 [336kB]
Получено: 2 http://git.altlinux.org repo/198937/x86_64/task rpm 4.13.0.1-alt2 [421kB]
Получено 757kB за 0s (4889kB/s).
Совершаем изменения...
...
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
# rebuilding database /var/lib/rpm started
rebuilding database /var/lib/rpm finished
delayed execution of posttrans filetriggers started
delayed execution of posttrans filetriggers finished

[root@test /]# apt-repo 
rpm file:///mnt/repo/ALT/Sisyphus x86_64 classic
rpm file:///mnt/repo/ALT/Sisyphus noarch classic
rpm file:///mnt/repo/ALT/Sisyphus x86_64-i586 classic
rpm http://git.altlinux.org repo/198937/x86_64 task
rpm http://git.altlinux.org repo/198937/x86_64-i586 task

после dist upgrade с rpm из таска:
Результат:
Следующие пакеты будут СОХРАНЕНЫ:
  gst-libav gst-plugins-bad1.0 libopencv2.4 libx265 simplescreenrecorder
1038 будет обновлено, 163 новых установлено, 7 пакетов будет заменено, 8 пакетов будет удалено и 5 не будет обновлено.
Необходимо получить 0B/954MB архивов.
После распаковки потребуется дополнительно 458MB дискового пространства.
Продолжить? [Y/n] 
Совершаем изменения...  
Подготовка...                                      #################################################################################################### [100%]
        файл /usr/lib64/lua/5.1 из устанавливаемого пакета liblua5.1-5.1.5-alt14.x86_64 конфликтует с файлом из пакета lua5.1-alt-compat-1.0-alt1.x86_64
        файл /usr/share/lua/5.1 из устанавливаемого пакета liblua5.1-5.1.5-alt14.x86_64 конфликтует с файлом из пакета lua5.1-alt-compat-1.0-alt1.x86_64
E: Ошибка во время исполнения транзакции


Comment 4


Egor Zotov



2018-02-05 09:43:43 MSK

Помогает:
# apt-get install apt rpm lua5.3 liblua5.1- lua5.1-alt-compat-
liblua5.1-preinstall- lua-module-luasocket

После чего можно обновиться.
Раз librpm не ругается, получается бага исправляется таском, повешу на lua.


Comment 5


Константин



2018-02-12 18:30:09 MSK

Всё ещё ругается на rpm.

file /usr/lib/rpm/macros from install of librpm7-4.13.0.1-alt1 conflicts with file from package librpm-4.0.4-alt101.M80P.1
file /usr/lib/rpm/rpmrc from install of librpm7-4.13.0.1-alt1 conflicts with file from package librpm-4.0.4-alt101.M80P.1

Помогло только подключение таска #198937 AWAITING #1 [test-only] sisyphus rpm4.git=4.13.0.1-alt2


Comment 6


Michael Shigorin



2018-06-07 20:44:10 MSK

(В ответ на комментарий №5)
> Помогло только подключение таска #198937 AWAITING #1 [test-only] sisyphus
> rpm4.git=4.13.0.1-alt2

Сегодня это несколько более развесистый #208001.


Comment 7


Repository Robot



2018-06-08 19:09:10 MSK

rpm-4.13.0.1-alt2 -> sisyphus:

Fri Jun 08 2018 Gleb F-Malinovskiy <glebfm@altlinux> 4.13.0.1-alt2
- darktemplar@:
  + Added tag RPMTAG_AUTOINSTALLED (closes: #34252);
  + spec: use strong interpackage dependencies.
- Readded armh arch support (by Sergey Bolshakov).
- librpm7: changed C: librpm to match 4.0.4-alt101.M80P.* versions from p8
  (ALT#34505).
- Synced macros definitions with rpm-build 4.0.4-alt112 (ALT#34684).
- Fixed posttrans filetriggers when different root path is used (ALT#34430).
- Changed rpm output format of non-terminal output to avoid truncation
  of package names.

Ой! Данный функционал ещё в разработке

Текст ошибки может звучать по-разному, например:

  • Поле объекта не обнаружено (ХХХХХХ);
  • Значение не является значением объектного типа (ХХХХХХ);
  • Метод объекта не обнаружен (ХХХХХХ);
  • Во время сохранения файла возникла ошибка.

Такие ошибки чаще всего возникают при некорректной работе базы 1С.

Для решения может помочь одно из следующих действий:

  • Очистите кэш платформы 1С.
  • Проверьте права пользователя в 1С.
  • Проверьте, включено ли использование внешнего модуля. Если да, создайте резервную копию информационной базы, после чего отключите внешний модуль.

Внешний модуль в управляемых конфигурациях (БП 3.0, ЗУП 3.1 и др.) находится в прочих настройках обмена. Если отметка проставлена — снимите её, после чего перезапустите 1С. 

Внешний модуль в неуправляемых конфигурациях (БП 2.0, ЗУП 2.5, УПП 1.3 и др.) находится по пути Отчеты → Регламентированные отчеты → Настройки → Для настройки параметров документооборота нажмите здесь (внизу). Отметьте пункт Использовать встроенный модуль документооборота, после чего перезапустите 1С.

  • Сделайте диагностику 1С-отчетности, отправьте отчет по диагностике и сообщите номер обращения специалисту технической поддержки 1С-Отчетность.
  • Запустите Конфигуратор 1С. Выберите пункт Отладка → Начать отладку.
  • Удостоверьтесь, что конфигурация находится на полной поддержке 1С, т.е. в нее не были внесены изменения и она соответствует конфигурации поставщика.

Запустите Конфигуратор 1С. Если конфигурация закрыта, то необходимо ее открыть: Конфигурация → Открыть конфигурацию. Слева в меню напротив названия конфигурации должен быть значок замка – объект поставщика не редактируется.

  • Попробуйте запустить 1С в тонком клиенте, для этого после нажатия на ярлык 1С выберите базу, затем нажмите Изменить → Далее → Основной режим запуска: выберите пункт Тонкий клиент → Готово. Запустите 1С.
  • Измените переменные среды. Рекомендуем обратиться к системному администратору для выполнения данных действий.
  • Проверьте кодировку в операционной системе Windows по инструкции смена кодировки. Рекомендуем обратиться к системному администратору для выполнения данных действий.

В случае системного языкового пакета, отличного от русского, программа 1С не может работать с внешней компонентой для отображения сертификатов. Для решения этой ситуации можно изменить параметры в системном реестре. Рекомендуем обратиться к системному администратору для выполнения данных действий.

Номер статьи: 129674145
Обновлено: 29.03.2023 12:55+0000

Возможно, вам также будет интересно:

  • Ошибка во время исполнения в программе
  • Ошибка во время исполнения yandex contest
  • Ошибка во время исполнения python
  • Ошибка во время инсталляции lifetime dll
  • Ошибка во время выполнения программы python

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии