You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Kevan Miller (JIRA)" <de...@geronimo.apache.org> on 2005/12/13 20:20:45 UTC

[jira] Updated: (GERONIMO-777) Deployment files not removed on Windows

     [ http://issues.apache.org/jira/browse/GERONIMO-777?page=all ]

Kevan Miller updated GERONIMO-777:
----------------------------------

    Fix Version: 1.1
                     (was: 1.0)
        Version: 1.0
                     (was: 1.0-M3)
                     (was: 1.0-M4)
                     (was: 1.0-M5)

Most temporary/config-store files are now cleaned up on Windows, but not all... We can do better, but I don't want to touch it right now. I'll fix the remaining issues on HEAD.

FYI, thanks to John Sisson, if you use geronimo.sh or .bat, by default, temp files will be stored in $GERONIMO_BASE/var/temp

Here's info on the current status...

config-store: 
On unix, config-store directories will always be deleted on undeploy. On windows, config-store directories will sometimes be deleted on undeploy. jsp/servlets config-store directories are often deleted immediately. ejb's are almost always locked by the ClassLoader and not deleted immediately. Until the ClassLoader has been GC'ed, we won't be able to delete the directory. A ThreadLocal reference is keeping the ClassLoader's alive. Until the thread is used (and the threadlocal reference is overwritten, the ClassLoader won't be GC'ed)delet. So, it may be a very long time before the ClassLoader is GC'ed. If we're unable to delete the directory during undeploy processing, the directory is queued for deletion. A config-store reaper will attempt to delete the directory once a minute. The pending deletion queue is also persisted to disk. So, on a restart, we'll be able to delete the directories.

temp files:
During deploy, temporary files are created by Deployer and DeploymentUtil. Deployer files are deleted after use. On windoze, we're not always able to delete these files. If we're unable to delete, the files/directories are placed on a pending deletion queue. This queue is not persisted. If the server is stopped, the files will never be deleted. This needs to be improved, but I don't want to introduce this late in the game.

DeploymentUtil temporary files are not explicitly deleted. Instead, deleteOnExit() is used to mark the files for deletion on process exit. As far as I can tell, this works on unix systems, but not on Windows. Also, this means that the files will exist for at the life of the server process (at a minimum). I haven't made any changes to this. I think we should be more proactive cleaning up this files, but again have not yet fixed.

> Deployment files not removed on Windows
> ---------------------------------------
>
>          Key: GERONIMO-777
>          URL: http://issues.apache.org/jira/browse/GERONIMO-777
>      Project: Geronimo
>         Type: Bug
>     Versions: 1.0
>  Environment: Windows
>     Reporter: Jeremy Boynes
>     Assignee: Kevan Miller
>      Fix For: 1.1

>
> When running on Windows, deployment leaves behind files and directories in the user's temp directory. Due to the way temp file names are allocated, this can result in deployment failures with an unintuitive AccessDenied IOException. These files cannot be removed without shutting down the server.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira