¿El mes 13 está fuera de límites?

22

Recientemente, mi Mac está mostrando algunos mensajes extraños, como "El mes 13 está fuera de los límites".

¿Cómo soluciono este error? No puedo ir a un centro de reparación autorizado de Apple porque está muy lejos de un centro de Apple

    
pregunta nobody user 01.12.2017 - 06:10

5 respuestas

10

Este error se registra en iOS 11 y en macOS 10.13 con seguridad y no lo veo causa alguna función específica o problema en ninguna plataforma.

Voy a enlazar con la pregunta principal aquí acerca de "¿macOS registra demasiado?", ya que esa es una opinión e impresión que merece ser discutida. Algunas personas podrían sentirse mejor si no hubiera mensajes a menos que una condición realmente grave necesite una acción. Otros quieren incluso más detalles para que puedan saber qué está pasando / aprender / medir. Por lo tanto, va a ser una compensación cómo estos son problemas / categorizados / utilizados.

Un desarrollador interesante que tiene algunas herramientas es Howard Oakley, que tiene un blog en enlace

Su página de descargas tiene dos aplicaciones de interés (utilice el enlace de descargas de la izquierda, ya que las versiones del producto a continuación son beta y pueden no estar actualizadas). en un día o semana):

  • Consolación : un navegador de consola alternativo
  • Woodpile : una herramienta para contar / bin / analizar patrones de registro
respondido por el bmike 02.12.2017 - 13:36
10

Puedo verificar la legitimidad de este problema. Ayer tuve el mismo problema y, después de reiniciar, la computadora se volvió casi inútil debido a este error. Por alguna razón, la computadora no puede lidiar con este mes y arroja errores donde haya bases de datos o errores.

Para solucionar esto:

  1. Abra el Monitor de actividad y fuerce dos procesos: lsd , UserEventAgent

  2. Abra las Preferencias del sistema y navegue hasta "Fecha y hora"

  3. Desmarque "Establecer fecha y hora automáticamente"

  4. En el calendario, seleccione una fecha anterior a diciembre de 2017 y presione Guardar

  5. Si UserEventAgent o lsd continúan causando problemas, entonces vuelva a cerrarlos después de establecer la fecha.

Otras personas aquí tienen este problema

¿Por qué?

Me parece que UserEventAgent estaba intentando usar dos archivos plist:

System/Library/LaunchAgents/com.apple.UserEventAgent-Aqua.plist

y

System/Library/LaunchAgents/com.apple.UserEventAgent-LoginWindow.plist

Cuando intentó usar las listas, obtuvo un error:

Month 13 is out of bounds

No estoy seguro de qué sucedió realmente dentro de UserEventAgent, pero es obvio que cuando se produce el error, no puede lidiar con eso y provoca un alto uso de la CPU y la RAM.

    
respondido por el Ckacmaster 02.12.2017 - 19:34
2

Tuve el mismo problema con el uso extremadamente alto de la CPU y la memoria de UserEventAgent a partir de principios de diciembre de 2017. La consola mostró el error "mes fuera de límites" como se describe anteriormente.

Probé la utilidad de disco "primeros auxilios", reinicios, modo seguro (para borrar el caché del sistema), borrar NVRAM y SMD, nada ayudó. Noté que el uso de la CPU y la memoria no se disparó en el modo seguro.

Me gusta @tgray y u / kidtexas , en algún punto que presencié que si deshabilité todas mis notas personalizadas de launchd que el problema no se produjo.

Finalmente, escribí el pequeño script a continuación para ayudarme a depurar qué error causaba el problema. Terminó siendo una lista que se ejecuta el primer día de cada mes:

<key>StartCalendarInterval</key>
<dict>
    <key>Day</key>
    <integer>1</integer>
    <key>Hour</key>
    <integer>03</integer>
    <key>Minute</key>
    <integer>00</integer>
</dict>

Muchos de mis listas utilizan la clave StartCalendarInterval , y al usar la secuencia de comandos a continuación, puedo demostrar que no parecen causar problemas de memoria RAM ni de picos, por lo que no está del todo claro. Yo por qué un problema específico causa el problema. En cualquier caso, esta es la forma en que lo resolví.

Yo recomiendo encarecidamente a los lectores que busquen en el script para tratar de entender lo que hace en lugar de simplemente copiar y pegar. Específicamente, como está escrito, esto solo funcionará para plistas en ~/Library/LaunchAgents (no en /Library/LaunchDaemons y otros), e intencionalmente solo prueba plists cuyo nombre de archivo y <key>Label</key> siguen el patrón específico: com.USERNAME.my_plist_name[.plist] . Antes de ejecutarlo, usé una sola línea para bootout todas mis plistas: for plist in com."$(whoami)".*.plist; do launchctl bootout gui/"${MYUID}"/"${plist%.plist}" || true; done , y luego verifiqué que ya no aparecían en los resultados de launchctl list .

#! /bin/bash
# https://apple.stackexchange.com/questions/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
    
respondido por el n8henrie 05.12.2017 - 06:02
1

Al igual que otros, estaba teniendo un alto uso de CPU y un gran uso de RAM de UserEventAgent (ver mi comentario más arriba). Cambiar la fecha a noviembre y forzar el cierre de UserEventAgent. Todo esto comenzó el sábado después de que reinicié.

Corrección

Descubrí esto por mí. Con suerte para otros con problemas, esto funcionará para usted.

El problema fue una lista de LaunchAgent que tengo en ~ / Library / LaunchAgents. Es un archivo simple de plist que llama a StartCalendarInterval, que es una clave válida para las plst de launchd. El trabajo LaunchAgent llama a un script de shell que copia algunos archivos a una ubicación de respaldo el primer día del mes. El trabajo no se está llamando en absoluto, creo que es el inicio y la comprobación de los trabajos cargados en el Calendario lo que está causando el problema. Tan pronto como descargué esta lista y moví el archivo fuera del directorio, UserEventAgent estaba bien (después de un cierre forzado). La segunda vez que cargué el plist (launchctl load xxxx), UserEventAgent se volvió loco.

StartCalendarInterval es una clave válida para launchd como se ve aquí en documentos de Apple .

Entonces, para cualquier persona que tenga problemas, revise los directorios de LaunchAgent y busque la clave StartCalendarInterval (o cualquier otra clave relacionada con el calendario). No tuve ningún problema con las plistas de intervalos basadas en el tiempo.

Nota: Esto no soluciona los errores del 'Mes 13 fuera de límites', solo el comportamiento loco de UserEventAgent.

    
respondido por el hmode 04.12.2017 - 23:17
0

Después de informar esto a Apple y escalar la cadena de escalamiento, me dijeron que esto debería solucionarse en macOS 10.13.3.

Al parecer, esto se debe a una aplicación que llama al procedimiento de desactualización NSDate 'descriptionWithCalendarFormat' .

Puede leer más en enlace .

En algunos casos, editar o eliminar ciertos archivos plist evitará que los programas llamen al procedimiento en desuso, pero la solución real es una actualización del sistema operativo.

    
respondido por el Phillip Remaker 21.01.2018 - 01:45

Lea otras preguntas en las etiquetas