powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка #HY000Lock wait timeout exceeded
6 сообщений из 6, страница 1 из 1
Ошибка #HY000Lock wait timeout exceeded
    #39231836
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локальная база данных на POS-терминале, версия MySQL MariaDB 5.2.14.
Сегодня на 3-х POS-терминалах в разное время выскочила ошибка #HY000Lock wait timeout exceeded, и также внезапно исчезла. Таблицы, при модификации которых возникла ошибка, продолжали использоваться и после ее возникновения. Ошибка совместного доступа исключена - по логике приложения эти таблицы используются только локально, какой-то несанкционированный доступ извне очень маловероятен.
Все, что удалось выудить из системного лога:
160509 14:20:36 [Note] C:\MariaDB 5.2\bin\mysqld.exe: Normal shutdown

160509 14:20:36 [Note] Event Scheduler: Purging the queue. 0 events
160509 14:20:39 [Warning] C:\MariaDB 5.2\bin\mysqld.exe: Forcing close of thread 54784 user: 'root'

InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use InnoDB's own implementation
InnoDB: Compressed tables use zlib 1.2.3
InnoDB: Windows native async i/o is disabled as default.
InnoDB: It is not applicable for the current multi io threads implementation.
160509 14:22:55 InnoDB: Initializing buffer pool, size = 126.0M
160509 14:22:55 InnoDB: Completed initialization of buffer pool
160509 14:22:56 InnoDB: highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 948294740
160509 14:22:56 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 953537536
InnoDB: Doing recovery: scanned up to log sequence number 958282415
InnoDB: 1 transaction(s) which must be rolled back or cleaned up
InnoDB: in total 661218 row operations to undo
InnoDB: Trx id counter is D8700
160509 14:23:13 InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 0 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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
InnoDB: Apply batch completed
InnoDB: Starting in background the rollback of uncommitted transactions
160509 14:23:23 InnoDB: Rolling back trx with id D835C, 661218 rows to undo

InnoDB: Progress in percents: 1160509 14:23:23 Percona XtraDB ( http://www.percona.com) 1.0.17-14.1 started; log sequence number 958282415
160509 14:23:23 [Note] Plugin 'FEEDBACK' is disabled.
2160509 14:23:27 [Note] Event Scheduler: Loaded 0 events
160509 14:23:27 [Note] C:\MariaDB 5.2\bin\mysqld.exe: ready for connections.
Version: '5.2.14-MariaDB' socket: '' port: 3306 mariadb.org binary distribution
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
InnoDB: Rolling back of trx id D835C completed
160509 14:27:46 InnoDB: Rollback of non-prepared transactions completed
160509 15:00:03 [Note] C:\MariaDB 5.2\bin\mysqld.exe: Normal shutdown

160509 15:00:03 [Note] Event Scheduler: Purging the queue. 0 events
160509 15:00:03 InnoDB: Starting shutdown...
160509 15:00:04 InnoDB: Shutdown completed; log sequence number 1200190205
160509 15:00:04 [Note] C:\MariaDB 5.2\bin\mysqld.exe: Shutdown complete

InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use InnoDB's own implementation
InnoDB: Compressed tables use zlib 1.2.3
InnoDB: Windows native async i/o is disabled as default.

Что этому предшествовало: 5 дней назад в порядке эксперимента перевел несколько таблиц, которые работают как временные, в MyISAM, но затем отказался от этой затеи и вернул все в INNODB. Модификации делал через Drop table / Create table. Попутно добавил в my.ini строки:
key_buffer_size = 32M
sort_buffer_size = 1M
т.к. эти параметры, как я понял, используются именно для MyISAM ( http://www.hostcms.ru/documentation/server/mysql/), а памяти на терминалах не густо (где 1Г, где и вовсе 512М).
После этого все 5 дней до сегодняшнего никаких модификаций ни со структурой базы, ни с параметрами MySQL, не производилось, и никаких проблем не было.
Ошибка возникала при записи как раз в одну из тех таблиц, с которыми проводились эксперименты.
Может ли это быть связано с изменением размеров буферов, либо с некорректным пересозданием таблиц, или же причина в другом? 5 дней нормальной работы дают повод в этом усомниться.
...
Рейтинг: 0 / 0
Ошибка #HY000Lock wait timeout exceeded
    #39231857
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A-MaR14:22:56 InnoDB: Database was not shut down normally!Меня бы в первую очередь напрягли эти строчки. По какой причине произошел аварийный останов MySQL?
...
Рейтинг: 0 / 0
Ошибка #HY000Lock wait timeout exceeded
    #39231873
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftA-MaR14:22:56 InnoDB: Database was not shut down normally!Меня бы в первую очередь напрягли эти строчки. По какой причине произошел аварийный останов MySQL?
Здесь просто перезагрузили POS кнопкой reset.
...
Рейтинг: 0 / 0
Ошибка #HY000Lock wait timeout exceeded
    #39231875
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так-с, интересно... по ссылке ( http://www.hostcms.ru/documentation/server/mysql/ , которая в стартовом сообщении скопировалась неправильно), именно параметр sort_buffer_size упоминается в разделе "Оптимизация MySQL для MyISAM", но нет ни слова о параметре myisam_sort_buffer_size. Тогда как по другим ссылкам в первую очередь говорится как раз о myisam_sort_buffer_size. Выходит, sort_buffer_size - это более глобальный параметр, влияющий не только на MyISAM?
...
Рейтинг: 0 / 0
Ошибка #HY000Lock wait timeout exceeded
    #39231893
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A-MaR,

Читайте оригинальную документацию, а не мутные пересказы.
http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_myisam_sort_buffer_size The size of the buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE. http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_sort_buffer_size Each session that must perform a sort allocates a buffer of this size. sort_buffer_size is not specific to any storage engine and applies in a general manner for optimization.
...
Рейтинг: 0 / 0
Ошибка #HY000Lock wait timeout exceeded
    #39232025
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Виновник" найден. Кто-то решил в самые пиковые часы подгрузить на кассы большой файл с товарами порядка 150 тыс. записей. А служба обмена работает таким образом, что вначале импортирует этот файл как есть, без каких-либо проверок, в промежуточную таблицу, а затем заталкивается в базу одной транзакцией конструкцией вида select count(function_import(TI.ID_TempItem)) from TempItems TI. За полгода использования таким способом случалось грузить объемы и поболее, работает очень быстро и проблем ни разу не доставляло, но вот то, что прогрузку решат делать в пиковые часы, я как-то не предполагал.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка #HY000Lock wait timeout exceeded
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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