服务器重新启动时无法读取/写入Coldfusion 8.01 tmpCache目录

服务器重新启动时无法读取/写入Coldfusion 8.01 tmpCache目录,coldfusion,Coldfusion,我在安装CF8.01时遇到了一个奇怪的问题。我最近更新了coldfusion图像修补程序(kb403411),发现CF突然开始需要为一些图像处理函数使用新目录[imageresize()] {coldfusionh_home}/tmpCache&it子目录/CFFileServlet/\u cf_image/。最初tmpCache不存在&必须创建,它的子目录是自动创建的。然而,这里有三个问题: Coldfusion似乎没有从子目录中删除临时文件 只有在第一次重新启动coldfusion之后,首次

我在安装CF8.01时遇到了一个奇怪的问题。我最近更新了coldfusion图像修补程序(kb403411),发现CF突然开始需要为一些图像处理函数使用新目录[imageresize()]

{coldfusionh_home}/tmpCache&it子目录/CFFileServlet/\u cf_image/。最初tmpCache不存在&必须创建,它的子目录是自动创建的。然而,这里有三个问题:

  • Coldfusion似乎没有从子目录中删除临时文件
  • 只有在第一次重新启动coldfusion之后,首次尝试向这些目录写入内容时才会抛出错误。随后的读/写尝试是正常的。[跟踪发布在下面]
  • 必须将目录项添加到沙盒设置中,以允许访问此目录[实际上,这更像是PIA而不是问题-这是沙盒的正确行为]
  • 所以我有几个问题:

  • 如何测试/确保CF在不再需要时删除这些文件
  • 启动错误的可能原因是什么?如何修复
  • 沙箱问题是一个难题,可以告诉CF使用/tmp或/var/tmp或其他东西吗
  • 我在目录结构上尝试了几种不同的所有者/权限组合&我确信这不是权限

    有什么想法/想法吗

    以下是错误跟踪:

    image rezise
    500
    
    ROOT CAUSE: 
    java.security.AccessControlException: access denied (java.io.FilePermission /opt/coldfusion8/tmpCache read)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
    at java.io.File.exists(File.java:731)
    at coldfusion.runtime.RuntimeServiceImpl.getTempCacheDirectory(RuntimeServiceImpl.java:2038)
    at coldfusion.tagext.io.ImageTag.getTempImageFile(ImageTag.java:637)
    at coldfusion.tagext.io.ImageTag.writeImageToBrowser(ImageTag.java:571)
    at coldfusion.tagext.io.ImageTag.doStartTag(ImageTag.java:459)
    at cftest2ecfm1941538635.runPage(/var/www/vhosts/bigblock.ca/subdomains/propaganda/httpdocs/filetest/test.cfm:29)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:483)
    at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
    at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:288)
    at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
    at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
    at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:74)
    at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
    at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
    at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
    at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at coldfusion.CfmServlet.service(CfmServlet.java:198)
    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
    at jrun.servlet.FilterChain.service(FilterChain.java:101)
    at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
    at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
    at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
    at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
    at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
    
    javax.servlet.ServletException: ROOT CAUSE: 
    java.security.AccessControlException: access denied (java.io.FilePermission /opt/coldfusion8/tmpCache read)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
    at java.io.File.exists(File.java:731)
    at coldfusion.runtime.RuntimeServiceImpl.getTempCacheDirectory(RuntimeServiceImpl.java:2038)
    at coldfusion.tagext.io.ImageTag.getTempImageFile(ImageTag.java:637)
    at coldfusion.tagext.io.ImageTag.writeImageToBrowser(ImageTag.java:571)
    at coldfusion.tagext.io.ImageTag.doStartTag(ImageTag.java:459)
    at cftest2ecfm1941538635.runPage(/var/www/vhosts/bigblock.ca/subdomains/propaganda/httpdocs/filetest/test.cfm:29)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:483)
    at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
    at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:288)
    at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
    at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
    at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:74)
    at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
    at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
    at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
    at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at coldfusion.CfmServlet.service(CfmServlet.java:198)
    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
    at jrun.servlet.FilterChain.service(FilterChain.java:101)
    at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
    at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
    at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
    at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
    at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
    
    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:70)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
    at jrun.servlet.FilterChain.service(FilterChain.java:101)
    at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
    at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
    at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
    at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
    at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
    

    好的,我知道没有人能帮上忙,所以我会试着从我的个人经历中给你一个提示

    例如,如果您在页面执行期间执行了一些文件i/o操作,例如文件上载,并且您使用java本机类进行文件操作,并且在调用file close()方法之前引发异常,则所有文件都会被锁定,并且在没有更高权限和/或服务器重新启动的情况下无法打开/删除。 发生在我身上几十次,所以我可以认为这可能是你的问题

    干杯,
    z、

    @Zarko-嗨,对不起,我不认为这是问题所在,权限错误只会在服务器重新启动后发生,并且只会在第一次执行模板时发生。后续执行无需任何干预即可[我不必更改权限或重新启动]