Opened 8 years ago

Closed 7 years ago

#966 closed defect (fixed)

'make app-install' hangs when ToolShed website is down

Reported by: tic20@… Owned by: Conrad Huang
Priority: normal Milestone:
Component: Tool Shed Version:
Keywords: Cc: chimera-programmers
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

Posting via email since it seems the webserver is down. Turns out this plays havoc with bundle installation by `make app-install` - and more generally causes a very long hang when exiting ChimeraX. It appears the culprit is toolshed.AvailableBundleCache.load() - its urlopen() request doesn't specify a timeout, then it defaults to the global default timeout, which from what I've read is set to None (so technically it should *never* time out, although it appears to anyway after a few minutes). Anyway, on ChimeraX exit everything hangs waiting for its thread to join. Simple solution would be to change line 30 of `toolshed/available.py` to

{{{
       with urlopen(url, timeout=some_reasonable_value) as f:
}}}

where some_reasonable_value = 5 (seconds) or so.



Change History (4)

comment:1 by Eric Pettersen, 8 years ago

Cc: chimera-programmers added
Component: UnassignedTool Shed
Owner: set to Conrad Huang
Platform: all
Project: ChimeraX
Status: newassigned

comment:2 by Conrad Huang, 8 years ago

Status: assignedfeedback

Which package was behaving this way? ChimeraX should not be trying to reach the toolshed when installing packages unless there is an unsatisfied dependency. We typically do not have this problem because few bundles have dependencies, and those that do have the base dependencies installed first through Makefile rules.

in reply to:  3 ; comment:3 by tic20@…, 8 years ago

This was ISOLDE. It depends on another Toolshed bundle (Clipper), so maybe that’s the issue. The Clipper plugin *was* already installed at the time. Not sure if it’s relevant, but when starting ChimeraX in GUI mode it seems to check in with the ToolShed every time (when server is down, I get the message “Updating list of installed bundles failed”).

 
 
Tristan Croll
Research Fellow
Cambridge Institute for Medical Research
University of Cambridge CB2 0XY
 

 


comment:4 by Conrad Huang, 7 years ago

Resolution: fixed
Status: feedbackclosed

The preferred way to build and installed bundles is now:

ChimeraX.exe --nogui --safemode --exit --cmd "devel install (etc) exit true"

The --exit flag tells ChimeraX to exit after the command AND do not contact the toolshed. The --safemode flag tells ChimeraX not to initialize tools, and is mostly useful when installing a bundle that uses custom initialization already.

Note: See TracTickets for help on using tickets.