powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / deadlock при одной транзакции
18 сообщений из 18, страница 1 из 1
deadlock при одной транзакции
    #38891071
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В базе запущены 4 читающих транзакции и одна пишущая
Код: sql
1.
SELECT * FROM tmp$transactions


TMP$TRANSACTION_IDTMP$ATTACHMENT_IDTMP$POOL_IDTMP$POOL_MEMORYTMP$TIMESTAMPTMP$SNAPSHOTTMP$QUANTUMTMP$SAVEPOINTSTMP$READONLYTMP$WRITETMP$NOWAITTMP$COMMIT_RETAININGTMP$STATETMP$PRIORITYTMP$TYPETMP$PAGE_READSTMP$PAGE_WRITESTMP$PAGE_FETCHESTMP$PAGE_MARKSTMP$RECORD_SELECTSTMP$RECORD_INSERTSTMP$RECORD_UPDATESTMP$RECORD_DELETESTMP$RECORD_PURGESTMP$RECORD_EXPUNGESTMP$RECORD_BACKOUTS8 33407454 09627.02.2015 18:27:09.0002 0000YNNNPRECOMMITTEDREAD COMMITTED1231922 2263 55900001 6640018 2311091 02427.02.2015 18:44:44.00000YNYNPRECOMMITTEDREAD COMMITTED0022000000018 222374425 60027.02.2015 18:41:07.00018 2222 0000NYNNACTIVEREAD COMMITTED1102 28740574064600708 338376812 28827.02.2015 18:27:10.0001 0000YYNNPRECOMMITTEDREAD COMMITTED4705 36522 5630000008 3321467 16827.02.2015 18:27:09.00000YNNNPRECOMMITTEDREAD COMMITTED2204322136000000


Эта пишущая транзакция выдает ошибку
deadlock update conflicts with concurrent update
как такое может быть?

С уважением, Vasilisk
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891081
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_как такое может быть?

транзакция 18222 все портит. вероятно, где-то затесался режим no_rec_version. в mon$ он не показывается.

p.s. чудес не бывает, сообщение выдает или не 18222, или ...
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891089
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_как такое может быть?
Транзакция 8338 выдала select for update with lock из-за чего у неё и отрос статус write.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891096
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvp.s. чудес не бывает, сообщение выдает или не 18222, или ...Она именно и выдает. В ней пытаюсь писать отгребаю ошибку
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891102
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_В ней пытаюсь писать отгребаю ошибку
Обычно в этой ошибке есть ещё и номер транзакции с которой она законфликтовала.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891106
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТранзакция 8338 выдала select for update with lock из-за чего у неё и отрос статус write.Это моя читающая транзакция. Осознано я такой оператор не вызывал.
kdvгде-то затесался режим no_rec_version.Я не вижу такого. 3 аттачмент - это проблемное соединение. 1 - используется только для прослушки событий, 10 - IBExpert. Я подключился ним уже после ошибки
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891137
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,


Ты уверен, что там нет другой пишущей тр-ции ?
Ибо снапшот с tmp таблицами не обновляется в течение той тр-ции, в которой он был создан.

PS судя по обсуждению, IB тут никто не знает :)
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891138
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvв mon$ он не показывается.А где ты видишь mon$ у автора ?
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891140
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovОбычно в этой ошибке есть ещё и номер транзакции с которой она законфликтовала.
не в IB
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891141
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТранзакция 8338 выдала select for update with lock из-за чего у неё и отрос статус write.А что, в IB это есть ?
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891145
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrне в IB
А-а-а-а! Подловил.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891193
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТы уверен, что там нет другой пишущей тр-ции ?Я уже ни в чем не уверен, но второй транзакции быть не должно
hvladснапшот с tmp таблицами не обновляется в течение той тр-ции, в которой он был создан.Я рестартовал транзакцию в IBExpert для просмотра этой таблицы
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891195
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladсудя по обсуждению, IB тут никто не знает :)Я прошу прощения за то, что дезориентировал сообщество. Я подобное поведение наблюдаю, действительно, в IB. 2009 и XE
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891201
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladА где ты видишь mon$ у автора ?
виноват. мне пофиг, что tmp$, что mon$. Но в данном случае - не показывается в tmp$. В mon$ вроде бы подробности есть (вроде сам презентацию делал, не помню, надо глянуть).

_Vasilisk_Я подобное поведение наблюдаю, действительно, в IB. 2009 и XE
точные версии давай. последние - у 2009 это билд 9.0.4.443, у XE это билд 10.0.5.595. Ну и, воспроизводимую ситуацию тоже давай. не хочешь сюда - кидай на support@ibase.ru, я перепроверю.
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891212
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvточные версии давай.В понедельник
kdvНу и, воспроизводимую ситуацию тоже давайС этим сложнее. Много чего участвует. В том числе допиленный IBX на две транзакции. Но я попробую повыпиливать куски кода. Или достаточно будет базы + экзешник без исходников?
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891216
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

мне не нужно приложение. мне нужен сценарий, т.е. последовательность действий для воспроизведения проблемной ситуации.
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38891218
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvмне нужен сценарий,Этого я не скажу. Проблема происходит при импорте данных из внешнего файла базу. Все файлы импортируются нормально, а вот один втыкается. Причем не сразу, а после импорта 14% записей в эту таблицу.

Попробую в понедельник чего-нибудь подшаманить
...
Рейтинг: 0 / 0
deadlock при одной транзакции
    #38892528
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Баг локализован
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
SET SQL DIALECT 3;

CREATE TABLE MAIN (
    ID  INTEGER NOT NULL
);

ALTER TABLE MAIN ADD CONSTRAINT PK_MAIN PRIMARY KEY (ID);

INSERT INTO MAIN ("ID") VALUES (1);
INSERT INTO MAIN ("ID") VALUES (2);

SET TERM ^ ;

CREATE PROCEDURE sp_check_bug
AS
  DECLARE VARIABLE var_id INTEGER;
BEGIN
  FOR
    SELECT
      mn."ID"
    FROM
      main mn
    WHERE
      mn."ID" = 1
    INTO
      :var_id
    AS CURSOR
      cur_mn
  DO BEGIN
    UPDATE main mn SET
      mn."ID" = 2
    WHERE
      CURRENT OF cur_mn;

    WHEN GDSCODE unique_key_violation DO
      DELETE FROM
        main mn
      WHERE
        CURRENT OF cur_mn;
  END
END^

SET TERM ; ^

COMMIT WORK;

EXECUTE PROCEDURE sp_check_bug;



Вызов процедуры генерирует ошибку
deadlock
.
deadlock.
update conflicts with concurrent update.

Если заменить выделенную строку на
Код: sql
1.
mn."ID" = 1


то все работает

Сервер
Server Version: WI-V9.0.3.437
Server Implementation: InterBase/x86/Windows NT
Service Version: 2

и еще один
Server Version: WI-V11.0.2.540
Server Implementation: InterBase/x64/Windows
Service Version: 2


База в аттаче
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / deadlock при одной транзакции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]