Recentemente, meu Mac está exibindo mensagens estranhas, como "O mês 13 está fora dos limites".
Como corrigir esse erro? Não posso ir ao centro de reparos autorizado da apple ant, porque está muito longe de um centro da Apple
Recentemente, meu Mac está exibindo mensagens estranhas, como "O mês 13 está fora dos limites".
Como corrigir esse erro? Não posso ir ao centro de reparos autorizado da apple ant, porque está muito longe de um centro da Apple
Respostas:
Este erro está registrado no iOS 11 e no macOS 10.13, com certeza, e não vejo que ele cause qualquer função ou problema específico em qualquer plataforma.
Vou colocar um link para a pergunta principal aqui sobre "o macOS registra demais", já que essa é uma opinião e impressão que vale a pena discutir. Algumas pessoas podem se sentir melhor se não houver mensagens, a menos que uma condição realmente séria precise de ação. Outros querem ainda mais detalhes para saber o que está acontecendo / aprender / medir. Então, será uma troca como esses são problemas / categorizados / usados.
Um desenvolvedor interessante que tem algumas ferramentas é Howard Oakley, que bloga em https://eclecticlight.co/
Sua página de downloads possui dois aplicativos de interesse (use o link de downloads esquerdo, pois as versões do produto abaixo são beta e podem não estar atualizadas em um dia ou semana):
Eu posso verificar a legitimidade desse problema. Eu tive o mesmo problema ontem e, após uma reinicialização, o computador ficou quase inútil devido a esse erro. Por alguma razão, o computador não pode lidar com este mês e gera erros sempre que houver bancos de dados ou listas.
Para corrigir isso:
Abrir Activity Monitor e forçar o encerramento de dois processos: lsd
,UserEventAgent
Abra Preferências do Sistema e navegue até "Data e Hora"
Desmarque a opção "Definir data e hora automaticamente"
No calendário, selecione uma data anterior a dezembro de 2017 e pressione Salvar
Se UserEventAgent
ou lsd
continuar a causar problemas, force-os novamente após definir a data.
Outras pessoas aqui têm esse problema
Por quê?
Parece-me que o UserEventAgent estava tentando usar dois arquivos plist:
System/Library/LaunchAgents/com.apple.UserEventAgent-Aqua.plist
e
System/Library/LaunchAgents/com.apple.UserEventAgent-LoginWindow.plist
Quando tentou usar as listas, ocorreu um erro:
Month 13 is out of bounds
Não tenho certeza do que realmente aconteceu no UserEventAgent, mas é óbvio que, quando ocorre o erro, ele não pode lidar com ele e causa alto uso de CPU e RAM.
Eu tive o mesmo problema com o uso extremamente alto da CPU e da memória do UserEventAgent a partir do início de dezembro de 2017. O console mostrou o erro "mês fora dos limites", conforme descrito acima.
Tentei o utilitário de disco "primeiros socorros", reinicia, modo de segurança (para limpar o cache do sistema), limpando NVRAM e SMD, nada ajudou. Notei que o uso da CPU e da memória não aumentou no modo de segurança.
Como @tgray e u / kidtexas , em algum momento eu descobri que se desabilitasse todas as minhas opções personalizadas de inicialização, o problema não ocorreria.
Acabei escrevendo o pequeno script abaixo para me ajudar a depurar qual plist estava causando o problema. Acabou sendo uma plist que ocorre no primeiro dia de cada mês:
<key>StartCalendarInterval</key>
<dict>
<key>Day</key>
<integer>1</integer>
<key>Hour</key>
<integer>03</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
Muitas das minhas listas usam a StartCalendarInterval
chave e, usando o script abaixo, eu poderia mostrar que elas não pareciam causar problemas de RAM e memória, então não está totalmente claro para mim por que uma lista específica causa o problema. Independentemente disso, foi assim que eu resolvi.
Eu recomendo fortemente que os leitores examinem o script para tentar entender o que ele faz, em vez de apenas copiar e colar. Especificamente, como está escrito isto só irá funcionar para plists em ~/Library/LaunchAgents
(não /Library/LaunchDaemons
e outros), e intencionalmente só testa plists cujo nome de arquivo e <key>Label</key>
seguem o padrão específico: com.USERNAME.my_plist_name[.plist]
. Antes de executá-lo, usei uma linha para bootout
todas as minhas listas: for plist in com."$(whoami)".*.plist; do launchctl bootout gui/"${MYUID}"/"${plist%.plist}" || true; done
e verifiquei que elas não apareciam mais nos launchctl list
resultados.
#! /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 similar) recomendado pelo n8henrie.
Como outros, eu estava tendo alto uso de CPU e enorme uso de RAM do UserEventAgent (veja meu comentário acima). Alterar a data para novembro e forçar o encerramento de coisas corrigidas pelo UserEventAgent. Tudo começou no sábado depois que eu reiniciei.
Eu descobri isso para mim. Esperançosamente, para outras pessoas com problemas, isso funcionará para você.
O problema era do LaunchAgent que eu tenho em ~ / Library / LaunchAgents. É um arquivo plist simples que chama StartCalendarInterval, que é uma chave válida para o launchd plists. O trabalho LaunchAgent chama um script de shell que copia alguns arquivos para um local de backup no primeiro dia do mês. O trabalho não está sendo chamado - acho que ele foi iniciado verificando os trabalhos carregados no Calendário que está causando o problema. Assim que eu descarreguei esse plist e movi o arquivo para fora do diretório, UserEventAgent estava bem (após uma saída forçada). No segundo em que carreguei o plist (launchctl load xxxx), o UserEventAgent ficou louco.
StartCalendarInterval é uma chave válida para o lançamento, como visto aqui nos documentos da Apple .
Portanto, para qualquer pessoa que tenha problemas, verifique seus diretórios LaunchAgent e procure a chave StartCalendarInterval (ou qualquer outra chave relacionada ao calendário). Não tive nenhum problema com as listas de intervalo com base no tempo.
Nota: Isso não corrige os erros do 'Mês 13 fora dos limites', apenas o comportamento louco do UserEventAgent.
Depois de relatar isso à Apple e escalar a cadeia de escalação, disseram-me que isso deveria ser corrigido no macOS 10.13.3.
Aparentemente, isso é causado por um aplicativo que chama o procedimento NSDate obsoleto 'descriptionWithCalendarFormat' .
Você pode ler mais em https://forums.developer.apple.com/thread/88417 .
Em alguns casos, editar ou remover certos arquivos plist impedirá que os programas chamem o procedimento descontinuado, mas a correção real é uma atualização do sistema operacional.