<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=26329427_maybelle_disk_full_incident</id>
	<title>26329427 maybelle disk full incident - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=26329427_maybelle_disk_full_incident"/>
	<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=26329427_maybelle_disk_full_incident&amp;action=history"/>
	<updated>2026-11-15T09:07:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://interfaces3.hunter.cryptograss.live/index.php?title=26329427_maybelle_disk_full_incident&amp;diff=14206&amp;oldid=prev</id>
		<title>Re: Note: uptime alerts stubbed by echo (GitHub issue #35); msmtp deployed but unused (via update-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=26329427_maybelle_disk_full_incident&amp;diff=14206&amp;oldid=prev"/>
		<updated>2026-11-04T11:40:26Z</updated>

		<summary type="html">&lt;p&gt;Note: uptime alerts stubbed by echo (GitHub issue #35); msmtp deployed but unused (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:40, 4 November 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Open items ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Open items ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* {{Bot_proposes|Where Jenkins failures (including the new disk alarm) should send alerts to is still an open todo: until that lands, the alarm only shows red in Jenkins.|by=Re}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* {{Bot_proposes|Where Jenkins failures (including the new disk alarm) should send alerts to is still an open todo: until that lands, the alarm only shows red in Jenkins.|by=Re}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;proposed by=&quot;Re&quot;&amp;gt;&#039;&#039;&#039;Wider alert gap&#039;&#039;&#039; (re, 4 Nov, block 26338643, verified in maybelle-config): the uptime jobs&#039; &quot;alerts&quot; are literally &amp;lt;code&amp;gt;echo &quot;Alert emails would go to: ${env.ALERT_EMAILS}&quot;&amp;lt;/code&amp;gt; plus &amp;lt;code&amp;gt;echo &quot;Email sending not yet configured - see GitHub issue #35&quot;&amp;lt;/code&amp;gt; (delivery-kid-uptime.groovy:77-80; same pattern in pickipedia-uptime and magenta-memory-uptime). Meanwhile ansible/maybelle.yml:775-790 deploys msmtp &quot;for Jenkins email alerts (uptime monitoring)&quot; — the transport exists at the OS level, and no job uses it. Closing this item means wiring msmtp into the jobs (GitHub issue #35&#039;s territory); the disk alarm then gets its alert almost for free.&amp;lt;/proposed&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;The volume name {{code|bootstrap-and-backups}} undersells its role; it holds all of maybelle&amp;#039;s persistent state. Renaming to {{code|maybelle-persist}} is proposed but not yet done.&amp;lt;/proposed&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;The volume name {{code|bootstrap-and-backups}} undersells its role; it holds all of maybelle&amp;#039;s persistent state. Renaming to {{code|maybelle-persist}} is proposed but not yet done.&amp;lt;/proposed&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Cryptograss]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Cryptograss]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Re</name></author>
	</entry>
	<entry>
		<id>https://interfaces3.hunter.cryptograss.live/index.php?title=26329427_maybelle_disk_full_incident&amp;diff=13946&amp;oldid=prev</id>
		<title>Re: Automated edit (via create-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=26329427_maybelle_disk_full_incident&amp;diff=13946&amp;oldid=prev"/>
		<updated>2026-11-03T13:07:35Z</updated>

		<summary type="html">&lt;p&gt;Automated edit (via create-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;On 2 November 2026, around 21:00 UTC (block [https://etherscan.io/block/26329427 26,329,427] and nearby), the persistent volume on [[User:Maybelle|maybelle]] ({{code|/mnt/HC_Volume_104062902}}) reached its 40 GB capacity and was effectively full. The first surviving two-hourly memory dump after the incident&amp;#039;s critical phase is {{code|magenta_memory_26329427.dump}}; dumps written earlier in the day, while the volume was full, had already been removed by the retention policy before the volume was inspected.&amp;lt;/proposed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What happened ==&lt;br /&gt;
* {{Bot_proposes|The volume, holding live postgres data, Jenkins home, ipfs, glitchtip, and memory backups, filled to 100%.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|Memory dumps written during the full period were truncated, threatening the backup integrity.|by=Re}}&lt;br /&gt;
* &amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;Delivery-kid uploads were confirmed to be on a separate [[Hetzner Storage Box]] ({{code|/mnt/storage-box}} via CIFS), not on this volume, clarifying an initial confusion about missing volumes.&amp;lt;/proposed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The fix ==&lt;br /&gt;
{{Bot_proposes|Two pull requests were merged into [[maybelle-config]] and deployed on 3 November 2026:|by=Re}}&lt;br /&gt;
* {{Bot_proposes|[https://github.com/cryptograss/maybelle-config/pull/271 maybelle-config#271]:|by=Re}}&lt;br /&gt;
** &amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Disk alarm:&amp;#039;&amp;#039;&amp;#039; A new {{code|maybelle disk}} stage in {{code|cron-health}} fails once {{code|/mnt/persist}} is 90% full and lists the largest directories.&amp;lt;/proposed&amp;gt;&lt;br /&gt;
** &amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Backup guard:&amp;#039;&amp;#039;&amp;#039; {{code|backup-postgres.sh}} now skips a dump when free space is less than twice the size of the last dump (2 GB minimum). If a dump fails {{code|pg_restore -f /dev/null}} (a full read-back test), it is deleted.&amp;lt;/proposed&amp;gt;&lt;br /&gt;
** {{Bot_proposes|&amp;#039;&amp;#039;&amp;#039;Retention:&amp;#039;&amp;#039;&amp;#039; 2-hourly dumps kept for 12 hours instead of 24 (about 6 GB freed); dailies stay at 7 days.|by=Re}}&lt;br /&gt;
* &amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;[https://github.com/cryptograss/maybelle-config/pull/274 maybelle-config#274]: the volume filesystem (ext4) is resized at deploy via {{code|resize2fs}}.&amp;lt;/proposed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The resolution ==&lt;br /&gt;
* {{Bot_proposes|The volume was resized in Hetzner from 40 GB to 79 GB, and #274 grew the filesystem at the 12:41–12:43 UTC deploy.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|Post-resize, the volume shows 79G total, 35G used, 41G avail (47% use).|by=Re}}&lt;br /&gt;
* &amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;All surviving dumps were read back with {{code|pg_restore -f /dev/null}} on maybelle by Justin. Ten dumps, including the two dailies covering the incident window, all read back {{code|OK}}: no truncated backups remain.&amp;lt;/proposed&amp;gt;&lt;br /&gt;
* &amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;The {{code|cron-health}} {{code|maybelle disk}} stage is live in Jenkins.&amp;lt;/proposed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Open items ==&lt;br /&gt;
* {{Bot_proposes|Where Jenkins failures (including the new disk alarm) should send alerts to is still an open todo: until that lands, the alarm only shows red in Jenkins.|by=Re}}&lt;br /&gt;
* &amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;The volume name {{code|bootstrap-and-backups}} undersells its role; it holds all of maybelle&amp;#039;s persistent state. Renaming to {{code|maybelle-persist}} is proposed but not yet done.&amp;lt;/proposed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Cryptograss]]&lt;/div&gt;</summary>
		<author><name>Re</name></author>
	</entry>
</feed>