Я работаю над проектом Ruby, где мне нужно преобразовать необработанный XML-документ с помощью таблицы стилей xsl от моего пользователя.SystemStackError локализован, но приводит к остановке производственного сервера
Недавно я понял, что некоторые стили моего пользователя имеют бесконечные циклы, из-за которых мое приложение разбилось, поэтому я добавил некоторые ошибки для предотвращения такого события.
rescue SystemStackError, NoMemoryError => e
puts "error caught #{e.inspect}"
я смог успешно спасти эту ошибку, когда я бегала приложение локально, но когда я развернуть его к моему примеру AWS, используя ту же таблицу стилей, эта ошибка была поймана только для небольших файлов (например, , ~ 200 КБ xml).
С большим размером xmls (скажем, 4 МБ) приложение кажется застрявшим (он никогда не завершит текущую задачу и не перейдет к следующему).
Я думал, что у меня недостаточно памяти на моем экземпляре aws, но даже после его изменения с t2.micro на t2.large (у которого такой же объем памяти, что и у моей локальной машины) мое приложение все равно застряло бы без причина.
Я сравнил все драгоценные камни как на моей локальной машине, так и на моем экземпляре aws, и все они имеют одинаковые версии. Я использую Nokorigi (1.6.7).
Может кто-нибудь, пожалуйста, дайте мне несколько советов относительно того, где я должен выглядеть? Любая помощь будет оценена!
PS: Я должен отметить, что, от отчаяния, я даже добавил заявление как этот
rescue Exception => e
#log exception here
в конце всей моей другой обработки ошибок коды, в надежде уловить проблемы ... но, увы, призрак остается анонимным и смертельным. :(