ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-22, Wednesday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

බ්‍රවුසරයේ 301 අනුපිළිවෙල ID ගැටලුව – JVM හි කිසිඳු ගැටළුවක් නැත, සත්‍ය බග් එක හඳුනාගත් අයුරු

බ්‍රවුසරයේ 301 අනුපිළිවෙල ID ගැටලුව – JVM හි කිසිඳු ගැටළුවක් නැත, සත්‍ය බග් එක හඳුනාගත් අයුරු

Java භාෂාවෙන් ලියන ලද සරල Match‑3 ක්‍රීඩාවක්, එකම කේතය දෙකේම – JVM සහ බ්‍රවුසරය – ක්‍රියාත්මක කරමින්, සංවර්ධාකරු එක අද්භූත ගැටළුවක් සොයා ගත්තේය.

ක්‍රීඩාවේ එක් එක් රත්න (gem) එකකට අයිඩී (ID) ලබා දීමේදී, row‑col‑nanoTime‑random ආකාරයට සකස් කර තිබුණි. JVM හි එම ක්‍රමය පරීක්ෂා කළ විට අනුපිළිවෙල අඩුම තරම් ඇති වූ නමුත්, TeaVM මඟින් JavaScript වෙත පරිවර්තනය කර බ්‍රවුසරයේ ක්‍රියාත්මක කළ විට 128,000 රත්න අතර 301 අනුපිළිවෙල ID ගැටලුවක් ලැබුණි.

මෙම ගැටලුවේ මූලික හේතුව, බ්‍රවුසරයේ System.nanoTime() ක්‍රමය 100 මයික්‍රොසෙකන්ඩ් පමණක් නියම කර ඇති Spectre ආරක්ෂණ පියවරයක් නිසා, ඉතා ඉක්මනින් අමතර ඇමතුම් අතර කාලය වෙනස් නොවීමයි. එම නිසා ර‍ැන්ඩම් අංකය (RNG) එකක් පමණක් භාවිතා කරන විටම ID එකම වීමට ඉඩ තිබුණි.

සංවර්ධකයා මේ ගැටලුව සලකා බැලීමෙන් පසු, කාලය මත රැඳී නොසිටි, අනුක්‍රමික counter එකක් භාවිතා කිරීමේ විසඳුමක් ගත්තා. එමඟින් ID එක සෑම වරක්ම වෙනස් වන අතර, පළවෙනි පරිසරය (JVM) සහ දෙවන පරිසරය (browser) අතර අනුපිළිවෙල ගැටලුව අඩු විය.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ශ්‍රී ලංකාවේ තරුණ සංවර්ධකයින්ට මෙම කථාවෙන් ඉගෙන ගත හැකි කරුණු කිහිපයක් ඇත:

  • කෝඩ් එකේ පරිසර-අධාරිත අංග (උදා: කාල රෙසොලූෂන්) භාවිතා කිරීමේ අවදානම.
  • එකම කේතය විවිධ පරිසරවල (JVM, browser) පරීක්ෂා කිරීමෙන් ස්වයංක්‍රීය පරීක්ෂණයක් ලැබේ.
  • CI/CD පද්ධති තුළ අනුපිළිවෙල පරීක්ෂණ (uniqueness tests) ඇතුළත් කිරීමේ වැදගත්කම.
  • දෝෂය සොයා ගැනීමේදී මිනිස් අභිප්‍රාය (human judgement) සහ මැෂින් අලගු (automation) අතර සම්බන්ධතාවය.

මෙම පියවරයන් අනුගමනය කළහොත්, ශ්‍රී ලංකාවේ තාක්ෂණ ආරම්භකයන්ට නිවැරදි, පරිසර-නිදහස් මෘදුකාංග නිර්මාණය කිරීමට සහ ගෝලීය තලයේ තරඟකාරීත්වය වැඩි කිරීමට හැකියාව ලැබේ.

අවසන් වශයෙන්, කේතය සරල කර, අනුක්‍රමික counter එකක් භාවිතා කිරීමෙන්, දෝෂය නිර්මාණය වූ පරිසරයේ පරීක්ෂා කිරීමේ හැකියාව වැඩි විය. මෙම උදාහරණය, මෘදුකාංග නිර්මාණයේ ප්‍රතිරූප පරීක්ෂාව හා දෝෂ හඳුනාගැනීමේ ක්‍රම පිළිබඳ මූලික පදනමක් වේ.

💡 ඔබේ මෘදුකාංගයේ අංක උත්පාදන ක්‍රම පරීක්ෂා කර බලන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Java #TeaVM #BugFix #Testing #SriLanka