Skip to content
This repository has been archived by the owner on Mar 25, 2018. It is now read-only.

Cannot start instance from newly created image in ComputeService #1560

Open
etoews opened this issue Apr 23, 2013 · 1 comment
Open

Cannot start instance from newly created image in ComputeService #1560

etoews opened this issue Apr 23, 2013 · 1 comment

Comments

@etoews
Copy link
Member

etoews commented Apr 23, 2013

A user found that after they create an image, they cannot start an instance of that image due to it not being found by the TemplateBuilder. See the example code and log in the following gist.

https://gist.github.com/everett-toews/5447098

I suspect the images in the TemplateBuilder are being cached and the new one isn't added to that cache but haven't been able to track down the offending code yet.

If that's the case, is there a convenient way to force a refresh of the TemplateBuilder's image cache?

@etoews
Copy link
Member Author

etoews commented Apr 24, 2013

Some notes from IRC for future work:

in TemplateBuilderImpl images is Memoized
the supplier is in BaseComputeServiceContextModule.supplyImageCache()

look at the aws code
part of it is EC2TemplateBuilderImpl.lazyImageProvider
it is backed by a map
which you could listen for and invalidate the image cache entry

if the cache interval doesn't work, it is one thing
to express an invalidation, well there's a couple ways
dig deep
and monkey around with internal classes
or expose a ListOption.invalidate()
and code'in providers to invalidate the cache when they encounter this flag

it's not just cache interval, it's PROPERTY_SESSION_INTERVAL. from the name it sounds like if you set it to something low it would invalidate the whole session and reauth, just to invalidate that cache.
there's no parameter for the cache

probably what would be most helpful is to expose a property that corresponds to CacheBuilderSpec format
ex. images.cache-spec=expireAfterWrite=300,refreshInterval=10000
pass that in as a property
then people can go to town tuning without special casing everything or conflating things like session interval with cache expiry

basically, you can see how "template" is wired in
then re-use that approach for the caches
the most important one being images
so you could skip the others for now

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant