Rsync ദുരന്തവും AI ഇൻഫ്രാസ്ട്രക്ചർ റിസ്കും
rsync-ന്റെ ഒരു മെയിന്റൈനർ ഒരു റിലീസ് പുറത്തിറക്കാൻ Claude ഉപയോഗിച്ചു. ആ റിലീസ് അബ്സല്യൂട്ട് പാത്ത് ഹാൻഡ്ലിംഗിനെ (absolute path handling) തകരാറിലാക്കി.
ദശലക്ഷക്കണക്കിന് സെർവറുകളിൽ rsync പ്രവർത്തിക്കുന്നുണ്ട്. ഇത് ബാക്കപ്പുകൾ, ഡിപ്ലോയ്മെന്റുകൾ, മിററുകൾ എന്നിവ കൈകാര്യം ചെയ്യുന്നു. rsync പരാജയപ്പെട്ടാൽ ബാക്കപ്പുകൾ നിലയ്ക്കും. ഡാറ്റ സിങ്ക് ആകില്ല. ഈ ടൂൾ എല്ലായിടത്തും ഉള്ളതുകൊണ്ട് ഇതിലൂടെ ഉണ്ടാകുന്ന നാശനഷ്ടങ്ങൾ വളരെ വലുതാണ്.
AI സഹായത്തോടെ തയ്യാറാക്കിയ ഒരു സെക്യൂരിറ്റി പാച്ചിൽ നിന്നാണ് ഈ ബഗ് ഉണ്ടായത്. AI കോഡിംഗ് ടൂളുകളിലെ വലിയൊരു പ്രശ്നത്തെയാണ് ഇത് ചൂണ്ടിക്കാണിക്കുന്നത്.
AI അസിസ്റ്റന്റുകൾ പാറ്റേണുകളെ അടിസ്ഥാനമാക്കിയാണ് പ്രവർത്തിക്കുന്നത്. പുതിയ കോഡുകളോ ബോയിലർപ്ലേറ്റ് (boilerplate) കോഡുകളോ എഴുതുന്നതിൽ അവ മികച്ചവയാണ്. എന്നാൽ സ്റ്റേബിൾ ആയ ഇൻഫ്രാസ്ട്രക്ചർ കോഡുകൾ മാറ്റമില്ലാതെ തുടരണം. അതിന്റെ പ്രവർത്തനരീതിയിൽ മാറ്റം വരാൻ പാടില്ല.
rsync കോഡ് മനഃപൂർവ്വം വിചിത്രമായ രീതിയിലാണ് കാണപ്പെടുന്നത്. വർഷങ്ങൾക്ക് മുമ്പ് പ്രൊഡക്ഷനിൽ കണ്ടെത്തിയ എഡ്ജ് കേസുകൾ (edge cases) കൈകാര്യം ചെയ്യാൻ വേണ്ടിയാണിത്. ഒരു AI ഈ വിചിത്രമായ കോഡ് കണ്ട് അത് മെച്ചപ്പെടുത്താൻ ശ്രമിക്കുന്നു. ഉപയോക്താക്കളുമായുള്ള പരോക്ഷമായ കരാറുകളെ (implicit contracts) അത് മനസ്സിലാക്കുന്നില്ല.
ടൂൾ തകരാറിലാക്കാൻ AI ഉദ്ദേശിച്ചതല്ല. ഒന്നും മാറ്റാതിരിക്കുക എന്നതായിരുന്നു ഏറ്റവും വലിയ മുൻഗണന എന്ന് അതിന് അറിയില്ലായിരുന്നു എന്ന് മാത്രം.
ഞാൻ എല്ലാ ദിവസവും AI ഉപയോഗിക്കാറുണ്ട്. വേഗത്തിൽ എഴുതാനും പരീക്ഷണങ്ങൾ നടത്താനും അത് എന്നെ സഹായിക്കുന്നു. ഞാൻ AI-ക്ക് എതിരല്ല. എന്നാൽ ഇൻഫ്രാസ്ട്രക്ചർ കോഡുകളിൽ നിർണ്ണായകമായ തീരുമാനങ്ങൾ എടുക്കാൻ ഞാൻ ഒരിക്കലും AI-യെ അനുവദിക്കില്ല. ഓരോ AI നിർദ്ദേശത്തെയും ഒരു ജൂനിയർ ഡെവലപ്പറിൽ നിന്നുള്ള കമന്റ് പോലെയാണ് ഞാൻ കാണുന്നത്.
അപകടം 'ട്രസ്റ്റ് ഗ്രേഡിയന്റിൽ' (trust gradient) ആണ്. ഒരു AI പത്ത് നല്ല ഉത്തരങ്ങൾ നൽകിയാൽ, പതിനൊന്നാമത്തെ ഉത്തരത്തെ നിങ്ങൾ അമിതമായി വിശ്വസിക്കും. നിങ്ങൾ അത് കുറച്ചു മാത്രം പരിശോധിക്കും. വേഗത്തിൽ അംഗീകരിക്കും.
ഇത് 'കോൺടെക്സ്റ്റ് കൊളാപ്സ്' (context collapse) എന്ന പ്രശ്നമാണ്. ഒരു വീക്കെൻഡ് പ്രോജക്റ്റിനെയും മുപ്പത് വർഷം പഴക്കമുള്ള ഒരു Unix യൂട്ടിലിറ്റിയെയും AI ഒരേ ആത്മവിശ്വാസത്തോടെയാണ് കാണുന്നത്. അത് സ്പർശിക്കുന്ന കോഡിന്റെ പ്രാധാന്യം അതിന് അറിയില്ല.
ഉത്തരവാദിത്തം മെയിന്റൈനർമാരുടേതാണ്. എന്നാൽ നമുക്ക് പുതിയ ഗാർഡ്റെയിലുകൾ (guardrails) ആവശ്യമാണ്.
AI സഹായത്തോടെയുള്ള ഡെവലപ്മെന്റിൽ ഓരോ റിസ്ക് ലെവലിനും വ്യത്യസ്ത നിയമങ്ങൾ ആവശ്യമാണ്. ചില കോഡുകൾ തകരാറിലായാൽ വലിയ വില നൽകേണ്ടി വരും. rsync, OpenSSL, ഡാറ്റാബേസ് ഡ്രൈവർമാർ എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു.
rsync സംഭവം ഒരു മുന്നറിയിപ്പായിരുന്നു. ഡാറ്റ ഒന്നും നഷ്ടപ്പെട്ടില്ല, എങ്കിലും നമ്മൾ എന്തുകൊണ്ട് ജാഗ്രത പാലിക്കണമെന്ന് ഇത് കാണിച്ചുതരുന്നു.
AI ഉപയോഗിക്കുന്നത് നിർത്തരുത്. പകരം, മികച്ച ഉൾക്കാഴ്ചകൾ (instincts) വളർത്തിയെടുക്കുക. മെഷീനെ എപ്പോൾ സംശയിക്കണമെന്ന് അറിയുക.
ഏത് ഘട്ടത്തിലാണ് നിങ്ങൾ AI നിർദ്ദേശങ്ങളെ വിശ്വസിക്കുന്നത് നിർത്തുന്നത്? ഒരു കോഡ്ബേസ് എത്രത്തോളം നിർണ്ണായകമാകുമ്പോഴാണ് അതിന് അതീവ ജാഗ്രതയോടെയുള്ള (paranoid review) പരിശോധന ആവശ്യമായി വരുന്നത്?
Source: https://dev.to/adioof/the-rsync-disaster-proves-ai-isnt-ready-for-infrastructure-code-4154
Optional learning community: https://t.me/GyaanSetuAi