Утечка памяти cfmodule внутри cffunction

гуглеры, если у вас есть дамп кучи с корнем coldfusion.runtime.CFDummyComponent , читайте дальше.

Обновление от 22.02.2011

Марк Эшер из MXUnit fame обнаружил ту же ошибку в другом контексте . Его решение включает в себя большой цикл по запросу, решаемый путем перехода от query = "name" к from = "1" to = "# name.recordcount #" index = "row" . Другой подход, который работает, - это использование внутри цикла как такового:


    
    
        
    
    

Это очень эффективно, когда вы сталкиваетесь с ситуациями, когда вам нужно делать что-то внутри цикла, например, запросы и внутри , чтобы потреблялась только память для этой итерации.

Старый вопрос

Надеюсь, что кто-то другой подтвердит или скажет мне, что я делаю неправильно. Я могу постоянно воспроизводить запущенный OOM, вызывая файл oom.cfm (показанный ниже). Используя jconsole, я могу видеть, что запрос потребляет память и никогда не освобождает ее до завершения. Проблема, по-видимому, связана с вызовом внутри , где, если я закомментирую вызов , все будет собрано мусором, пока запрос это работает.

Версия ColdFusion : 9,0,1, 274733

Аргументы JVM

java.home=C:/Program Files/Java/jdk1.6.0_18
java.args=-server  -Xms768m -Xmx768m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=512m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/41ep8/cfusion.ear/cfusion.war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/41ep8/cfusion.ear/cfusion.war/WEB-INF/cfusion/lib/neo_jaas.policy -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=56033

Тестовый пример

oom.cfm (здесь вызывается template.cfm ниже - Ошибка Adobe № 85736 )


    
    
    




    
    
        
    

template.cfm


Обновление № 2 ( cfthread case от Elliott Sprehn - Adobe ColdFusion Bug # 83359 )

  
        
          
          
      
    
    
  

8
задан Community 23 May 2017 в 12:26
поделиться