Project

General

Profile

Bug #5489

Module Manager GUI should fail gracefully if a remote module cannot be downloaded

Added by Derik Barseghian over 7 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Normal
Category:
module manager
Target version:
Start date:
09/08/2011
Due date:
% Done:

0%

Estimated time:
Bugzilla-Id:
5489

Description

If you release a patch, e.g. loader-2.1.1, and a kepler 2.2 user downloads it and restarts, they will then be unable to download a suite that contains loader-2.2.0. The last messages I see on console are:
Release: https://code.kepler-project.org/code/kepler/releases/test-releases/
Downloading kepler-2.3.0...
Downloading outreach-2.2.0...
Downloading apple-extensions-2.1.0...
Downloading r-2.3.0...
Downloading loader-2.2.0...

Sidebug: these Downloading messages appear even if no download occurs because you already have it. Confusing.

In this case kepler-2.3.0 and r-2.3.0 are downloaded, but that's it. I've tried twice, same behavior. No indication of failure appears. My KeplerData/kepler.modules/ then contains:

build-area
kepler-2.3.0
kepler-2.3.0.zip
loader-2.1.1
loader-2.1.1.zip
r-2.3.0
r-2.3.0.zip

History

#1 Updated by Derik Barseghian over 7 years ago

My mistake, this was because a module isn't published.
Changing title -- if a module cannot be downloaded, fail gracefully (show a message, un-depress Apply and Restart button, etc).
We also shouldn't show a message on console saying a module is being downloaded until it's actually being downloaded.

#2 Updated by Derik Barseghian over 7 years ago

punting to 2.4.0.

#3 Updated by jianwu jianwu over 6 years ago

two ways to reproduce the bug: 1) close internet connection just before downloading start; 2) have a unpublished module in the suite to be downloaded.

#4 Updated by jianwu jianwu over 6 years ago

At version 30650, kepler now throws and checks exception if the url is not accessible. It will popup a dialogue about the error.

To test it, change releaseLocation in module-manager/resources/configurations/configuration.xml to be "https://code.kepler-project.org/code/kepler/releases/test-releases/". And try to switch to master-slave-2.2.1.

I didn't add connection time out except throw and checking because it's hard to estimate the download time. Also module manager itself heavily use internet. I think it is reasonable to assume the internet is connected.

I think I can close the bug. I'll leave it open for a while for more tests.

#5 Updated by jianwu jianwu over 6 years ago

it works for me at version 30710. re-assign Derik to test.

#6 Updated by Derik Barseghian over 6 years ago

First I just tried to test downloading kepler-2.3.0 from kepler trunk, but now I just instantly get a bunch of Downloading messages:
[run] Downloading kepler-2.3.0...
[run] Downloading outreach-2.2.1...
etc., but no modules get downloaded to my system. I then get the new warning:
The following modules are not present:
kepler-2.3.0
Do you still want to exit the Module Manager?

If I click Yes, I get an error popup (which seems weird, why does this happen?)
The following modules are missing:
kepler-2.3.0

If I click OK I get some FileNotFoundExceptions related to trying to find install-path.txt at a bogus path (see below trace).
Please break out these other issues into different bugs as you see fit.

[run] AvailableModulesPanel notifying shutdown listeners of impending shutdown. Closing any open databases may take awhile...
[run] AvailableModulesPanel Spawning new Kepler process
[run] JVM Memory = 5m 768m
[run] RunClasspath:kepler-2.3.0 /Users/derik/dev2/kepler.modules.regular/kepler-2.3.0/src
[run] Exception in thread "AWT-EventQueue-0" java.io.FileNotFoundException: /Users/derik/dev2/kepler.modules.regular/kepler-tasks/lib/jar/build-area/install-path.txt (No such file or directory)
[run] at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:106)
[run] at org.kepler.modulemanager.gui.AvailableModulesPanel$1$1.done(AvailableModulesPanel.java:249)
[run] Kepler failed to launch. Trying to launch Module Manager GUI using basePath:/Users/derik/dev2/kepler.modules.regular/kepler-tasks/lib/jar
[run] The base dir is /Users/derik/dev2/kepler.modules.regular/kepler-tasks/lib/jar
[run] at javax.swing.SwingWorker$5.run(SwingWorker.java:717)
[run] at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:814)
[run] at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:95)
[run] at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:824)
[run] at javax.swing.Timer.fireActionPerformed(Timer.java:291)
[run] at javax.swing.Timer$DoPostEvent.run(Timer.java:221)
[run] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
[run] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
[run] at java.awt.EventQueue.access$400(EventQueue.java:82)
[run] at java.awt.EventQueue$2.run(EventQueue.java:663)
[run] at java.awt.EventQueue$2.run(EventQueue.java:661)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[run] at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
[run] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
[run] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
[run] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
[run] at java.awt.Dialog$1.run(Dialog.java:1044)
[run] at java.awt.Dialog$3.run(Dialog.java:1096)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.awt.Dialog.show(Dialog.java:1094)
[run] at java.awt.Component.show(Component.java:1591)
[run] at java.awt.Component.setVisible(Component.java:1543)
[run] at java.awt.Window.setVisible(Window.java:843)
[run] at java.awt.Dialog.setVisible(Dialog.java:984)
[run] at org.kepler.modulemanager.gui.ModuleManagerAction.actionPerformed(ModuleManagerAction.java:65)
[run] at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
[run] at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
[run] at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
[run] at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
[run] at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
[run] at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:95)
[run] at java.awt.MenuItem.processActionEvent(MenuItem.java:650)
[run] at java.awt.MenuItem.processEvent(MenuItem.java:609)
[run] at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:343)
[run] at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:331)
[run] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
[run] at java.awt.EventQueue.access$400(EventQueue.java:82)
[run] at java.awt.EventQueue$2.run(EventQueue.java:663)
[run] at java.awt.EventQueue$2.run(EventQueue.java:661)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
[run] at java.awt.EventQueue$3.run(EventQueue.java:677)
[run] at java.awt.EventQueue$3.run(EventQueue.java:675)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[run] at java.awt.EventQueue.dispatchEvent(EventQueue.java:674)
[run] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
[run] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
[run] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
[run] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
[run] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
[run] at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
[run] Caused by: java.io.FileNotFoundException: /Users/derik/dev2/kepler.modules.regular/kepler-tasks/lib/jar/build-area/install-path.txt (No such file or directory)
[run] at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:106)
[run] at org.kepler.build.runner.Kepler.main(Kepler.java:109)
[run] at org.kepler.build.Run.runSuite(Run.java:252)
[run] at org.kepler.build.Run.run(Run.java:213)
[run] at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:102)
[run] ... 55 more
[run] Caused by: java.io.FileNotFoundException: /Users/derik/dev2/kepler.modules.regular/kepler-tasks/lib/jar/build-area/install-path.txt (No such file or directory)
[run] at java.io.FileOutputStream.open(Native Method)
[run] at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
[run] at java.io.FileOutputStream.<init>(FileOutputStream.java:145)
[run] at java.io.FileWriter.<init>(FileWriter.java:73)
[run] at org.kepler.build.installer.InstallationIdTxt.createInstallPath(InstallationIdTxt.java:119)
[run] at org.kepler.build.installer.InstallationIdTxt.check(InstallationIdTxt.java:77)
[run] at org.kepler.build.runner.Kepler.run(Kepler.java:136)
[run] at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:102)
[run] ... 59 more
[run] --- Nested Exception ---
[run] java.io.FileNotFoundException: /Users/derik/dev2/kepler.modules.regular/kepler-tasks/lib/jar/build-area/install-path.txt (No such file or directory)
[run] at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:106)
[run] at org.kepler.build.runner.Kepler.main(Kepler.java:109)
[run] at org.kepler.build.Run.runSuite(Run.java:252)
[run] at org.kepler.build.Run.run(Run.java:213)
[run] at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:102)
[run] at org.kepler.modulemanager.gui.AvailableModulesPanel$1$1.done(AvailableModulesPanel.java:249)
[run] at javax.swing.SwingWorker$5.run(SwingWorker.java:717)
[run] at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:814)
[run] at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:95)
[run] at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:824)
[run] at javax.swing.Timer.fireActionPerformed(Timer.java:291)
[run] at javax.swing.Timer$DoPostEvent.run(Timer.java:221)
[run] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
[run] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
[run] at java.awt.EventQueue.access$400(EventQueue.java:82)
[run] at java.awt.EventQueue$2.run(EventQueue.java:663)
[run] at java.awt.EventQueue$2.run(EventQueue.java:661)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[run] at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
[run] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
[run] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
[run] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
[run] at java.awt.Dialog$1.run(Dialog.java:1044)
[run] at java.awt.Dialog$3.run(Dialog.java:1096)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.awt.Dialog.show(Dialog.java:1094)
[run] at java.awt.Component.show(Component.java:1591)
[run] at java.awt.Component.setVisible(Component.java:1543)
[run] at java.awt.Window.setVisible(Window.java:843)
[run] at java.awt.Dialog.setVisible(Dialog.java:984)
[run] at org.kepler.modulemanager.gui.ModuleManagerAction.actionPerformed(ModuleManagerAction.java:65)
[run] at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
[run] at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
[run] at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
[run] at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
[run] at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
[run] at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:95)
[run] at java.awt.MenuItem.processActionEvent(MenuItem.java:650)
[run] at java.awt.MenuItem.processEvent(MenuItem.java:609)
[run] at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:343)
[run] at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:331)
[run] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
[run] at java.awt.EventQueue.access$400(EventQueue.java:82)
[run] at java.awt.EventQueue$2.run(EventQueue.java:663)
[run] at java.awt.EventQueue$2.run(EventQueue.java:661)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
[run] at java.awt.EventQueue$3.run(EventQueue.java:677)
[run] at java.awt.EventQueue$3.run(EventQueue.java:675)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[run] at java.awt.EventQueue.dispatchEvent(EventQueue.java:674)
[run] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
[run] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
[run] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
[run] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
[run] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
[run] at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
[run] Caused by: java.io.FileNotFoundException: /Users/derik/dev2/kepler.modules.regular/kepler-tasks/lib/jar/build-area/install-path.txt (No such file or directory)
[run] at java.io.FileOutputStream.open(Native Method)
[run] at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
[run] at java.io.FileOutputStream.<init>(FileOutputStream.java:145)
[run] at java.io.FileWriter.<init>(FileWriter.java:73)
[run] at org.kepler.build.installer.InstallationIdTxt.createInstallPath(InstallationIdTxt.java:119)
[run] at org.kepler.build.installer.InstallationIdTxt.check(InstallationIdTxt.java:77)
[run] at org.kepler.build.runner.Kepler.run(Kepler.java:136)
[run] at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:102)
[run] ... 59 more
[run] --- Nested Exception ---
[run] java.io.FileNotFoundException: /Users/derik/dev2/kepler.modules.regular/kepler-tasks/lib/jar/build-area/install-path.txt (No such file or directory)
[run] at java.io.FileOutputStream.open(Native Method)
[run] at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
[run] at java.io.FileOutputStream.<init>(FileOutputStream.java:145)
[run] at java.io.FileWriter.<init>(FileWriter.java:73)
[run] at org.kepler.build.installer.InstallationIdTxt.createInstallPath(InstallationIdTxt.java:119)
[run] at org.kepler.build.installer.InstallationIdTxt.check(InstallationIdTxt.java:77)
[run] at org.kepler.build.runner.Kepler.run(Kepler.java:136)
[run] at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:102)
[run] at org.kepler.build.runner.Kepler.main(Kepler.java:109)
[run] at org.kepler.build.Run.runSuite(Run.java:252)
[run] at org.kepler.build.Run.run(Run.java:213)
[run] at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:102)
[run] at org.kepler.modulemanager.gui.AvailableModulesPanel$1$1.done(AvailableModulesPanel.java:249)
[run] at javax.swing.SwingWorker$5.run(SwingWorker.java:717)
[run] at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:814)
[run] at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:95)
[run] at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:824)
[run] at javax.swing.Timer.fireActionPerformed(Timer.java:291)
[run] at javax.swing.Timer$DoPostEvent.run(Timer.java:221)
[run] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
[run] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
[run] at java.awt.EventQueue.access$400(EventQueue.java:82)
[run] at java.awt.EventQueue$2.run(EventQueue.java:663)
[run] at java.awt.EventQueue$2.run(EventQueue.java:661)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[run] at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
[run] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
[run] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
[run] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
[run] at java.awt.Dialog$1.run(Dialog.java:1044)
[run] at java.awt.Dialog$3.run(Dialog.java:1096)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.awt.Dialog.show(Dialog.java:1094)
[run] at java.awt.Component.show(Component.java:1591)
[run] at java.awt.Component.setVisible(Component.java:1543)
[run] at java.awt.Window.setVisible(Window.java:843)
[run] at java.awt.Dialog.setVisible(Dialog.java:984)
[run] at org.kepler.modulemanager.gui.ModuleManagerAction.actionPerformed(ModuleManagerAction.java:65)
[run] at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
[run] at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
[run] at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
[run] at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
[run] at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
[run] at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:95)
[run] at java.awt.MenuItem.processActionEvent(MenuItem.java:650)
[run] at java.awt.MenuItem.processEvent(MenuItem.java:609)
[run] at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:343)
[run] at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:331)
[run] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
[run] at java.awt.EventQueue.access$400(EventQueue.java:82)
[run] at java.awt.EventQueue$2.run(EventQueue.java:663)
[run] at java.awt.EventQueue$2.run(EventQueue.java:661)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
[run] at java.awt.EventQueue$3.run(EventQueue.java:677)
[run] at java.awt.EventQueue$3.run(EventQueue.java:675)
[run] at java.security.AccessController.doPrivileged(Native Method)
[run] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
[run] at java.awt.EventQueue.dispatchEvent(EventQueue.java:674)
[run] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
[run] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
[run] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
[run] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
[run] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
[run] at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

#7 Updated by Derik Barseghian over 6 years ago

Re: comment6, this was likely caused by having 0-sized zip files in my trunk kepler.modules checkout. Last night I forgot when working off trunk, zips get downloaded here, instead of KeplerData/kepler.modules/

#8 Updated by Derik Barseghian over 6 years ago

Ok I tried Jianwu's scenario is comment4 and got the new error alert, so that works. "Downloading" messages still appear on console even when you already have the zips. A fix for this wasn't immediately apparent, so I adjusted the msg to say "Downloading (if necessary)" and added a FIXME to the code. I added a bug for this: bug#5716

#9 Updated by Redmine Admin almost 6 years ago

Original Bugzilla ID was 5489

Also available in: Atom PDF