powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
15 сообщений из 15, страница 1 из 1
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36926842
ska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот давече повеселился - сессия в автокоммите, делаю delete и получаю deadlock :-)
(вторая сессия не в автокоммите конечно)

Сессия 1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
xxx@srv  31 > isql -S SRV xxx
Password:
 1 > set transaction isolation level  0 
 2 > go
 1 > set chained on
 2 > go
 1 > create table t(k binary( 1 ) primary key) lock datarows
 2 > go
 1 > insert into t values('1')
 2 > insert into t values('2')
 3 > insert into t values('3')
 4 > commit
 5 > go
( 1  row affected)
( 1  row affected)
( 1  row affected)
 1 > delete from t where k='2'
 2 > go
( 1  row affected)

Теперь Сессия 2
Код: plaintext
1.
2.
3.
4.
5.
6.
xxx@srv  3 > isql -S SRV xxx
Password:
 1 > set transaction isolation level  0 
 2 > go
 1 > delete from t where k='1'
 2 > go

тут висим. Теперь в сессию 1:

Код: plaintext
1.
2.
3.
 1 > delete from t where k='3'
 2 > go
( 1  row affected)

в сессии 2 получаем:
Код: plaintext
1.
2.
3.
4.
Msg  1205 , Level  13 , State  1 :
Server 'SRV', Line  1 :
Your server command (family id # 0 , process id # 22 ) encountered a deadlock
situation. Please re-run your command.

Привет
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36927315
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и ? Две конкурирующих пишущих транзакции, ты транзакцию не завершаешь, получаешь deadlock, вполне законно и понятно.

deadlock -и, тем более на записи, есть во всех СУБД, если только конечно СУБД не однопользовательская. Что удивительного ?
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36928383
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set transaction isolation level 0
на delete никак не влияет :)
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36928414
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 29.10.2010 18:20, Ggg_old wrote:

> set transaction isolation level 0
> на delete никак не влияет :)

Так и не должен.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36928748
ska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. lock datarows
2. Удаляются разные записи

Ну и BTW, в Оракле такой дряни точно не увидишь, да и DB2 себе такого не позволяет

Откуда копыта растут примерно понятно, но какого лешего - это к сайбэйзу - могли бы и поаккуратнее работать. Поменяйте binary на char - проблем не будет

Всего доброго,
Сергей
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36928848
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не люблю я когда нащего зверька(ASE) обижают!

Вот попробывал сделать репо по коду ska. Дедлока не поймал.
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36928899
ska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_Den,

ОГРОМНОЕ СПАСИБО !

Это означает что в 15 они уже эту лажу починили.
К сожалению не мог проверить на 15 ввиду отсутствия.

Буду настоятельно рекоммендовать клиенту перейти на новую версию.

С Уважением,
Сергей
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36929126
invariant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skacherrex_Den,

ОГРОМНОЕ СПАСИБО !

Это означает что в 15 они уже эту лажу починили.
К сожалению не мог проверить на 15 ввиду отсутствия.

Буду настоятельно рекоммендовать клиенту перейти на новую версию.

С Уважением,
Сергей

На 15.0.3 воспроизводится.
Adaptive Server Enterprise/15.0.3/EBF 17776 ESD#4/P/Linux Intel/Linux 2.6.9-42.ELsmp i686/ase1503/2768/32-bit/FBO/Thu Aug 26 09:22:11 2010

Так что переходить сразу к 15.5.
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36929189
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invariant,

Тут еще господа влияет эскалация блокировки! Таблица та маленькая. При изменении даже одной строки может возникнуть табличная блокировка. От сюда вам и дедлок.

Так что это может и не баг даже! И это может работает без дедлока на ASE 12.5. Надо проверять!!!
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36929238
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 30.10.2010 16:42, cherrex_Den wrote:

> Тут еще господа влияет эскалация блокировки! Таблица та маленькая. При изменении
> даже одной строки может возникнуть табличная блокировка. От сюда вам и дедлок.

Тогда бы не было дедлока, был бы просто заблокирован один из процессов.

Но на самом деле пока мне не покажут таблицу блокировок в этот момент,
что это баг я верить не собираюсь.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36929321
invariant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Ну вот пример. 1-й syslocks после 1-го delete, 2-й - после 2-го.

Код: plaintext
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.
1> select * from syslocks
2> go
 id          dbid   page        type   spid   class
         fid    context row    loid        partitionid nodeid
 ----------- ------ ----------- ------ ------ ------------------------------
         ------ ------- ------ ----------- ----------- ------
   933431914      4           0      3    417 Non Cursor Lock
              0       0      0         834           0   NULL
   933431914      4     1741785      8    417 Non Cursor Lock
              0       0      1         834           0   NULL

(2 rows affected)
1> select * from syslocks
2> go
 id          dbid   page        type   spid   class
         fid    context row    loid        partitionid nodeid
 ----------- ------ ----------- ------ ------ ------------------------------
         ------ ------- ------ ----------- ----------- ------
   933431914      4           0      3    417 Non Cursor Lock
              0       0      0         834           0   NULL
   933431914      4           0      3    384 Non Cursor Lock
              0       0      0         768           0   NULL
   933431914      4     1741785    264    417 Non Cursor Lock
              0       0      1         834           0   NULL
   933431914      4     1741785      8    384 Non Cursor Lock
              0       0      0         768           0   NULL

(4 rows affected)
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36929442
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После второго локи не меняются! Оно ипонятно

P/S ASE 15.5
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36929596
Фотография Zhora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил на 15.0.3 тоже самое (lock, deadlock), но eсли поставить
Код: plaintext
1.
2.
3.
4.
5.
delete from t where k = convert(binary,'1') 
...
delete from t where k = convert(binary,'2') 
...
delete from t where k = convert(binary,'3') 
то не будет ни "висения" (непонятного lock-а) ни тем более deadlock-a.
B 15.5 type mismatch сильно "ослаблен", по-видмому там и так проходит,
а почему в 12.5.4, 15.0.3 из-за этого (?) чудеса непонятно, наверное bug.
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36930584
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 31.10.2010 5:07, Zhora wrote:

> то не будет ни "висения" (непонятного lock-а) ни тем более deadlock-a.
> B 15.5 type mismatch сильно "ослаблен", по-видмому там и так проходит,
> а почему в 12.5.4, 15.0.3 из-за этого (?) чудеса непонятно, наверное bug.

Да никаких чудес. Индекс не использует, начинает сканировать таблицу, ставит
лок табличный (наверное, я локи ещё не анализировал).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
    #36931849
ska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДа никаких чудес. Индекс не использует, начинает сканировать таблицу, ставит
лок табличный (наверное, я локи ещё не анализировал).

Индекс не при чём. Уберите primary key, и всё будет точно так же. Где-то глюки из-за преобразования типов.

С Уважением,
Сергей
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5 - вот весёлый блокировщик - deadlock на 1 delete
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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