मुझे LD_LIBRARY_PATH
बदलने पर अजीब साइड इफेक्ट्स हैं।एलडी_LIBRARY_PATH दुष्प्रभाव
जब मैं एक पुस्तकालय युक्त पथ जोड़ता हूं, उदा। :
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_path/lib
फिर, सबकुछ अविश्वसनीय रूप से धीमा हो जाता है। उदाहरण के लिए, एक साधारण ls
10 सेकंड लंबा हो सकता है।
ldd
उत्पादन बिल्कुल उसी से पहले और LD_LIBRARY_PATH
परिवर्तन के बाद है और मैं strace
साथ धीमी गति से ls
के निष्पादन डिबग करने की कोशिश की: मैं दोनों ही मामलों में ठीक उसी निष्पादन मिलता है। निष्पादन ls
के निष्पादन के दौरान भी अटक नहीं जाता है (क्योंकि strace
10-सेकंड अंतराल के दौरान कुछ भी आउटपुट नहीं करता है और फिर अचानक ls
निष्पादित करता है)। तो मैंने सोचा कि यह मेरे खोल से आ सकता है, लेकिन यह वही है, मेरे बैश पर strace
चला रहा है और दोनों मामलों में ls
निष्पादित करने से मुझे strace
आउटपुट देता है: खोल ls
निष्पादित करता है और इसके निष्पादन के अंत की प्रतीक्षा करता है (अंतिम strace
strace
waitpid(...)
है) से पहले आउटपुट। तो मुझे लगता है कि ls
के लॉन्च और उसके निष्पादन के बीच कुछ गलत होता है, जैसे कि यह कर्नेल-स्तरीय समस्या थी। यह वास्तव में कार्य करता है जैसे sleep
ls
(0 सीपीयू उपयोग) पर बनाया गया था।
अंतराल के दौरान, मेरी सीपीयू और नेटवर्क गतिविधि पूरी तरह से सामान्य हैं ...
ध्यान दें कि नई एलडी रास्ते में पुस्तकालय किसी भी "मानक पुस्तकालय" से विरोध नहीं करता, तो यह में ls
परेशान नहीं करता है मेरी उदाहरण।
तो मैं LD_LIBRARY_PATH
साइड इफेक्ट्स के बारे में गहन स्पष्टीकरण में दिलचस्प हूं या कैसे अपना उदाहरण गहराई से डीबग करना है।
अच्छा सवाल। मैंने 'LD_LIBRARY_PATH' का उपयोग किया है और इस तरह के व्यवहार को कभी नहीं देखा है, फिर भी आपका अवलोकन अलग और स्पष्ट दोनों लगता है। दिलचस्प। – thb
'निर्यात LD_DEBUG = सभी' और 'मैन 8 ld.so' –
उचित रूप से स्पष्ट है लेकिन" ldd $ (जो ls) "एलडी_LIBRARY_PATH से कुछ भी उपयोग करता है तो एक सुराग दे सकता है। – Matthias