Baru-baru ini Mac saya menampilkan beberapa pesan aneh seperti "Bulan 13 di luar batas".
Bagaimana cara memperbaiki kesalahan ini saya tidak bisa pergi ke pusat perbaikan resmi semut apel karena sangat jauh dari pusat Apple
Baru-baru ini Mac saya menampilkan beberapa pesan aneh seperti "Bulan 13 di luar batas".
Bagaimana cara memperbaiki kesalahan ini saya tidak bisa pergi ke pusat perbaikan resmi semut apel karena sangat jauh dari pusat Apple
Jawaban:
Kesalahan ini dicatat pada iOS 11 dan pada macOS 10.13 pasti dan saya tidak melihatnya menyebabkan fungsi atau masalah spesifik pada platform apa pun.
Saya akan tautkan ke pertanyaan utama di sini tentang "apakah log MacOS terlalu banyak" karena itu adalah pendapat dan kesan yang layak untuk dibahas. Beberapa orang mungkin merasa lebih baik jika tidak ada pesan kecuali kondisi yang sangat serius membutuhkan tindakan. Yang lain ingin lebih detail sehingga mereka bisa tahu apa yang terjadi / belajar / ukur. Jadi, itu akan menjadi tradeoff bagaimana masalah ini / dikategorikan / digunakan.
Salah satu pengembang menarik yang memiliki beberapa alat adalah Howard Oakley yang blog di https://eclecticlight.co/
Nya halaman download memiliki dua aplikasi yang menarik (menggunakan download kiri menghubungkan dengan versi produk di bawah ini adalah beta dan mungkin tidak saat ini dalam satu hari atau minggu):
Saya dapat memverifikasi keabsahan masalah ini. Saya memiliki masalah yang sama kemarin, dan setelah restart, komputer dianggap hampir tidak berguna karena kesalahan ini. Untuk beberapa alasan, komputer tidak dapat menangani bulan ini dan membuat kesalahan di mana pun ada database atau daftar.
Untuk memperbaikinya:
Terbuka Activity Monitor dan kekuatan berhenti dua proses: lsd
,UserEventAgent
Buka Preferensi Sistem dan navigasikan ke "Tanggal & Waktu"
Hapus centang "Tetapkan tanggal dan waktu secara otomatis"
Di kalender, pilih tanggal sebelum Desember 2017 dan tekan Simpan
Jika UserEventAgent
atau lsd
terus menyebabkan masalah, maka paksa berhenti lagi setelah mengatur tanggal.
Orang lain di sini memiliki masalah ini
Mengapa?
Menurut saya, UserEventAgent berusaha menggunakan dua file plist:
System/Library/LaunchAgents/com.apple.UserEventAgent-Aqua.plist
dan
System/Library/LaunchAgents/com.apple.UserEventAgent-LoginWindow.plist
Ketika mencoba menggunakan daftar, itu mendapat kesalahan:
Month 13 is out of bounds
Saya tidak yakin apa yang sebenarnya terjadi di dalam UserEventAgent, tetapi sudah jelas bahwa ketika mendapat kesalahan, ia tidak bisa mengatasinya dan menyebabkan penggunaan CPU dan RAM yang tinggi.
Saya memiliki masalah yang sama dengan CPU UserEventAgent yang sangat tinggi dan penggunaan memori mulai pada awal Desember 2017. Konsol menunjukkan kesalahan "bulan di luar batas" seperti dijelaskan di atas.
Saya mencoba utilitas disk "pertolongan pertama," reboot, safe mode (untuk menghapus cache sistem), membersihkan NVRAM dan SMD, tidak ada yang membantu. Saya memang memperhatikan bahwa penggunaan CPU dan memori tidak lonjakan dalam mode aman.
Seperti @tgray dan u / kidtexas , pada titik tertentu saya menemukan bahwa jika saya menonaktifkan semua custom launchd saya menyatakan bahwa masalah tidak terjadi.
Saya akhirnya menulis skrip kecil di bawah ini untuk membantu saya men-debug plist mana yang menyebabkan masalah. Itu akhirnya menjadi plist yang berjalan pada tanggal 1 setiap bulan:
<key>StartCalendarInterval</key>
<dict>
<key>Day</key>
<integer>1</integer>
<key>Hour</key>
<integer>03</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
Banyak plist saya menggunakan StartCalendarInterval
kunci, dan menggunakan skrip di bawah ini saya dapat menunjukkan bahwa mereka tampaknya tidak menyebabkan RAM yang meningkat dan masalah memori, jadi tidak sepenuhnya jelas bagi saya mengapa satu plist spesifik menyebabkan masalah. Bagaimanapun, ini adalah bagaimana saya mengatasinya.
Saya sangat menyarankan pembaca membaca skrip untuk mencoba memahami apa yang dilakukannya daripada hanya menyalin dan menempel. Secara khusus, seperti yang ditulis ini hanya akan bekerja untuk plists di ~/Library/LaunchAgents
(tidak /Library/LaunchDaemons
dan lain-lain), dan itu sengaja hanya menguji plists yang nama file dan <key>Label</key>
mengikuti pola tertentu: com.USERNAME.my_plist_name[.plist]
. Sebelum menjalankannya, saya menggunakan one-liner untuk bootout
semua daftar saya:, for plist in com."$(whoami)".*.plist; do launchctl bootout gui/"${MYUID}"/"${plist%.plist}" || true; done
dan kemudian memverifikasi bahwa mereka tidak lagi muncul di bawah launchctl list
hasil.
#! /bin/bash
# /apple/307512/month-13-is-out-of-bounds
set -euf -o pipefail
MYUID="$(id -u)"
pushd "${HOME}"/Library/LaunchAgents
while IFS= read -r -d '' plist; do
echo "${plist}"
stats=($(ps ux | grep -v grep | grep UserEventAgent | awk '{ print $3, $5}'))
cpu="${stats[0]}"
vmem="${stats[1]}"
echo "CPU use and virtual memory size while disabled: ${stats[@]}"
launchctl bootstrap gui/"${MYUID}" "${plist}"
sleep 5
stats=($(ps ux | grep -v grep | grep UserEventAgent | awk '{ print $3, $5}'))
echo "CPU use and virtual memory size while enabled: ${stats[@]}"
echo "Change in vmem: $(( "${vmem}" - "${stats[1]}" ))"
echo
done < <(find . -iname "com.$(whoami).*.plist" -print0)
popd
bootout
(atau serupa) yang direkomendasikan n8henrie.
Seperti yang lain, saya memiliki penggunaan CPU yang tinggi dan penggunaan RAM yang sangat besar dari UserEventAgent (lihat komentar saya di atas). Mengubah tanggal ke November dan memaksa berhenti UserEventAgent memperbaiki hal-hal. Ini semua dimulai pada hari Sabtu setelah saya reboot.
Saya menemukan ini untuk saya. Semoga untuk orang lain yang bermasalah, ini akan berhasil untuk Anda.
Masalahnya adalah daftar LaunchAgent yang saya miliki di ~ / Library / LaunchAgents. Ini adalah file plist sederhana yang memanggil StartCalendarInterval, yang merupakan kunci yang valid untuk launchd plist. Pekerjaan LaunchAgent memanggil skrip shell yang menyalin beberapa file ke lokasi cadangan pada hari pertama bulan itu. Pekerjaan itu tidak dipanggil sama sekali - saya pikir itu diluncurkand memeriksa pekerjaan yang dimuat terhadap Kalender yang menyebabkan masalah. Segera setelah saya membongkar plist ini dan memindahkan file keluar dari direktori, UserEventAgent baik-baik saja (setelah kekuatan berhenti). Yang kedua saya memuat plist (launchctl load xxxx), UserEventAgent menjadi gila.
StartCalendarInterval adalah kunci yang valid untuk launchd seperti yang terlihat di sini di dokumen Apple .
Jadi, bagi siapa pun yang mengalami masalah, periksa direktori LaunchAgent Anda dan cari kunci StartCalendarInterval (atau kunci terkait kalender lainnya). Saya tidak memiliki masalah dengan daftar interval berbasis waktu.
Catatan: Ini tidak memperbaiki kesalahan 'Bulan 13 di luar batas', hanya perilaku UserEventAgent yang gila.
Setelah melaporkan ini ke Apple dan meningkatkan rantai eskalasi, saya diberitahu ini harus diperbaiki di macOS 10.13.3.
Rupanya, ini disebabkan oleh aplikasi yang memanggil prosedur NSDate yang sudah usang 'descriptionWithCalendarFormat' .
Anda dapat membaca lebih lanjut di https://forums.developer.apple.com/thread/88417 .
Dalam beberapa kasus, mengedit atau menghapus file plist tertentu akan mencegah program memanggil prosedur yang sudah usang, tetapi perbaikan sebenarnya adalah pembaruan OS.