MySQL - не падает сам по себе. Он живой.
Просто на какие-то доли секунды теряется соединение.
sqlalchemy делает реконнект и все работает как раньше.
Но именно в момент рестарта и реконекта бывают вот такие ошибки как я привел в своем вопросе.
Не будет так работать.
Речь идет о файле: /etc/asterisk/extensions_custom.conf
В котором пишутся вручную диалпланы.
Попробуйте сами там создать диалплан и увидите.
И еще вы объявляете массив @razdel, вносите в него данные через push.
А потом откуда не возьмись появляется переменная $razdel.
Если хотите передать массив в функцию, то можно это сделать так:
my $razdel = \@razdel;
Ну и потом только передавать.
Салават: Ну вы бы воткнули везде где только можно print и смотрели бы что там выводится. Так быстрее разобрались.
А если сходу, то вот это странно:
в функцию _dopsecArr вы передаете два аргумента 0 и $razdel
_dopsecArr(0, $razdel);
А потом получаете
(my $razdel, my $arr) = @_ ;
И выходит, что раздел у вас всегда будет равен 0.
А $arr будет равен $razdel
P.S. И кстати стоит писать вот так:
my ( $razdel, $arr) = @_ ;
Салават: Проблема не в перл-коде в данном случае, а в повторном запросе SQL в каждой итерации.
Я изменил свой первый комментарий.
Попробуйте забрать вообще все.
Потом в хэш заносите информацию по дочерним комментариям.
Федор: Если свет вырубали в датацентре, то надо бежать от такого датацентра как от огня.
А если дома, ну поможет screen.
Сервера обычно ребутят редко, раз в несколько лет.
Просто на какие-то доли секунды теряется соединение.
sqlalchemy делает реконнект и все работает как раньше.
Но именно в момент рестарта и реконекта бывают вот такие ошибки как я привел в своем вопросе.