কেন mdworker segfault root ফাইল মালিকানা স্ক্যান যখন?


1

সর্বকালের সর্বনিম্ন স্থান এবং একটি CPU-> 100% এ কোনও ডিস্ক অনুসন্ধান করার সময়, আমি অবশেষে সিদ্ধান্ত নিলাম যে সমস্যাটি ছিল mdworker বারবার segfaulting, syslogd এবং ক্র্যাশ রিপোটার খুব ব্যস্ত রাখা।

আমি স্পটলাইটের সূচীগুলি স্বাভাবিক উপায়ে পুনঃনির্মাণ করার চেষ্টা করেছি: প্রথমে, সিস্টেম পছন্দগুলিতে গোপনীয়তা ট্যাবের মাধ্যমে - & gt; স্পটলাইট, তারপর মাধ্যমে mdworker -i off / ; mdworker -E -i on /, এবং একই আবার কিন্তু একটি হস্তক্ষেপ সঙ্গে rm -rf /.Spotlight-V100 এবং ভাল পরিমাপ জন্য পুনরায় বুট করুন; কিছুই সমস্যার সমাধান করলো।

গোপনীয়তা ট্যাব ব্যবহার করে বেশিরভাগ সবকিছু ছাড়া বাদ দিতে /Applications/, এবং তারপরে পুনরায় ফোল্ডার স্ক্যান করার জন্য এই ফোল্ডারটি যুক্ত / অপসারণ করা হয়েছে এবং আমি নির্ধারণ করতে পেরেছি যে কিছু ফাইল সঠিকভাবে সূচী করা হচ্ছে (এবং স্পটলাইট ফলাফলগুলিতে দেখানো হয়) তবে কিছু নয়; সঙ্গে আরো একটু poking opensnoop -n mdworker যখন যে প্রকাশ করে mdworker ইউআইডি 501 দিয়ে শুরু হয়েছে, আমার দ্বারা মালিকানাধীন অ্যাপ্লিকেশন ফাইলগুলি স্ক্যান করতে এটি জরিমানা কাজ করে (এবং কয়েকটি অন্যান্য ইউআইডিগুলির জন্য যারা একই ফাইলের মালিক /Applications/ ), কিন্তু যখন এটি UID 89 দিয়ে শুরু হয় ( _spotlight, অনুসারে dscl . -list /Users UniqueID ) - সম্ভবত রুট মালিকানাধীন ফাইল স্ক্যান করতে - এটি segfaults।

কনসোল থেকে এখানে একটি উদাহরণ এন্ট্রি:

2015-07-16 13:53:25 com.apple.launchd[1]    (0x100101670.mach_init.mdworker[13276]) Job appears to have crashed: Segmentation fault
2015-07-16 13:53:25 com.apple.ReportCrash.Root[13274]   2015-07-16 13:53:25.326 ReportCrash[13274:341b] Saved crash report for mdworker[13276] version ??? (???) to /Library/Logs/DiagnosticReports/mdworker_2015-07-16-135325-1_localhost.crash

এবং এখানে ক্র্যাশ রিপোর্ট থেকে একটি উদ্ধৃতাংশ (তারা সব বেশ অনেক অভিন্ন):

Process:         mdworker [13276]
Path:            /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mdworker
Identifier:      mdworker
Version:         ??? (???)
Code Type:       X86-64 (Native)
Parent Process:  launchd [1]

Date/Time:       2015-07-16 13:53:25.085 +0100
OS Version:      Mac OS X 10.6.8 (10K549)
Report Version:  6

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000010f5d1062
Crashed Thread:  3

[...]

Thread 3 Crashed:
0   ...ple.CoreServices.CarbonCore  0x00007fff867e7f0b CSStoreGetUnit + 84
1   com.apple.LaunchServices        0x00007fff821721ab _LSContainerCheckState + 65
2   com.apple.LaunchServices        0x00007fff82188fea _LSCopyLibraryItemURLs + 419
3   mdworker                        0x0000000100004305 0x100000000 + 17157
4   mdworker                        0x0000000100004c22 0x100000000 + 19490
5   mdworker                        0x00000001000050f3 0x100000000 + 20723
6   mdworker                        0x0000000100009aa2 0x100000000 + 39586
7   libSystem.B.dylib               0x00007fff80b94fd6 _pthread_start + 331
8   libSystem.B.dylib               0x00007fff80b94e89 thread_start + 13

[...]

আমি যুক্তিসঙ্গতভাবে নিশ্চিত যে এই কারণে হয় না সামগ্রী স্ক্যান করার চেষ্টা করা ফাইলগুলির মধ্যে, কারণ স্ক্যান করা উচিত /Applications/, এবং opensnoop এটি কোনও ফাইল স্পর্শ করার বিষয়ে প্রতিবেদন করে না (আসলে, প্রতিটি ক্র্যাশিং UID 89 উদাহরণের জন্য খোলা ফাইলগুলির তালিকাটি অভিন্ন, AFAICT)।

এটা সম্ভব যে এই সমস্যাটি টাইম মেশিনের সাথে সম্পর্কিত বিষয়গুলির সাথে সম্পর্কিত, যা প্রায় একই সময়ে প্রায় শুরু হয়েছিল: backupd এছাড়াও segfaults অপ্রত্যাশিতভাবে - স্টার্টআপ উপর অবিলম্বে না, কিন্তু আমার নাসা ব্যাকআপ ভলিউম মাউন্ট প্রক্রিয়া। এখানে একটি ব্যাকআপড ক্র্যাশ প্রতিবেদন থেকে একটি উদ্ধৃতি রয়েছে:

Thread 5 Crashed:
0   ...ple.CoreServices.CarbonCore  0x00007fff867e7f0b CSStoreGetUnit + 84
1   com.apple.LaunchServices        0x00007fff8217f3fb _LSBundleFindWithNode + 544
2   com.apple.LaunchServices        0x00007fff82177bd1 _LSFindOrRegisterBundleNode + 219
3   com.apple.LaunchServices        0x00007fff82177a85 _LSCopyItemAttributeForRefInfoWithOptions + 201
4   com.apple.LaunchServices        0x00007fff821799cf prepareAttributeValueForKey(__CFURL const*, __FileCache*, __CFString const*, void const**, __CFError**) + 79
5   com.apple.LaunchServices        0x00007fff82179934 prepareDistinctLocalizedNameValue(__CFURL const*, __FileCache*, __CFError**) + 36
6   com.apple.LaunchServices        0x00007fff8217990b prepareLocalizedNameValue(__CFURL const*, __FileCache*, __CFError**) + 9
7   com.apple.LaunchServices        0x00007fff82179712 LSPropertyProviderPrepareValues(__CFURL const*, __FileCache*, __CFString const* const*, void const**, long, void const*, __CFError**) + 51
8   ...ple.CoreServices.CarbonCore  0x00007fff867f8dd4 prepareValuesForBitmap(__CFURL const*, __FileCache*, _FilePropertyBitmap*, __CFError**) + 264
9   ...ple.CoreServices.CarbonCore  0x00007fff867f78bd _FSURLCopyResourcePropertiesForKeys + 980
10  com.apple.CoreFoundation        0x00007fff897dc562 CFURLCopyResourcePropertiesForKeys + 98
11  com.apple.DesktopServices       0x00007fff833737af TCFURLInfo::FetchProperties(bool) + 91
12  com.apple.DesktopServices       0x00007fff8337358f TCFURLInfo::Initialize(__CFURL const*, bool, bool) + 183
13  com.apple.DesktopServices       0x00007fff833d1acd TCFURLInfo::Initialize(char const*, unsigned int) + 89
14  com.apple.DesktopServices       0x00007fff833d369c TCFURLInfo::CreateDirectory(TUString const&, TUniqueNamer*, __FSFileSecurity*, bool, TCountedPtr<TCFURLInfo>&) const + 464
15  com.apple.DesktopServices       0x00007fff833dc95a TCopyWriter::CreateNewDestinationItem() + 178
16  com.apple.DesktopServices       0x00007fff833dd136 TCopyWriter::CreateItem() + 1126
17  com.apple.DesktopServices       0x00007fff833dd41e TCopyWriter::Write() + 146
18  com.apple.DesktopServices       0x00007fff833dd6a6 TCopyWriter::WriteTaskProc(void*) + 72
19  ...ple.CoreServices.CarbonCore  0x00007fff867e40d1 PrivateMPEntryPoint + 63
20  libSystem.B.dylib               0x00007fff80b94fd6 _pthread_start + 331
21  libSystem.B.dylib               0x00007fff80b94e89 thread_start + 13

আমি ডিস্ক ইউটিলিটি ব্যবহার করেছি (লাইভ) ভলিউম যাচাই এবং মেরামতের অনুমতি যাচাই। আমি 10.6.8 কম্বো আপডেট 1.1 এবং সম্পূরক আপডেট পুনরায় ইনস্টল করার চেষ্টা করেছি।

কি এই ক্র্যাশ হতে পারে, এবং আমি এটা ঠিক কিভাবে হতে পারে?


আপনি কিছু তৃতীয় পক্ষের অ্যাপ্লিকেশন ইনস্টল আছে অনুমান, এখানে একটি ধারণা। অ্যাপ্লিকেশনগুলিতে "বিভক্ত অর্ধেক" চেষ্টা করুন - অর্থাৎ অর্ধেক অ্যাপ্লিকেশানগুলিকে অন্যত্র অস্থায়ীভাবে সরান, সূচী পুনঃনির্মাণ করুন এবং এটি ব্যর্থ হয় কিনা তা দেখুন ... যদি এটি ব্যর্থ হয় তবে সমস্যাটি সেই অ্যাপ্লিকেশানগুলির মধ্যে থাকে যা অবশিষ্ট থাকে: প্রক্রিয়াটিকে পুনরাবৃত্তি না হওয়া পর্যন্ত আপনি এটি সংকীর্ণ করেছেন নিচে (আশা) একটি নির্দিষ্ট অ্যাপ্লিকেশন। (একটি রশ্মি মধ্যে লেখা: দুঃখিত এই যদি অস্পষ্ট ...)
Ashley

@ এশলে: যদি এটি কোনও ফাইল খোলা থাকে তবে এটি অর্থপূর্ণ হবে /Applications/ মালিক root, কিন্তু এটি এমনকি যে পর্যন্ত পেতে না।
cpcallen

উত্তর:


4

সমস্যা একটি দুর্নীতিবাজ লঞ্চ পরিষেবাদি ক্যাশ দ্বারা সৃষ্ট হয়েছিল, এবং আমি নিম্নলিখিত কমান্ড কার্যকর করে সমাধান করেছি:

sudo find /System/Library/Frameworks -type f -name lsregister -exec {} -kill -seed -r \;

সূত্র ছিল segfault এ ঘটছে CSStoreGetUnit + 84 উভয় প্রসেসে; একটি দ্রুত গুগল অনুসন্ধান বাড়ে একটি ব্লগ এন্ট্রি যা ক্যাশ দুর্নীতি ইস্যু হতে পারে। বরং নিজে rm ক্যাশে ফাইল, আমি অনুসরণ আমি এক্স ল্যাব পাওয়া নির্দেশাবলী , যা উল্লিখিত কমান্ডটি চালানোর জন্য টার্মিনালটি কীভাবে খুলতে হবে তার একটি বিস্তারিত ব্যাখ্যা দেওয়া হয়েছে:

  • যে পৃষ্ঠায় একটি smartquotes- সংক্রান্ত typo আছে (রিপোর্ট)।
  • থেকে mdworker ইউআইডি 501 (এবং বেশ কয়েকজন) হিসাবে জরিমানা দৌড়েছে, আমি অনুমান করেছি যে আমি পুনরায় সেট করতে চাই root এর লঞ্চ সেবা ক্যাশে; prefixing sudo পছন্দসই প্রভাব ছিল।

অতিরিক্ত নোট:

  • 10.8.6 (অন্তত) আপনি নিম্নোক্ত কমান্ডের সাথে সমস্ত লঞ্চ পরিষেবা ক্যাশে ফাইল দেখতে পারেন:

    sudo find /var/folders /Library/Caches/ -name '*LaunchServices*' -print0 |sudo xargs -0 ls -l 
    
  • কিছু অজানা কারণের জন্য, ইউআইডি 501 এর জন্য সাম্প্রতিক-সংশোধিত ক্যাশে ফাইল উভয়ই বিদ্যমান /Library/Caches/ এবং /var/folders/; অন্যান্য ইউআইডি শুধুমাত্র অধীনে একটি /var/folders/। এই কোন সমস্যা কারণ বলে মনে হচ্ছে না।

  • এই সঙ্গে সমস্যা সমাধান করেনি backupd

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.