<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>AI on Milad's blog</title><link>https://blog.miladibra.com/tags/ai/</link><description>Notes by Milad.</description><generator>Hugo</generator><language>en-us</language><copyright>© Milad</copyright><lastBuildDate>Sun, 11 Oct 2026 21:57:01 +0200</lastBuildDate><atom:link href="https://blog.miladibra.com/tags/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>Amazed and disappointed at the same time</title><link>https://blog.miladibra.com/posts/amazed-and-disappointed-at-the-same-time/</link><pubDate>Sun, 11 Oct 2026 18:51:37 +0200</pubDate><dc:creator>Milad</dc:creator><guid isPermaLink="true">https://blog.miladibra.com/posts/amazed-and-disappointed-at-the-same-time/</guid><category>AI</category><category>linux</category><category>systemd</category><description>&lt;h1 id="strange-alert"&gt;Strange Alert&lt;/h1&gt;&#10;&lt;p&gt;I was ready to wrap up my day, but you can imagine what happened. An alert related to an important server fired! Here we go again &amp;hellip;&lt;/p&gt;&#10;&lt;p&gt;The server was part of a stateful cluster, and being absent could cause serious issues if continued enough.&lt;/p&gt;&#10;&lt;p&gt;The alert message was simple. &lt;code&gt;Node-XX is Down&lt;/code&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;The picture below is AI-generated&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;img src="https://blog.miladibra.com/images/NodeDownAlert.jpeg" alt="NodeDown Alert" /&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;Of course, I jumped in trying to troubleshoot. I tried to &lt;code&gt;ssh&lt;/code&gt; (via a reverse proxy) into the server. Failed! Of&#10;course, it would fail. What was I even thinking when I did that?&lt;/p&gt;&#10;&lt;p&gt;I decided to check the cluster status to understand the severity of the issue. Super surprisingly, the cluster was in a healthy state and the node was in the member list of the cluster.&lt;/p&gt;&#10;&lt;p&gt;WHAAAAAT? Are you kidding me? How is that possible?&lt;/p&gt;&#10;&lt;h1 id="time-to-investigate"&gt;Time to investigate&lt;/h1&gt;&#10;&lt;p&gt;I made a couple of other checks and made completely sure that the cluster is healthy. It was the moment of relief, and I had all the time in the world to investigate this interesting issue.&lt;/p&gt;&#10;&lt;p&gt;First, I suspected that the reverse &lt;code&gt;ssh&lt;/code&gt; agent in the server was not running or something. But it didn&amp;rsquo;t make sense!&#10;Because metrics from &lt;code&gt;node-exporter&lt;/code&gt; were not being scraped. The issue must be broader than &lt;code&gt;ssh&lt;/code&gt;.&#10;Then why does the application work and the cluster is healthy? Extremely confused!&lt;/p&gt;&#10;&lt;p&gt;Got access to the serial console of the server. Fortunately, I was able to interact with the server! The server was not actually down.&lt;/p&gt;&#10;&lt;p&gt;Let&amp;rsquo;s check the status of the application. It was indeed running! The SSH reverse proxy agent was healthy also. Even&#10;more confusing!&lt;/p&gt;&#10;&lt;p&gt;Let&amp;rsquo;s check network connectivity and export availability. &lt;code&gt;ip -6 a&lt;/code&gt; shows interfaces are up and working. &lt;code&gt;curl&lt;/code&gt; to the exporter works both locally and remotely!&lt;/p&gt;&#10;&lt;p&gt;This was the point that I had no clue what was going on.&lt;/p&gt;&#10;&lt;h1 id="ai-the-mighty-i-need-your-help"&gt;AI the mighty, I need your help!&lt;/h1&gt;&#10;&lt;p&gt;Desperately, I decided to get help from AI, but no coding agent because I could not provide access to the serial console&#10;to an agent like &lt;code&gt;codex&lt;/code&gt;.&#10;Even copying the output of the console was not possible. I only could take screenshots! Might seem crazy, but why not!&lt;/p&gt;&#10;&lt;p&gt;I opened a ChatGPT session and explained the situation. I asked it to troubleshoot the issue, and I would be its tools.&#10;It should give me one command at a time, and I would share the result with screenshots. (Yes! I had all the time in the&#10;world!)&lt;/p&gt;&#10;&lt;p&gt;There were lots of commands to run, and it was time-consuming. Agents are truly a blessing!&lt;/p&gt;&#10;&lt;p&gt;In the middle of the troubleshooting, based on the commands and their outputs, I understood the issue. Network interfaces were removed and added back constantly. That was why my previous manual checks (un)luckily worked!&#10;I didn&amp;rsquo;t know how to fix such an issue. Asked ChatGPT a couple of questions in separate sessions. Even used good old friend google searching for similar issues as well. But not a chance!&lt;/p&gt;&#10;&lt;p&gt;I was still providing screenshots to ChatGPT, but at some point it stopped asking me for more commands and did a lot of thinking and searching!&lt;/p&gt;&#10;&lt;p&gt;It responded with a link to a github &lt;a href="https://github.com/systemd/systemd/issues/20357"&gt;issue&lt;/a&gt;&#10; in &lt;code&gt;systemd&lt;/code&gt; repository.&lt;/p&gt;&#10;&lt;p&gt;The issue seems to be exactly our case. It was caused by a bug it &lt;code&gt;systemd&lt;/code&gt; that caused ipv6 interfaces to be removed and added back repeatedly.&#10;ChatGPT concluded the issue with an explanation of the bug and suggesting to upgrade &lt;code&gt;systemd&lt;/code&gt; to a certain version.&lt;/p&gt;&#10;&lt;h1 id="happiness-vanished-soon"&gt;Happiness vanished soon!&lt;/h1&gt;&#10;&lt;p&gt;I was thrilled that I could find the issue and the fix for it thanks to ChatGPT! Now it&amp;rsquo;s time to upgrade &lt;code&gt;systemd&lt;/code&gt;!&lt;/p&gt;&#10;&lt;p&gt;But wait! All other servers of the cluster use the same version of &lt;code&gt;systemd&lt;/code&gt;. Why aren&amp;rsquo;t they affected by the issue? I need to understand the exact root cause before performing any action!&lt;/p&gt;&#10;&lt;p&gt;I continued the conversation with ChatGPT in the same session. Asked why the issue was not affecting other servers of the cluster. This time the discussion didn&amp;rsquo;t seem to go well. After a long time of back and forth, I couldn&amp;rsquo;t find any convincing reason.&lt;/p&gt;&#10;&lt;p&gt;What a roller-coaster ride! I was amazed half an hour ago but disappointed now.&lt;/p&gt;&#10;&lt;p&gt;As a last resort, I asked a colleague that has the most experience with this cluster and servers. He started doing some checks very similar checks to suggested checks by ChatGPT in my session.&#10;After some checks, he said:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;+ Only this server has 498 days of uptime. Maybe some integer overflow. I&amp;rsquo;ll ask chatgpt about it&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h1 id="ai-investigates-again"&gt;AI Investigates again!&lt;/h1&gt;&#10;&lt;p&gt;My colleague&amp;rsquo;s conversation with ChatGPT continued, and it found something really interesting. It seems the root cause of our issue.&#10;It suggested that the issue was caused by an overflow in &lt;code&gt;IFA_CACHEINFO&lt;/code&gt;. We didn&amp;rsquo;t have any clue what that is.&lt;/p&gt;&#10;&lt;p&gt;After some more investigation, we found out that there is&#10;a &lt;a href="https://github.com/torvalds/linux/blob/master/include/uapi/linux/if_addr.h#L64"&gt;struct&lt;/a&gt;&#10; in Linux kernel code called&#10;&lt;code&gt;ifa_cacheinfo&lt;/code&gt;. It uses a &lt;code&gt;__u32&lt;/code&gt; for storing the creation time of the interface, and the unit is hundredths of a&#10;second. With a small calculation, it&amp;rsquo;s clear that it can hold up to 497.1 days!&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;struct&lt;/span&gt; ifa_cacheinfo {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;__u32&#9;ifa_prefered;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;__u32&#9;ifa_valid;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;__u32&#9;cstamp; &lt;span style="color:#75715e"&gt;/* created timestamp, hundredths of seconds */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;__u32&#9;tstamp; &lt;span style="color:#75715e"&gt;/* updated timestamp, hundredths of seconds */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Bingo! Our server has 498 days of uptime. We might have actually found the root cause now!&#10;And after a reboot the problem was gone! (We are truly restart engineers sometimes 😂)&lt;/p&gt;&#10;&lt;p&gt;But another small question! Why was the application, which was also using network, not affected?&#10;Because the application was using &lt;code&gt;dpdk&lt;/code&gt; for networking and was bypassing the Linux kernel in this case. Clear as sky 🫠&lt;/p&gt;&#10;&lt;h1 id="reflections"&gt;Reflections&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;First of all, agents like &lt;code&gt;claude code&lt;/code&gt; and &lt;code&gt;codex&lt;/code&gt; are a blessing! I was tired of being the pipe between the real&#10;world and the model, taking so many screenshots!😁 You might argue that even with computer use, these kinds of cases&#10;could be solved. But I don&amp;rsquo;t have full trust to grant access to critical production workloads yet for some&#10;controversial reasons!&lt;/li&gt;&#10;&lt;li&gt;AI can sometimes mislead us if we don&amp;rsquo;t understand what&amp;rsquo;s actually going on under the hood. In this particular case,&#10;upgrading &lt;code&gt;systemd&lt;/code&gt; to a different version (not the one AI suggested) would have also solved the issue. But what if&#10;the issue was not solved yet by &lt;code&gt;systemd&lt;/code&gt;? What if the newer version could cause newer known/unknown problems that&#10;didn&amp;rsquo;t exist before?&lt;/li&gt;&#10;&lt;li&gt;Experience and insight still matter! At least for now! AI can get stuck in some sort of local extremum sometimes.&lt;/li&gt;&#10;&lt;li&gt;Some pieces of software like &lt;code&gt;systemd&lt;/code&gt; (and sometimes &lt;code&gt;linux&lt;/code&gt;) can also have unexpected behaviors and bugs! I mostly&#10;trust Linux and fundamental components of it blindly. Although it&amp;rsquo;s rare, when troubleshooting, it&amp;rsquo;s always good to&#10;keep that in mind.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description><content:encoded>&lt;h1 id="strange-alert"&gt;Strange Alert&lt;/h1&gt;&#10;&lt;p&gt;I was ready to wrap up my day, but you can imagine what happened. An alert related to an important server fired! Here we go again &amp;hellip;&lt;/p&gt;&#10;&lt;p&gt;The server was part of a stateful cluster, and being absent could cause serious issues if continued enough.&lt;/p&gt;&#10;&lt;p&gt;The alert message was simple. &lt;code&gt;Node-XX is Down&lt;/code&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;The picture below is AI-generated&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;img src="https://blog.miladibra.com/images/NodeDownAlert.jpeg" alt="NodeDown Alert" /&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;Of course, I jumped in trying to troubleshoot. I tried to &lt;code&gt;ssh&lt;/code&gt; (via a reverse proxy) into the server. Failed! Of&#10;course, it would fail. What was I even thinking when I did that?&lt;/p&gt;&#10;&lt;p&gt;I decided to check the cluster status to understand the severity of the issue. Super surprisingly, the cluster was in a healthy state and the node was in the member list of the cluster.&lt;/p&gt;&#10;&lt;p&gt;WHAAAAAT? Are you kidding me? How is that possible?&lt;/p&gt;&#10;&lt;h1 id="time-to-investigate"&gt;Time to investigate&lt;/h1&gt;&#10;&lt;p&gt;I made a couple of other checks and made completely sure that the cluster is healthy. It was the moment of relief, and I had all the time in the world to investigate this interesting issue.&lt;/p&gt;&#10;&lt;p&gt;First, I suspected that the reverse &lt;code&gt;ssh&lt;/code&gt; agent in the server was not running or something. But it didn&amp;rsquo;t make sense!&#10;Because metrics from &lt;code&gt;node-exporter&lt;/code&gt; were not being scraped. The issue must be broader than &lt;code&gt;ssh&lt;/code&gt;.&#10;Then why does the application work and the cluster is healthy? Extremely confused!&lt;/p&gt;&#10;&lt;p&gt;Got access to the serial console of the server. Fortunately, I was able to interact with the server! The server was not actually down.&lt;/p&gt;&#10;&lt;p&gt;Let&amp;rsquo;s check the status of the application. It was indeed running! The SSH reverse proxy agent was healthy also. Even&#10;more confusing!&lt;/p&gt;&#10;&lt;p&gt;Let&amp;rsquo;s check network connectivity and export availability. &lt;code&gt;ip -6 a&lt;/code&gt; shows interfaces are up and working. &lt;code&gt;curl&lt;/code&gt; to the exporter works both locally and remotely!&lt;/p&gt;&#10;&lt;p&gt;This was the point that I had no clue what was going on.&lt;/p&gt;&#10;&lt;h1 id="ai-the-mighty-i-need-your-help"&gt;AI the mighty, I need your help!&lt;/h1&gt;&#10;&lt;p&gt;Desperately, I decided to get help from AI, but no coding agent because I could not provide access to the serial console&#10;to an agent like &lt;code&gt;codex&lt;/code&gt;.&#10;Even copying the output of the console was not possible. I only could take screenshots! Might seem crazy, but why not!&lt;/p&gt;&#10;&lt;p&gt;I opened a ChatGPT session and explained the situation. I asked it to troubleshoot the issue, and I would be its tools.&#10;It should give me one command at a time, and I would share the result with screenshots. (Yes! I had all the time in the&#10;world!)&lt;/p&gt;&#10;&lt;p&gt;There were lots of commands to run, and it was time-consuming. Agents are truly a blessing!&lt;/p&gt;&#10;&lt;p&gt;In the middle of the troubleshooting, based on the commands and their outputs, I understood the issue. Network interfaces were removed and added back constantly. That was why my previous manual checks (un)luckily worked!&#10;I didn&amp;rsquo;t know how to fix such an issue. Asked ChatGPT a couple of questions in separate sessions. Even used good old friend google searching for similar issues as well. But not a chance!&lt;/p&gt;&#10;&lt;p&gt;I was still providing screenshots to ChatGPT, but at some point it stopped asking me for more commands and did a lot of thinking and searching!&lt;/p&gt;&#10;&lt;p&gt;It responded with a link to a github &lt;a href="https://github.com/systemd/systemd/issues/20357"&gt;issue&lt;/a&gt;&#10; in &lt;code&gt;systemd&lt;/code&gt; repository.&lt;/p&gt;&#10;&lt;p&gt;The issue seems to be exactly our case. It was caused by a bug it &lt;code&gt;systemd&lt;/code&gt; that caused ipv6 interfaces to be removed and added back repeatedly.&#10;ChatGPT concluded the issue with an explanation of the bug and suggesting to upgrade &lt;code&gt;systemd&lt;/code&gt; to a certain version.&lt;/p&gt;&#10;&lt;h1 id="happiness-vanished-soon"&gt;Happiness vanished soon!&lt;/h1&gt;&#10;&lt;p&gt;I was thrilled that I could find the issue and the fix for it thanks to ChatGPT! Now it&amp;rsquo;s time to upgrade &lt;code&gt;systemd&lt;/code&gt;!&lt;/p&gt;&#10;&lt;p&gt;But wait! All other servers of the cluster use the same version of &lt;code&gt;systemd&lt;/code&gt;. Why aren&amp;rsquo;t they affected by the issue? I need to understand the exact root cause before performing any action!&lt;/p&gt;&#10;&lt;p&gt;I continued the conversation with ChatGPT in the same session. Asked why the issue was not affecting other servers of the cluster. This time the discussion didn&amp;rsquo;t seem to go well. After a long time of back and forth, I couldn&amp;rsquo;t find any convincing reason.&lt;/p&gt;&#10;&lt;p&gt;What a roller-coaster ride! I was amazed half an hour ago but disappointed now.&lt;/p&gt;&#10;&lt;p&gt;As a last resort, I asked a colleague that has the most experience with this cluster and servers. He started doing some checks very similar checks to suggested checks by ChatGPT in my session.&#10;After some checks, he said:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;+ Only this server has 498 days of uptime. Maybe some integer overflow. I&amp;rsquo;ll ask chatgpt about it&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h1 id="ai-investigates-again"&gt;AI Investigates again!&lt;/h1&gt;&#10;&lt;p&gt;My colleague&amp;rsquo;s conversation with ChatGPT continued, and it found something really interesting. It seems the root cause of our issue.&#10;It suggested that the issue was caused by an overflow in &lt;code&gt;IFA_CACHEINFO&lt;/code&gt;. We didn&amp;rsquo;t have any clue what that is.&lt;/p&gt;&#10;&lt;p&gt;After some more investigation, we found out that there is&#10;a &lt;a href="https://github.com/torvalds/linux/blob/master/include/uapi/linux/if_addr.h#L64"&gt;struct&lt;/a&gt;&#10; in Linux kernel code called&#10;&lt;code&gt;ifa_cacheinfo&lt;/code&gt;. It uses a &lt;code&gt;__u32&lt;/code&gt; for storing the creation time of the interface, and the unit is hundredths of a&#10;second. With a small calculation, it&amp;rsquo;s clear that it can hold up to 497.1 days!&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;struct&lt;/span&gt; ifa_cacheinfo {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;__u32&#9;ifa_prefered;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;__u32&#9;ifa_valid;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;__u32&#9;cstamp; &lt;span style="color:#75715e"&gt;/* created timestamp, hundredths of seconds */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;__u32&#9;tstamp; &lt;span style="color:#75715e"&gt;/* updated timestamp, hundredths of seconds */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Bingo! Our server has 498 days of uptime. We might have actually found the root cause now!&#10;And after a reboot the problem was gone! (We are truly restart engineers sometimes 😂)&lt;/p&gt;&#10;&lt;p&gt;But another small question! Why was the application, which was also using network, not affected?&#10;Because the application was using &lt;code&gt;dpdk&lt;/code&gt; for networking and was bypassing the Linux kernel in this case. Clear as sky 🫠&lt;/p&gt;&#10;&lt;h1 id="reflections"&gt;Reflections&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;First of all, agents like &lt;code&gt;claude code&lt;/code&gt; and &lt;code&gt;codex&lt;/code&gt; are a blessing! I was tired of being the pipe between the real&#10;world and the model, taking so many screenshots!😁 You might argue that even with computer use, these kinds of cases&#10;could be solved. But I don&amp;rsquo;t have full trust to grant access to critical production workloads yet for some&#10;controversial reasons!&lt;/li&gt;&#10;&lt;li&gt;AI can sometimes mislead us if we don&amp;rsquo;t understand what&amp;rsquo;s actually going on under the hood. In this particular case,&#10;upgrading &lt;code&gt;systemd&lt;/code&gt; to a different version (not the one AI suggested) would have also solved the issue. But what if&#10;the issue was not solved yet by &lt;code&gt;systemd&lt;/code&gt;? What if the newer version could cause newer known/unknown problems that&#10;didn&amp;rsquo;t exist before?&lt;/li&gt;&#10;&lt;li&gt;Experience and insight still matter! At least for now! AI can get stuck in some sort of local extremum sometimes.&lt;/li&gt;&#10;&lt;li&gt;Some pieces of software like &lt;code&gt;systemd&lt;/code&gt; (and sometimes &lt;code&gt;linux&lt;/code&gt;) can also have unexpected behaviors and bugs! I mostly&#10;trust Linux and fundamental components of it blindly. Although it&amp;rsquo;s rare, when troubleshooting, it&amp;rsquo;s always good to&#10;keep that in mind.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</content:encoded></item></channel></rss>