Incidents/2024-09-23 pc1013 hardware issue

== Summary ==
A memory error triggered an error which killed MariaDB
==Timeline==
All conversation logs are visible under this archive: https://wm-bot.wmcloud.org/logs/%23wikimedia-operations/20240923.txt
* 14:47:03: Initial alert from <icinga-wm> indicating that host pc1013 is down with 100% packet loss.
* 14:47:21: Incident 5267 acknowledged by <sukhe>.
* 14:48:39: <moritzm> reports a DIMM error in SEL.
* 14:50:26: <moritzm> attempts to power cycle pc1013.
* 14:54:13: pc1013 recovers, but concerns about stability remain.
* 14:57:44: pc1013 crashes again.
* 14:58:26: Decision to failover to pc1015 is made.
* 14:59:14: <jynus> restarts pc1015 to apply Puppet changes.
* 15:02:11: Failover to pc1015 is committed.
* 15:03:09: Users start reconnecting to the new master.
* 15:07:38: Recovery of MariaDB Replica Lag and IO on pc2013.
* 15:09:12: Circular replication setup completed.
* 15:24:31: <jynus> disables monitoring for pc1013.
* 15:29:48: Acknowledgment that performance will be degraded for a few hours.
== Detection ==
* Root Cause: DIMM error in pc1013 causing repeated crashes. Caught by monitoring
* Resolution: Failover to pc1015 and setup of circular replication.
* Impact: Degraded performance due to empty cache and increased parser activity.
==Conclusions ==
This is a minor incident which could have been way bigger if jynus was not around because we lack automation to handle that sort of fix which requires SQL coordination as parser cache instances are multi-source (see: Parser cache and Orchestrator). Fixing this issue required to move a spare server to the impacted section, which is still a non trivial operation as there is little documentation and automation around it.
==Links to relevant documentation==
* There is no links to this specific issue as it was a complete surprise to everyone involved
* There is, however, generic advice at: https://wikitech.wikimedia.org/wiki/MariaDB/troubleshooting#Data_inconsistency_between_nodes_%22drift%22_/_replication_broken
==Actionables==
* https://phabricator.wikimedia.org/T373037
* https://phabricator.wikimedia.org/T375382
==Scorecard==
Incident Engagement ScoreCard
 	Question 	Answer
(yes/no)	Notes
People 	Were the people responding to this incident sufficiently different than the previous five incidents? 	yes 	
People 	Were the people who responded prepared enough to respond effectively 	yes (?)	
People 	Were fewer than five people paged? 	yes 	
People 	Were pages routed to the correct sub-team(s)? 	yes (?)	
People 	Were pages routed to online (business hours) engineers?  Answer “no” if engineers were paged after business hours.	n/a 	
Process 	Was the "Incident status" section atop the Google Doc kept up-to-date during the incident? 	no 	A doc was not setup
Process 	Was a public wikimediastatus.net entry created? 	no 	A docstatus was not created
Process 	Is there a phabricator task for the incident? 	yes 	
Process 	Are the documented action items assigned? 	yes 	
Process 	Is this incident sufficiently different from earlier incidents so as not to be a repeat occurrence? 	yes (?)	we have identified what to fix so this is actionable in several ways
Tooling 	To the best of your knowledge was the open task queue free of any tasks that would have prevented this incident? Answer “no” if there are
open tasks that would prevent this incident or make mitigation easier if implemented.	yes 	
Tooling 	Were the people responding able to communicate effectively during the incident with the existing tooling? 	yes 	
Tooling 	Did existing monitoring notify the initial responders? 	yes 	
Tooling 	Were the engineering tools that were to be used during the incident, available and in service? 	n/a 	
Tooling 	Were the steps taken to mitigate guided by an existing runbook? 	no 	
Total score (count of all “yes” answers above)	Total score (count of all “yes” answers above) 	9