Récemment, mon Mac affiche des messages étranges tels que "Le 13e mois est hors limites".
Comment puis-je corriger cette erreur Je ne peux pas me rendre au centre de réparation agréé Ant Apple car il est très loin d'un centre Apple
Récemment, mon Mac affiche des messages étranges tels que "Le 13e mois est hors limites".
Comment puis-je corriger cette erreur Je ne peux pas me rendre au centre de réparation agréé Ant Apple car il est très loin d'un centre Apple
Réponses:
Cette erreur est enregistrée sur iOS 11 et sur macOS 10.13 à coup sûr et je ne vois pas cela causer de fonction ou de problème spécifique sur aucune plate-forme.
Je vais renvoyer à la question principale ici sur "est-ce que macOS se connecte trop" car c'est une opinion et une impression qui méritent d'être discutées. Certaines personnes pourraient se sentir mieux s'il n'y avait pas de messages, à moins qu'une condition vraiment grave ne nécessite une action. D'autres veulent encore plus de détails pour savoir ce qui se passe / apprendre / mesurer. Donc, ce sera un compromis sur la façon dont ces problèmes sont / classés / utilisés.
Un développeur intéressant qui a quelques outils est Howard Oakley qui blogue sur https://eclecticlight.co/
Sa page de téléchargements a deux applications intéressantes (utilisez le lien de téléchargement à gauche car les versions de produits ci-dessous sont en version bêta et peuvent ne pas être à jour dans une journée ou une semaine):
Je peux vérifier la légitimité de ce problème. J'ai eu le même problème hier, et après un redémarrage, l'ordinateur a été rendu presque inutile à cause de cette erreur. Pour une raison quelconque, l'ordinateur ne peut pas gérer ce mois-ci et génère des erreurs partout où il existe des bases de données ou des listes.
Pour résoudre ce problème:
Ouvrez le Moniteur d' activité et forcer la fermeture de deux processus: lsd
,UserEventAgent
Ouvrez les Préférences Système et accédez à "Date et heure"
Décochez "Régler la date et l'heure automatiquement"
Dans le calendrier, sélectionnez une date antérieure à décembre 2017 et appuyez sur Enregistrer
Si UserEventAgent
ou lsd
continuez de causer des problèmes, forcez-les à quitter à nouveau après avoir réglé la date.
D'autres personnes ici ont ce problème
Pourquoi?
Il me semble que UserEventAgent tentait d'utiliser deux fichiers plist:
System/Library/LaunchAgents/com.apple.UserEventAgent-Aqua.plist
et
System/Library/LaunchAgents/com.apple.UserEventAgent-LoginWindow.plist
Quand il a essayé d'utiliser les plists, il a eu une erreur:
Month 13 is out of bounds
Je ne suis pas sûr de ce qui s'est réellement passé dans UserEventAgent, mais il est évident que lorsqu'il obtient l'erreur, il ne peut pas y faire face et entraîne une utilisation élevée du processeur et de la RAM.
J'ai eu le même problème avec l'utilisation extrêmement élevée du processeur et de la mémoire UserEventAgent à partir du début de décembre 2017. La console a montré l'erreur "mois hors limites" comme décrit ci-dessus.
J'ai essayé les «premiers secours» de l'utilitaire de disque, les redémarrages, le mode sans échec (pour effacer le cache du système), l'effacement de la NVRAM et du SMD, rien n'y fait. J'ai remarqué que l'utilisation du processeur et de la mémoire n'avait pas augmenté en mode sans échec.
Comme @tgray et u / kidtexas , à un moment donné, j'ai compris que si je désactivais toutes mes listes de lancement personnalisées, le problème ne se produisait pas.
J'ai finalement écrit le petit script ci-dessous pour m'aider à déboguer le plist à l'origine du problème. Cela a fini par être une liste qui s'exécute le premier de chaque mois:
<key>StartCalendarInterval</key>
<dict>
<key>Day</key>
<integer>1</integer>
<key>Hour</key>
<integer>03</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
Beaucoup de mes plists utilisent la StartCalendarInterval
clé, et en utilisant le script ci-dessous, je pouvais montrer qu'ils ne semblaient pas causer de problèmes de RAM et de mémoire, donc je ne comprends pas très bien pourquoi un plist spécifique cause le problème. Quoi qu'il en soit, c'est comme ça que je l'ai réglé.
Je recommande fortement aux lecteurs de parcourir le script pour essayer de comprendre ce qu'il fait au lieu de simplement copier-coller. Plus précisément, comme écrit cela ne fonctionnera que pour plists en ~/Library/LaunchAgents
(pas /Library/LaunchDaemons
et d' autres), et il teste volontairement que plists dont le nom et <key>Label</key>
suivre le modèle spécifique: com.USERNAME.my_plist_name[.plist]
. Avant de l'exécuter, j'ai utilisé une doublure pour bootout
tous mes plists:, for plist in com."$(whoami)".*.plist; do launchctl bootout gui/"${MYUID}"/"${plist%.plist}" || true; done
puis vérifié qu'ils n'apparaissaient plus sous les launchctl list
résultats.
#! /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
(ou similaire) que n8henrie recommande.
Comme d'autres, j'avais une utilisation élevée du CPU et une énorme utilisation de la RAM de UserEventAgent (voir mon commentaire ci-dessus). Changer la date en novembre et forcer la fermeture des choses fixes de UserEventAgent. Tout a commencé samedi après mon redémarrage.
J'ai compris cela pour moi. Si tout va bien pour d'autres avec des problèmes, cela fonctionnera pour vous.
Le problème était un plist LaunchAgent que j'ai dans ~ / Library / LaunchAgents. C'est un simple fichier plist qui appelle StartCalendarInterval, qui est une clé valide pour launchd plists. Le travail LaunchAgent appelle un script shell qui copie certains fichiers vers un emplacement de sauvegarde le premier jour du mois. Le travail n'est pas appelé du tout - je pense qu'il est lancé en vérifiant les travaux chargés par rapport au calendrier, ce qui cause le problème. Dès que j'ai déchargé cette liste et déplacé le fichier hors du répertoire, UserEventAgent allait bien (après une fermeture forcée). La seconde où j'ai chargé le plist (launchctl load xxxx), UserEventAgent est devenu fou.
StartCalendarInterval est une clé valide pour launchd comme on le voit ici dans les documents d'Apple .
Donc, pour toute personne ayant des problèmes, vérifiez vos répertoires LaunchAgent et recherchez la clé StartCalendarInterval (ou toute autre clé liée au calendrier). Je n'ai eu aucun problème avec les listes d'intervalle basées sur le temps.
Remarque: cela ne corrige pas les erreurs «Mois 13 hors limites», juste le comportement fou de UserEventAgent.
Après avoir signalé cela à Apple et mis à l'échelle la chaîne d'escalade, on m'a dit que cela devrait être corrigé dans macOS 10.13.3.
Apparemment, cela est dû à une application appelant la procédure NSDate obsolète «descriptionWithCalendarFormat» .
Vous pouvez en savoir plus sur https://forums.developer.apple.com/thread/88417 .
Dans certains cas, la modification ou la suppression de certains fichiers plist empêchera les programmes d'appeler la procédure obsolète, mais le vrai correctif est une mise à jour du système d'exploitation.