AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1123895
Accepted
Cecilia
Cecilia
Asked: 2023-02-27 22:40:55 +0800 CST2023-02-27 22:40:55 +0800 CST 2023-02-27 22:40:55 +0800 CST

Quais são os exemplos de software que podem ser seriamente afetados por um salto no tempo?

  • 772

A documentação do chrony adverte

ATENÇÃO: Certos softwares serão seriamente afetados por tais saltos no horário do sistema. (Essa é a razão pela qual o chronyd usa o giro normalmente.) Documentação

Mas a documentação não dá exemplos. Quais são os exemplos de software que serão seriamente afetados? O sistema operacional ou algum processo em segundo plano está em risco?

chrony
  • 7 7 respostas
  • 4027 Views

7 respostas

  • Voted
  1. Best Answer
    Romeo Ninov
    2023-02-27T22:59:10+08:002023-02-27T22:59:10+08:00

    Esta é uma questão um pouco aberta, mas deixe-me dar alguns exemplos:

    • bancos de dados - a maioria deles depende de muito tempo preciso para armazenar registros, índices, etc.
    • segurança - o tempo preciso é muito importante para a segurança mapear a ação para o tempo e as lacunas ou a duplicação de tempo não é aceita
    • assinatura digital - geralmente parte do documento assinado é o carimbo de data/hora, então a hora errada pode invalidar a assinatura
    • software de agendamento - pode pular ou repetir duas vezes os trabalhos, dependendo da direção do salto no tempo.
    • software de clustering - provavelmente qualquer cluster precisará estar sincronizado e qualquer salto de um ou mais nós pode ter resultados imprevisíveis.
    • 28
  2. Guntram Blohm
    2023-02-28T19:08:49+08:002023-02-28T19:08:49+08:00

    Todo software que interage com hardware real. Se você tem uma torradeira que torra pão por 20 segundos e seu software é estúpido o suficiente para verificar o relógio de parede, você obterá pão branco ou queimado se corrigir o relógio enquanto espera pela torrada.

    Praticamente todas as aplicações que controlam qualquer tipo de dispositivo industrial precisam de temporizações precisas, como, por exemplo, "abrir uma válvula por 5,3 segundos para obter a quantidade correta de fluido". Estar fora por mais de alguns milissegundos arruína seu produto.

    Os aplicativos que posicionam qualquer coisa usando motores usarão motores de passo (que são lentos) ou interruptores finais para determinar quando parar. Mas, muitas vezes, você não tem uma chave em todas as posições importantes, então você fará alguma lógica "xm/s para A milissegundos, então ym/s para B milissegundos". Agora imagine que seu daemon NTP ajusta o tempo em um único milissegundo enquanto esta lógica está rodando...

    • 8
  3. Selali Adobor
    2023-03-01T08:37:51+08:002023-03-01T08:37:51+08:00

    Recentemente, fui mordido por um bug que remonta a 1999 e afeta a JVM e o Android Runtime: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4290274

    ... duas execuções extras são disparadas (inesperadamente) quando o relógio do sistema é adiantado um minuto depois que a tarefa é agendada usando scheduleAtFixedRate().

    Trabalho em um dispositivo que começa com a época de 1970 como hora atual e recebe a hora correta da rede um pouco mais tarde. Ocasionalmente, uma biblioteca de terceiros inicializava antes do tempo ser definido, causando um salto de tempo de 50 anos.

    O resultado foi scheduleAtFixedRateuma tentativa de alcançar ~ 50 anos de invocações ... que foram cerca de 27 milhões de invocações consecutivas sem atraso entre elas.

    Isso faria com que o GC enlouquecesse e geralmente atolasse o sistema até que fosse reiniciado

    • 6
  4. Kingsley
    2023-03-01T18:06:35+08:002023-03-01T18:06:35+08:00

    Tivemos um problema com um sistema embutido no veículo em que o relógio perdia tempo significativamente (devido a um problema elétrico). Mas as conexões sem fio eram intermitentes, então o tempo era corrigido apenas ocasionalmente. O resultado foi que, quando os veículos finalmente recebessem sem fio e, em seguida, uma atualização NTP, o relógio avançaria significativamente.

    Vários sistemas estavam verificando o tempo "último válido" de certas coisas, como leituras de GPS, etc. De repente, todos eles eram "antigos", apesar de terem sido atualizados apenas 0,5 segundos antes.

    Obviamente, uma reconfiguração poderia resolver o problema, mas era um problema.

    • 3
  5. Radovan Garabík
    2023-03-02T18:03:57+08:002023-03-02T18:03:57+08:00

    O servidor Dovecot IMAP é afetado e (em versões mais antigas) ele (deliberadamente) se suicida se detectar que a hora do sistema saltou para trás. Na v2.0, pelo menos tenta remediar a situação.

    Veja https://wiki.dovecot.org/TimeMovedBackwards

    • 0
  6. Halfgaar
    2023-03-02T18:32:16+08:002023-03-02T18:32:16+08:00

    Já está em um comentário, mas pensei em postar como resposta também:

    Os aplicativos que deveriam ter usado o relógio monotônico constante, mas não o fazem, também são afetados. Por exemplo, se o software verifica os keep-alives do cliente usando a hora atual, um salto no tempo pode expulsar todos os clientes.

    Tenho visto regularmente que o software usa o relógio errado.

    • 0
  7. filo
    2023-03-02T18:53:10+08:002023-03-02T18:53:10+08:00

    Muitos exemplos...

    • Anexo 1 - Bug do segundo salto do Cloudflare
    • Anexo 2 - Bug da linha de data do F-22 Raptor
    • Anexo 3 - Recuperação do tempo do controlador do motor 787 Dreamliner (exemplo extremo de tempo voltando a zero)
    • 0

relate perguntas

  • chrony: tempo de hospedagem com RTC como relógio autoritativo em um sistema air-gapped (isolado)

  • Chronyc equivalente para ntpdate -q

  • Chrony "dispersão de raiz" continua aumentando de forma constante ao longo do tempo, apesar da sincronização de tempo precisa

  • Sincronização de tempo Chrony em grande diferença de tempo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve