My guess: when you search, google fires up several background processes/threads for that query.<p>Not only search, but also for a quick answers, maps, ads. These services might be slower than the search query or a max response time, in which case they get ignored.<p>When the search query finished, they might wait a few milliseconds for the other services, if it’s still under the target response time. After that google will render the results with all info that completed.<p>My guess is that one of these services crashes, most likely the main search one. This way you can wait forever for it to finish.<p>So it’s probably a bug in the way it’s yielding/waiting for the spawned processes.<p>Other option is that for certain processes they don’t spawn a background process, because it’s faster to run locally/direct/in-memory, because the data is quite small and just rums on every node.
they’d start this after spawning the other processes, so if this service returns an error, it might screw up the yielding/waiting/collecting, although I’d expect an exception/error page instead of the indefinite waiting that’s happening