[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [virgo-dev] Some exceptions under Windows in M4

Hi Tim

There are two distinct issues here. Thanks for taking the time to describe them carefully.

Firstly, the startup.bat exception.  I'm not sure why it was thrown, but a DE0080E event log message should have been logged before the exception is thrown. Did you see that message?

Anyway, one potential cause of the exception is that somehow the deployer recovery log file is getting two entries for the splash app bundle and the second one is being detected as an unexpected duplicate. You could take a look at the recovery log before a startup you expect to fail and before a startup you expect to succeed and see how many splash app entries are in it on both occasions. The file is work\org.eclipse.virgo.kernel.deployer_<version>\recovery\deployed and a typical entry to recover the splash app is:

>file:/Users/glynnormington/virgo-web-server-2.1.0.M01/pickup/org.eclipse.virgo.apps.splash-2.1.0.M01.war;

Perhaps you would be kind enough to raise a bugzilla and capture your findings so we can look into this further.

Secondly, the Eclipse failure. There is a basic problem - some would say bug - in Java file io where a "list files" method sometimes returns null on Windows (rather than throwing an exception, which you might expect). This typically happens when the file path is very long but can happen for other reasons. We have introduced a utility into Virgo which checks for the null return and throws a FatalIOException to help diagnose the problem and we use this utility everywhere we need to list files.

To see if the file path length is provoking this problem, please could you try the following:

* Place Virgo closer to the root of the drive, say in G:\ rather than G:\tools\java\virgo.
* Rename the Virgo install directory, virgo-web-server-2.1.0.M04-incubation, to something much shorter, say v.
* Rename the hosted repository PAR file org.eclipse.virgo.apps.repository-2.1.0.M04-incubation.par in the pickup directory to something shorter such as h.par.

If this prevents the problem from recurring, then it's safe to say this is a file path length problem. Unfortunately, no real fix is available for this problem in Java (but we can point you at the relevant sunbug, or possibly oraclebug these days) although paths will be a bit shorter when we exit incubation. Anyway, please let us know how you get on and raise another bugzilla if you would like to, although I don't want to raise your hopes for a real fix.

Hope that's some help.

Regards,
Glyn

On 22 Sep 2010, at 04:12, Tim Goeke wrote:

> Hey there Virgoians, I've been away for a while but I finally had a chance to unpack the M4 release tonight and try it out.
> 
> On my Mac it appears to be working great, no surprises.  For the discerning mind, you may be sensing a "but..." and so here it is:
> 
> When starting under Windows, there are a number of exceptions.  And when using Eclipse STS vs the startup.bat the exceptions are different.  Furthermore, I've tried on 32 bit Vista and 64 bit Windows 7 with the exact same results.  I dredged through the developer emails and the forum, but I did not see anything related to Virgo errors on Windows.  Virgo appears to run normally despite the errors, so all is not lost.  Curiously, stopping the server and running the startup.bat several times does not always produce it's error, but in fact it happens about 50% of the time, and seemingly every other launch.
> 
> Secondly, the Eclipse launcher is also having errors, in this case every time.  I am using the latest nightly snap of STS 2.5 with the stock download of Virgo M4.  I just downloaded Virgo and setup the Server option in STS, nothing special, and then started the server.
> 
> In both cases I am running a fully patched version of Windows 7, 9 GB of RAM with a quad core core I7 CPU.  The JDK is 1.6.0_21 64 bit, STS Version: 2.5.0.CI-R5736-B89, updated to the latest snapshot.
> 
> So for the startup.bat, I am getting:
> 
> [2010-09-21 21:39:46.532] deployer-recovery            <DE0200E> Recovery of artifact from URI 'file:/G:/tools/java/virgo/virgo-web-server-2
> .1.0.M04-incubation/pickup/org.eclipse.virgo.apps.splash-2.1.0.M04-incubation.war' failed. org.eclipse.virgo.kernel.deployer.core.Deployment
> Exception: InstallArtifact bundle 'org.eclipse.virgo.apps.splash' version '2.1.0.M04-incubation' in scope 'null' was installed when bundle '
> org.eclipse.virgo.apps.splash' version '2.1.0.M04-incubation' in scope 'null' was installed
>         at org.eclipse.virgo.kernel.install.artifact.internal.TreeRestrictingInstallArtifactLifecycleListener.onInstalling(TreeRestrictingInstallArtifactLifecycleListener.java:67)
>         at org.eclipse.virgo.kernel.install.artifact.internal.ArtifactStateMonitor.onInstalling(ArtifactStateMonitor.java:101)
>         at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact.beginInstall(AbstractInstallArtifact.java:101)
>         at org.eclipse.virgo.kernel.deployer.core.internal.Plumber$1.operate(Plumber.java:99)
>         at org.eclipse.virgo.kernel.install.pipeline.stage.visit.internal.VisitationStage.doProcessNode(VisitationStage.java:51)
>         at org.eclipse.virgo.kernel.install.pipeline.stage.AbstractPipelineStage.doProcessTree(AbstractPipelineStage.java:68)
>         at org.eclipse.virgo.kernel.install.pipeline.stage.visit.internal.VisitationStage.doProcessTree(VisitationStage.java:58)
>         at org.eclipse.virgo.kernel.install.pipeline.stage.AbstractPipelineStage.process(AbstractPipelineStage.java:41)
>         at org.eclipse.virgo.kernel.install.pipeline.internal.StandardPipeline.doProcessTree(StandardPipeline.java:62)
>         at org.eclipse.virgo.kernel.install.pipeline.stage.AbstractPipelineStage.process(AbstractPipelineStage.java:41)
>         at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.driveInstallPipeline(PipelinedApplicationDeployer.java:268)
>         at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.recoverDeployment(PipelinedApplicationDeployer.java:251)
>         at org.eclipse.virgo.kernel.deployer.core.internal.recovery.RecoveryAgent$1.run(RecoveryAgent.java:71)
>         at java.lang.Thread.run(Thread.java:619)
> 
> [2010-09-21 21:39:46.576] Thread-3                     <WE0001I> Started web bundle 'org.eclipse.virgo.apps.repository-2.1.0.M04-incubation-org.eclipse.virgo.apps.repository.web' version '2.1.0.M04-incubation' with context path '/org.eclipse.virgo.apps.repository'.
> [2010-09-21 21:39:46.582] start-signalling-2           <DE0005I> Started bundle 'org.eclipse.virgo.apps.repository-2.1.0.M04-incubation-org.eclipse.virgo.apps.repository.web' version '2.1.0.M04-incubation'.
> [2010-09-21 21:39:46.587] start-signalling-2           <DE0005I> Started par 'org.eclipse.virgo.apps.repository' version '2.1.0.M04-incubation'.
> [2010-09-21 21:39:46.678] Thread-3                     <WE0001I> Started web bundle 'org.eclipse.virgo.apps.splash' version '2.1.0.M04-incubation' with context path '/'.
> [2010-09-21 21:39:46.681] start-signalling-1           <DE0005I> Started bundle 'org.eclipse.virgo.apps.splash' version '2.1.0.M04-incubation'.
> [2010-09-21 21:39:47.541] fs-watcher                   <HD0001I> Hot deployer processing 'INITIAL' event for file 'org.eclipse.virgo.apps.admin-2.1.0.M04-incubation.plan'.
> [2010-09-21 21:39:47.544] fs-watcher                   <HD0005I> Hot deploy not performed because file 'org.eclipse.virgo.apps.admin-2.1.0.M04-incubation.plan' is already deployed.
> [2010-09-21 21:39:47.547] fs-watcher                   <HD0001I> Hot deployer processing 'INITIAL' event for file 'org.eclipse.virgo.apps.repository-2.1.0.M04-incubation.par'.
> [2010-09-21 21:39:47.551] fs-watcher                   <HD0005I> Hot deploy not performed because file 'org.eclipse.virgo.apps.repository-2.1.0.M04-incubation.par' is already deployed.
> [2010-09-21 21:39:47.554] fs-watcher                   <HD0001I> Hot deployer processing 'INITIAL' event for file 'org.eclipse.virgo.apps.splash-2.1.0.M04-incubation.war'.
> [2010-09-21 21:39:47.557] fs-watcher                   <HD0005I> Hot deploy not performed because file 'org.eclipse.virgo.apps.splash-2.1.0.M04-incubation.war' is already deployed.
> 
> In Eclipse I am seeing:
> 
> [2010-09-21 22:02:40.949] fs-watcher                   <HD0002E> Hot deploy failed for file 'org.eclipse.virgo.apps.repository-2.1.0.M04-incubation.par'. org.eclipse.virgo.kernel.deployer.core.DeploymentException: listFiles() failed for file G:\tools\java\virgo\virgo-web-server-2.1.0.M04-incubation\work\org.eclipse.virgo.kernel.deployer_2.1.0.M04-incubation\staging\global\par\org.eclipse.virgo.apps.repository\2.1.0.M04-incubation\org.eclipse.virgo.apps.repository-2.1.0.M04-incubation.par\
> 	at org.eclipse.virgo.kernel.install.artifact.internal.StandardInstallArtifactTreeInclosure.createInstallTree(StandardInstallArtifactTreeInclosure.java:130)
> 	at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.doInstall(PipelinedApplicationDeployer.java:140)
> 	at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.install(PipelinedApplicationDeployer.java:123)
> 	at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.deploy(PipelinedApplicationDeployer.java:187)
> 	at org.eclipse.virgo.kernel.deployer.hot.HotDeploymentFileSystemListener.deploy(HotDeploymentFileSystemListener.java:174)
> 	at org.eclipse.virgo.kernel.deployer.hot.HotDeploymentFileSystemListener.deployIfNotDeployed(HotDeploymentFileSystemListener.java:186)
> 	at org.eclipse.virgo.kernel.deployer.hot.HotDeploymentFileSystemListener.onChange(HotDeploymentFileSystemListener.java:87)
> 	at org.eclipse.virgo.util.io.FileSystemChecker.notifyListeners(FileSystemChecker.java:245)
> 	at org.eclipse.virgo.util.io.FileSystemChecker.check(FileSystemChecker.java:166)
> 	at org.eclipse.virgo.kernel.deployer.hot.WatchTask.run(WatchTask.java:58)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.eclipse.virgo.util.io.FatalIOException: listFiles() failed for file G:\tools\java\virgo\virgo-web-server-2.1.0.M04-incubation\work\org.eclipse.virgo.kernel.deployer_2.1.0.M04-incubation\staging\global\par\org.eclipse.virgo.apps.repository\2.1.0.M04-incubation\org.eclipse.virgo.apps.repository-2.1.0.M04-incubation.par\
> 	at org.eclipse.virgo.util.io.FileSystemUtils.listFiles(FileSystemUtils.java:237)
> 	at org.eclipse.virgo.util.io.FileSystemUtils.listFiles(FileSystemUtils.java:268)
> 	at org.eclipse.virgo.kernel.artifact.fs.internal.FileArtifactFSEntry.getChildren(FileArtifactFSEntry.java:50)
> 	at org.eclipse.virgo.kernel.install.artifact.internal.ParPlanInstallArtifact.findChildArtifacts(ParPlanInstallArtifact.java:95)
> 	at org.eclipse.virgo.kernel.install.artifact.internal.ParPlanInstallArtifact.<init>(ParPlanInstallArtifact.java:86)
> 	at org.eclipse.virgo.kernel.install.artifact.internal.ParPlanInstallArtifactFactory.createParPlanInstallArtifact(ParPlanInstallArtifactFactory.java:75)
> 	at org.eclipse.virgo.kernel.install.artifact.internal.PlanInstallArtifactTreeFactory.createParTree(PlanInstallArtifactTreeFactory.java:97)
> 	at org.eclipse.virgo.kernel.install.artifact.internal.PlanInstallArtifactTreeFactory.constructInstallArtifactTree(PlanInstallArtifactTreeFactory.java:88)
> 	at org.eclipse.virgo.kernel.install.artifact.internal.StandardInstallArtifactTreeInclosure.constructInstallArtifactTree(StandardInstallArtifactTreeInclosure.java:156)
> 	at org.eclipse.virgo.kernel.install.artifact.internal.StandardInstallArtifactTreeInclosure.createInstallTree(StandardInstallArtifactTreeInclosure.java:124)
> 	... 10 common frames omitted
> 
> Again, I have been able to easily reproduce these errors on another PC just by installing STS and updating, followed by downloading M4 and just adding it as a Server in STS, followed by clicking the debug or start icons in the server view.
> 
> Also, my Macintosh works perfectly in all cases ( as one would expect ).
> 
> Sincerely, 
> Tim Goeke
> 
> <ATT00001..txt>