Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot create Cache file #160

Open
kingdonb opened this issue Feb 26, 2023 · 4 comments
Open

Cannot create Cache file #160

kingdonb opened this issue Feb 26, 2023 · 4 comments

Comments

@kingdonb
Copy link

I found this message in my logs after running the "Taking Bartholomew for a spin" walkthrough and I'm not really sure why!

I found the message in the code as well, but not really a rustacean (yet) and so I'm raising an issue about it here to understand the situation with the cache. Is it something wrong with the permissions on my local filesystem, perhaps?

@karthik2804
Copy link
Contributor

By default, spin does not allow writing to the file system but bartholomew tries to cache in the list of files to make it faster and the message appears because of the inability to write to a file system by default.

There is an option --allow-transient-write for spin which would allow bartholomew to write a cache file. Just as an addituional note, writing to a file is not allowed in the cloud.

@itowlson
Copy link
Contributor

@tpmccallum Is this worth adding to the docs in a FAQ/troubleshooting section? The cache messages will be a lot more visible now that Spin defaults to sending all guest output to the console.

@karthik2804 Do you think we should tweak the message to indicate that this is expected / benign (and maybe the scope? Is it only for building the TOC? Not sure)? And/or to mention how to enable the cache?

@karthik2804
Copy link
Contributor

@itowlson, the scope of caching currently is to only make it more efficient by reading a singular file instead of reading a bunch of different files on each request. We could go down the route of tweaking the message or we can also potentially go ahead and make the usage of the cache disabled by default instead of it being enabled now that this is the default behavior of spin.

The original implementation was done when spin still allowed transient writes by default.

@kingdonb
Copy link
Author

kingdonb commented Feb 27, 2023

I found the OCI docs and the bindle docs, I'm running this stuff on Kubernetes:

https://github.com/kingdonb/taking-bartholo/blob/main/ci-scripts/spin-up.sh
https://github.com/kingdonb/taking-bartholo/blob/5b4832a8b1c5101f2b33d0736a0bf9716b041c42/.github/workflows/spin-publish.yaml#L34
https://github.com/kingdon-ci/fleet-infra/tree/main/examples/wasm/taking-bartholo

I'm sure this is pretty far from the intended design now that I got it working, but FWIW the deployment --from-registry also emits the Cannot create Cache file message, for a little while at least it seems as well.

I'll have a look into how this might be made to work with bindle, if that has anything to do with caching? Then each pod only pulls the content it needs, and in case my blog has large files that don't need to load on the landing page / with infrequent access, the OCI image could become enormous. I haven't read everything, don't know what the direction is exactly, but I saw that OCI feature is new, and it was just what I needed to get up and running!

I'd like to either get rid of those messages or enable caches, but it's not blocking me.

I think I see how to enable caching from the top post in reply:

--allow-transient-write
eb4d2f9628b06a9c5997f2957bac99cf43f279e3

Thanks for answering my question!

I got some other errors with that flag in place:

Writing string  is 0
Writing Expiry Time is Err(
    ParseError(
        TooShort,
    ),
)

but I'm satisfied for now and will follow for more info as it surfaces, as the rendering is plenty fast, and I'm able to use this and follow what's going on pretty well 👍❤️ looking forward to trying out the Hippo Factory on tf-controller one day soon!

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

No branches or pull requests

3 participants