В Google App Engine, работающем на Java 8, мы видим, что запросы веб-интерфейса к сервлетам не выполняются:
java.lang.OutOfMemoryError: GC overhead limit exceeded
Но трассировка стека для этой ошибки не связана с сервлетом - вместо этого она выбрасывается из фонаrun()
метод отложенной задачи.
Эти задачи обычно выполняются сервлетом отложенной задачи, и, конечно, не сервлетом, где мы видим ошибку 500.
Я чешу свойПодумайте об этом, и вам интересно, если конкретный экземпляр обслуживал и отложенную задачу, и этот запрос сервлета переднего плана, и он зависал из-за указанной выше ошибки GC, может ли он удалить поток сервлета (и, вероятно, другие потоки в том же экземпляре)?) так что все они терпят неудачу с одним и тем же исключением памяти?
Итак, мой вопрос: допускает ли изоляция потоков в экземпляре среды Java App Engine Java 8 ошибку памяти в одном потоке, что приводит к сбою всех потоков втот же самый экземпляр, и если да, будет ли трассировка трасс во всех потоках одинаковой?
Обновление: Просматривая журналы для конкретного идентификатора экземпляра, где это произошло примерно в одно и то же время, я вижу огромное количество других примеров одной и той же трассировки стека, все у разных пользователей, иразные сервлеты внешнего интерфейса, поэтому кажется, что он поддерживает теорию, что весь экземпляр был сломан и трассировка стека, которую мы видим, как-то пересекается с другим потоком в одном и том же экземпляре.