|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
Прислали лог самодельного репликатора (на самом деле это не просто репликатор, а целый сервер, также обслуживает центральную базу, координирует базы "филиалов", и т.п.). Сказали, что ночью случилась ошибка которую никогда до этого не видели и данные перестали поступать из "филиалов". По логу удалось восстановить следующее: 1. Ночью запустился ежесуточный перерасчёт статистики индексов. 2. При пересчёте статистики индекса таблицы A, который автоматом создаётся для PK произошёл дэдлок. Транзакция откатилась. 3. Параллельно с этим при select-е из таблицы А произошёл дэдлок. Транзакция откатилась. 4. Теперь при любом select-е к таблице А происходит дэдлок. Причём это проявляется не только в репликаторе, но на всех клиентах, которые работают с центральной базой. Как вообще такое могло произойти? У меня в голове дедлок вообще никак не вяжется с select. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 10:38 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
ArtDenТеперь при любом select-е к таблице А происходит дэдлок.Вот так вот - пустой дедлок, без подробностей ? Он обычно не ходит один ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 11:13 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
К сожалению, подробностей нету. Ибо: [02:27:07] (tr4788) INDEX_STAT/ERROR: Error text = deadlock can't format message 13:87 -- message file D:\firebird.msg not found, error code = -913 [02:27:09] (tr2864) SERVER/ERROR: Exception during processing of incoming data: deadlock can't format message 13:87 -- message file D:\firebird.msg not found :( Мой косяк. Зачем я fbclient.dll в дистрибутив засунул... Так что из подробностей, только наличие факта дэдока + тексты sql запросов, которые вызвали ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 12:24 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
И кстати, почему нельзя сделать так, чтобы даже без firebird.msg текст ошибки был более осмысленным? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 12:32 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
ArtDenИ кстати, почему нельзя сделать так, чтобы даже без firebird.msg текст ошибки был более осмысленным?Каким образом ? Придумать его ? 13:87 - это сообщение SQLERR, не самого движка. Означает deadlock. Возможный твой косяк в том, что нужно весь статус парсить, или ты так и делаешь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 12:42 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
Смутно понимаю, что имеется ввиду. В самописной либе для работы с FB исключения генерируются таким образом: Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 12:55 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
ArtDen, fb_interpret нужно вызывать в цикле, пока он не вернёт нулл. Ты читаешь только первый код ошибки в статусе. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 12:59 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
hvlad, Это исправлю. Что насчёт deadlock? Есть идеи насчёт того, почему он мог там возникнуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 13:06 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
ArtDen, что-то пошло не так при обновлении статистики и повлияло на кеш метаданных. Это только предположение. После полного дисконнекта это должно пройти. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 13:08 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
Да, после того, как репликатор остановили, select от других клиентов стал проходить без ошибок. По поводу вытаскивания текста ошибки так нормально: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 13:20 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
ArtDenтак нормально Нет. Условие выхода из цикла неправильное. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 13:28 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
ArtDenПо поводу вытаскивания текста ошибки так нормально:Вроде да Укажи точную версию FB ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 13:29 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, А как правильно? hvlad, Версию запрошу. Я этот проект давно уже не поддерживаю. Со мной связались только потому, что основной разработчик ночью на телефонные звонки не отвечал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 14:17 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
ArtDenА как правильно? Код: plaintext 1. 2. 3. 4. 5.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2017, 14:52 |
|
Deadlock при выпонении select
|
|||
---|---|---|---|
#18+
Запросил версию сервера. Ответили 2.5.4.26856_0_Win32 Почему Win32 не спрашивайте. Не знаю. При мне туда ставили 64-битный вариант SS + добавили кучу памяти на сервер (ну и FB настроили на бОльшую производительность, т.к. база ожидалась огромной). Видимо успели переустановить :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2017, 14:23 |
|
|
start [/forum/topic.php?fid=40&tid=1561692]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 289ms |
total: | 431ms |
0 / 0 |