सेगमेंटेशन दोष देना भूल जाते हैं


0

मैंने हाल ही में अपने डेबियन वीपीएस सर्वर पर apt-get updateपीछा किया apt-get upgrade। अचानक (कम से कम) wgetत्रुटि के साथ काम करना बंद कर दिया Segmentation fault। यह कुछ करने की कोशिश भी नहीं कर रहा है। इसलिए कुछ googling के बाद मैंने स्थापित किया है gdbऔर wget को डीबग करने का प्रयास किया है:

~# gdb wget
(gdb) run
Starting program: /usr/bin/wget
Error while mapping shared library sections:
'/lib/libc.so.5': not in executable format: File truncated
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()

/lib/मुझे यह देखते हुए :

~# ls -l /lib/
total 288
lrwxrwxrwx  1 root root    21 Oct 14 08:52 cpp -> /etc/alternatives/cpp
drwxr-xr-x  2 root root  4096 May  7  2015 discover
drwxr-xr-x  2 root root  4096 May  7  2015 ifupdown
drwxr-xr-x  2 root root  4096 May  7  2015 init
-rwxr-xr-x  1 root root 71416 Oct  5  2014 klibc-IpHGKKbZiB_yZ7GPagmQz2GwVAQ.so
-rwxr-xr-x  1 root root 23904 Jan 26 22:08 libc.so.5
lrwxrwxrwx  1 root root    17 Nov  8  2014 libip4tc.so.0 -> libip4tc.so.0.1.0
-rw-r--r--  1 root root 31416 Nov  8  2014 libip4tc.so.0.1.0
lrwxrwxrwx  1 root root    17 Nov  8  2014 libip6tc.so.0 -> libip6tc.so.0.1.0
-rw-r--r--  1 root root 31416 Nov  8  2014 libip6tc.so.0.1.0
lrwxrwxrwx  1 root root    15 Nov  8  2014 libipq.so.0 -> libipq.so.0.0.0
-rw-r--r--  1 root root 10544 Nov  8  2014 libipq.so.0.0.0
lrwxrwxrwx  1 root root    16 Nov  8  2014 libiptc.so.0 -> libiptc.so.0.0.0
-rw-r--r--  1 root root  5816 Nov  8  2014 libiptc.so.0.0.0
lrwxrwxrwx  1 root root    20 Nov  8  2014 libxtables.so.10 -> libxtables.so.10.0.0
-rw-r--r--  1 root root 51896 Nov  8  2014 libxtables.so.10.0.0
drwxr-xr-x  3 root root  4096 May  7  2015 lsb
drwxr-xr-x  2 root root  4096 May  7  2015 modprobe.d
drwxr-xr-x  3 root root  4096 May  7  2015 modules
drwxr-xr-x  2 root root  4096 May  7  2015 startpar
drwxr-xr-x  8 root root  4096 Jan 27 15:19 systemd
drwxr-xr-x 15 root root  4096 May  7  2015 terminfo
drwxr-xr-x  4 root root  4096 Jan 27 15:13 udev
drwxr-xr-x  4 root root 12288 Jan 27 15:20 x86_64-linux-gnu
drwxr-xr-x  2 root root  4096 May  7  2015 xtables

जैसा कि हम देख सकते हैं कि जन -26 को libc.so.5 को "कुछ हुआ है" लेकिन मुझे वास्तव में नहीं पता कि क्या है।

मैंने जाँच की है dmesg | grep "wget":

(truncated)
[247973.065698] wget[9959]: segfault at 0 ip           (null) sp 00007ffc31e37558 error 14 in wget[400000+63000]
[248272.905735] wget[10886]: segfault at 0 ip           (null) sp 00007ffcf3e14038 error 14 in wget[400000+63000]
[248572.716856] wget[11824]: segfault at 0 ip           (null) sp 00007fffdcc9e2d8 error 14 in wget[400000+63000]
[248873.509595] wget[12742]: segfault at 0 ip           (null) sp 00007ffd84ad95d8 error 14 in wget[400000+63000]
[249173.463737] wget[13689]: segfault at 0 ip           (null) sp 00007ffca87ba518 error 14 in wget[400000+63000]
[249472.948078] wget[14664]: segfault at 0 ip           (null) sp 00007ffe54fd32a8 error 14 in wget[400000+63000]
[249776.082815] wget[15640]: segfault at 0 ip           (null) sp 00007ffecc36c758 error 14 in wget[400000+63000]
[250072.819988] wget[16595]: segfault at 0 ip           (null) sp 00007fff07f4f9d8 error 14 in wget[400000+63000]
[250373.130105] wget[17570]: segfault at 0 ip           (null) sp 00007ffcec9c01d8 error 14 in wget[400000+63000]
[250672.640891] wget[18493]: segfault at 0 ip           (null) sp 00007ffe9f78cc08 error 14 in wget[400000+63000]
[250975.950585] wget[19412]: segfault at 0 ip           (null) sp 00007fff46300128 error 14 in wget[400000+63000]

Server एक VPS है जो डेबियन पर Wedos.com पर चल रहा है:

~# uname -a
Linux server1 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux

क्या कोई मेरी मदद कर सकता है कि क्या हो रहा है और segfault को कैसे ठीक किया जाए? यह लाइव ट्रैफिक के साथ प्रोडक्शन सर्वर है।

धन्यवाद!


1
'/lib/libc.so.5': not in executable format: File truncatedआपका सिस्टम एक व्यवस्थित स्थिति में है और वर्तमान में यह सबसे अच्छा कर सकता है। आप जो कुछ भी करते हैं, उसे दोबारा न करें। इसके अलावा, sshd की तरह, कुछ भी पुनः आरंभ करने से बचने के लिए वास्तव में कठिन प्रयास करें। यह वापस नहीं आने की बहुत संभावना है।
एक CVn

@ माइकल उत्तर देने के लिए धन्यवाद। क्या यह संभव है कि किसी तरह से प्रतिस्थापन / डाउनलोड / मरम्मत libs.so.5 हो?
महामार २ Ma

जवाबों:


2

यहाँ कुंजी लाइन है

'/lib/libc.so.5': not in executable format: File truncated

सी लाइब्रेरी लिनक्स सहित यूनिक्स जैसी प्रणाली के मुख्य घटकों में से एक है। यह भ्रष्ट है इसका मतलब है कि वस्तुतः कुछ भी काम नहीं करेगा। आप खुशकिस्मत हैं कि आपका सिस्टम साथ चल रहा है, लेकिन यह बहुत संभव है कि कुछ भी शुरू या फिर से शुरू करना विफल हो जाए।

सिस्टम को पुनः स्थापित न करें। अपनी वर्तमान स्थिति में, यह लगभग निश्चित रूप से वापस नहीं आएगा।

खासकर क्योंकि यह एक VPS है, और क्योंकि यह एक अपग्रेड के साथ एक साथ हुआ है, मुझे आश्चर्य हो रहा है कि शायद आप डिस्क स्पेस या इनसाइड जैसे संसाधनों से बाहर भाग गए। मैं इसे इस तरह से आगे नहीं बढ़ाऊंगा कि आपके सिस्टम पर अधिक चीजें टूटी हुई हैं, इसलिए आपको कुछ प्रकार की आपदा वसूली को लागू करने की आवश्यकता हो सकती है। सबसे आसान विकल्प आपके सबसे हालिया बैकअप को पुनर्स्थापित करने के लिए बहुत अच्छा हो सकता है।

बहुत कम से कम, आपको सी लाइब्रेरी को फिर से स्थापित करना होगा। मेरे डेबियन सिस्टम पर, यह libc6मुख्य रूप से पैकेज के परिवार द्वारा प्रदान किया जाता है libc6। आप उन dpkg -S libc.soसभी पैकेजों को सूचीबद्ध करने के लिए चला सकते हैं, जो विकल्प युक्त नाम के साथ फाइल प्रदान करते हैं libc.so। यदि आप प्रश्न में इसे VPS पर नहीं चला सकते हैं, तो एक अलग सिस्टम सेट करें (कहीं भी कम प्रोविज्ड VM हो सकता है; जो वास्तव में ज्यादा मायने नहीं रखता है), डेबियन के एक ही रिलीज के साथ, पैकेज सूचियों को अपडेट करें, और चलाएं। वहां की कमान; यह आपको बताएगा कि पुनर्स्थापना के लिए कौन से पैकेज उम्मीदवार हैं।

एक बार जब आपके पास काम करने के लिए बहुत मूल बातें होती हैं, तो आप यह देखना चाहते हैं कि पैकेज-इंस्टॉल की गई फ़ाइलों का सत्यापन मूल से कैसे किया जाए? यह सत्यापित करने के लिए कि कैसे (कम से कम अधिकतर) और कुछ भी दूषित नहीं हुआ है।

व्यक्तिगत रूप से, विशेष रूप से चूंकि यह एक महत्वपूर्ण प्रणाली है (क्योंकि आप कहते हैं कि यह "लाइव ट्रैफ़िक के साथ उत्पादन सर्वर है"), मैं शायद सिर्फ आपदा वसूली की योजना शुरू करना पसंद करूँगा जो आपके पास है। संभावना है कि चीजों को ठीक करने की कोशिश करने की तुलना में यह आसान और तेज होगा और कभी भी यह जानने में असमर्थ कि आप संभवतः किन त्रुटियों से चूक गए हैं। यह वास्तव में ऑर्बिट से न्युक होने की जरूरत का एक बदलाव है, यह सुनिश्चित करने के लिए


धन्यवाद। हाँ लगभग एक हफ्ते पहले हम अंतरिक्ष से बाहर भाग गए और मुझे fdiskविभाजन को बढ़ाने के लिए उपयोग करना पड़ा । वैसे भी dpkg -S libc.soमुझे दिया libc6-dev:amd64: /usr/lib/x86_64-linux-gnu/libc.soऔर libc6:amd64: /lib/x86_64-linux-gnu/libc.so.6। क्या आपको लगता है कि मैं बस libc6का उपयोग करके पुनर्स्थापित कर सकता हूं apt-get? मैं इस क्षेत्र में थोड़ा
नीरव

@ MaRmAR नहीं libc.so.5जो gdb के बारे में शिकायत करता है? लेकिन हां, यह पूरी तरह से उचित होना चाहिए और किसी अन्य भ्रष्टाचार को मानते हुए, अपनी समस्याओं को हल करना चाहिए। या तो सीधे apt-getया dpkgसीधे माध्यम से।
एक CVn

इसलिए मैंने उस libc.so.5फाइल को प्राप्त करने के लिए एक वर्चुअलबॉक्स के अंदर ठीक उसी डेबियन 8.3 को स्थापित किया है, लेकिन यह वहां नहीं है! मैं अब हताश हूं।
मैमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.