லினக்ஸ் கர்னலில் ஒரு பிழை கண்டறியப்பட்டது, இது AVX ஐப் பயன்படுத்தும் சில நிரல்களை செயலிழக்கச் செய்கிறது

லினக்ஸ் கர்னலில் 5.2 வெளியானதிலிருந்து, வெளிப்படுத்தப்படுகிறது ஒரு சிக்னல் ஹேண்ட்லரில் இருந்து திரும்பும் போது AVX பதிவேட்டின் உள்ளடக்கங்களை மீறும் ஒரு பிழை, விதிவிலக்கு எறியப்படும் போது கையாளப்படும் (பக்கம்-தவறு). GCC 9 இல் கர்னல் கட்டமைக்கப்பட்டிருந்தால், AVX பதிவேட்டுடன் கணக்கீடுகளை உள்ளடக்கிய பல-திரிக்கப்பட்ட நிரல்களை ("-pthread") இயக்கும்போது சிக்கல் ஏற்படுகிறது (GCC இன் முந்தைய வெளியீடுகளில் கட்டமைக்கப்பட்டிருந்தால், GCC 9 கேச்களில் இருந்து பிழை தோன்றாது. பதிவேட்டில் உள்ள நூல்-உள்ளூர் மாறியின் முகவரி, மற்றும் GCC இன் முந்தைய பதிப்புகள் ஒவ்வொரு முறையும் அதை ஏற்றும்).

சிக்கல் நினைவக சிதைவு பிழையுடன் நிரலை முன்கூட்டியே நிறுத்துகிறது. பிழையின் மிகவும் குறிப்பிடத்தக்க மற்றும் அடிக்கடி கவனிக்கப்பட்ட வெளிப்பாடு மாறிவிட்டது நொறுங்குகிறது பயன்பாடுகள், கோ மொழியில் எழுதப்பட்டது. குறிப்பிடப்பட்ட பிரச்சனையின் காரணமாக, பொதுவாக "இயக்க நேரப் பிழை: தவறான நினைவக முகவரி அல்லது nil pointer dereference", "இயக்க நேரம்: எதிர்பாராத ரிட்டர்ன் பிசி" மற்றும் "பிரிவு மீறல்" போன்ற பிழைகளுடன், Go நிரல்கள் முன்கூட்டியே முடிவடைகின்றன. கர்னலில் உள்ள பிழை சரிசெய்யப்படாமல் உள்ளது. சாத்தியம் குறித்து பரிசீலிக்கப்பட்டு வருகிறது கோ மொழி இயக்க நேரத்தில் மாற்றங்களைச் சேர்ப்பது, பிரச்சனைக்குரிய லினக்ஸ் கர்னல்களில் உள்ள பிழைகளைத் தேர்ந்தெடுக்க, கூடுதல் மேல்நிலை செலவில்.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்