Incident Library
  • Root cause
  • Component
  • Symptom
  • Contributing factor
  • Case

Cases6 cases

5 to 6 of 6

  1. Symptoms

    On 20 March 2017, from some time early in the day until about 13:00, some new student servers on UC Berkeley's JupyterHub stayed in Pending forever and the students got 500 errors that kept them from logging in.

    Trigger

    On 18 March at 16:30 the RAM per student was reduced from 2G to 1G to save resources while the nodes kept the same size of 26G RAM, and as a result the nodes hit the Google Cloud the limit on the number of disks per node.

    Root cause
    Component
    Contributing factor
    Detection

    New student servers reported a 500 error that kept students from logging in. At 12:44 this was judged widespread, and at 12:53 `kubectl describe pod` showed the pods Pending on MaxVolumeCount.

    Remediation
    • Copied the Google Container Engine instance template and changed it to spawn smaller n1-highmem-2 nodes
    • Switched the managed instance group to the new template
    • Grew the instance group by 30 new nodes
    • Ran populate.bash so student pods would start on time on the new nodes
    • Stopped the simple autoscaler
    • Stopped and started affected user pods from the control panel
    • Restarted the hub and proxy pods
    Action items
    • Follow the status of kubernetes/kubernetes issue 24317
    • Find and fix the cause of the 'too many redirects' error in JupyterHub
    • Delete the older, larger nodes that are no longer in use
    • Alert when any pods stay Pending for a non-negligible time
  2. Symptoms

    From mid-December 2011, after Sakura Cloud launched, traffic between the host servers and the storage device grew, and the network connection between the hosts that carry users' servers and the storage device was cut again and again. Each cut caused by a port switchover lasted about five minutes.

    Trigger

    Traffic between the host servers and the storage device grew from mid-December 2011, after the service launched on 15 November 2011.

    Root cause
    Component
    Contributing factor
    Remediation
    • Switched the network interface monitoring from ICMP to a LINK state check, so the device fails over only on a physical link down
    • Changed the InfiniBand Subnet Manager's check from normal mode to heavy sweep mode
    • Updated the storage device firmware on 19 March, which stopped the packet loss
    • Added a second storage device on 12 March and migrated servers to it to reduce and spread the load
    Action items
    • Replace the current storage with an entirely different new storage device
    • Test the new storage in an environment equal to its maximum capacity under real load, with a free beta before paid service
    • Use network interface drivers and similar parts equivalent to those already proven on the host servers
    • Develop the new storage with in-house engineers so Sakura Internet can manage and operate it itself
    Lessons

    Sakura Internet wrote that it could not test the storage device at its performance limit, because it could not prepare as many servers as the design capacity and used load generated from predictions, so it could not respond quickly and accurately to problems in real operation. Packet loss on the InfiniBand port kept the device below its expected performance and took three months to fix by firmware, and its engineers could not grasp the whole of the device's specification and behaviour. Sakura Internet concluded that its process for choosing and validating the storage device had serious problems.

Check your cluster for this

These 6 cases involve Cloud block storage and Database. kubegap audits a Kubernetes cluster for gaps like these, read-only, from Claude Code or Codex; its checks cite public reports like the ones in this library.

By root cause1