Caching

As soon as developer finds a performance problem (or more probably someone else finds a performance problem and informs the developer), he starts thinking about caching. Caching is a great thing regarding performance, and is terrible regarding consistency. Look at the web: it is slow by design, so if you compete with desktop applications, you have to cheat use caching. Which will surely break consistency.

Lets look at the firefox (in version 39).

We use (of course) all this modern stuff like Jira and Confluence, with single-sign-on and Kerberos and all this good things. It works under Linux too. Not that easy, but it is possible to get this running (search for network.negotiate-auth.trusted-uris if you want to know more about this). So just call kinit on the command line to obtain a ticket, and you get sso with firefox. Just in case you made the mistake to start firefox first (before kinit), firefox asks for your login. So you run kinit, get your ticket and refresh this page in firefox. Bad mistake: firefox caches you credentials (in this case it caches the fact you do not have credentials). And there is no other way to clear this cache then restarting firefox.

This can be very funny, as firefox caches your credentials in conjunction with the requested page. So if you are able to access jira, to run all queries, obtain all tickets except the one you have tried first in the morning – yes, that is caching.

The same thing happens with dns problems. Firefox never forgets a failed dns lookup. No way to clear the cache. Just restart the browser. Cross fingers, in most cases firefox can recover all you tabs. If not – live is hard.